Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit VB Tastatureingabe programmieren

Frage Entwicklung VB for Applications

Mitglied: thedani

thedani (Level 1) - Jetzt verbinden

19.05.2007, aktualisiert 12:21 Uhr, 10404 Aufrufe, 4 Kommentare

Kann ich mit VB eine Tastatureingabe simulieren?

Hallo zusammen. Ich habe folgendes problem:

Wir haben von Elo Touch Touchscreenmonitore für ein Kunde gekauft. Der lässt jetzt dort eine PowerPoint 2003 laufen. Jetzt ist das problem, dass bei PP03 der Mauszeiger nach drei Sekunden inaktiv wird und man muss dann immer zwei mal auf den Touchscreen klicken, damit es weiter geht. So weit so gut, das Problem habe ich eigentlich gelöst, in dem man während der Präsentation auf
Rechtsklick | Zeigeroptionen | Pfeiloptionen | Sichtbar
klickt und dann ist der Pfeil immer sichtbar. Nur das Problem ist jetzt, dass es Microsoft nicht fertig bringt, diese Einstellung zu fixieren, sprich der Kunde muss dies immer bei jedem Start einstellen und er hat ja keine Tastatur. Jetzt meine Frage: Kann ich mit VB folgende Tastatur kürzel simulieren?

Rechtsklick | Alt + E | Alt + O | Alt + S

und diese Eingabe dann beim Start von PP03 auf ein Button legen, damit er das Script beim Drücken des Buttons ausführt?

Danke für eure Hilfe!!!
Mitglied: bastla
19.05.2007 um 11:26 Uhr
Hallo thedani!

PowerPoint ist zwar weniger meine Baustelle, aber versuch es einmal mit folgender Code-Zeile:
01.
Sub PfeilSichtbar() 
02.
SlideShowWindows(1).View.PointerType = ppSlideShowPointerArrow 
03.
End Sub
Platziere den Code in einem Modul, erstelle auf der ersten Folie zB ein Rechteck mit 100 % Transparenz und ohne Rahmen und ordne dessen "Aktionseinstellungen..." über "Makro ausführen:" obiges Sub zu. Durch einen Klick auf das (unsichtbare) Rechteck wird der Code gestartet.

Grüße
bastla
Bitte warten ..
Mitglied: thedani
19.05.2007 um 11:46 Uhr
Yes ich kann es kaum fassen!!!

Es funktioniert. Vielen vielen Dank für deine Hilfe, der Kunde wird begeistert sein. Du hast mir echt eine menge Arbeit erspart.
Bitte warten ..
Mitglied: problemsolver
19.05.2007 um 12:05 Uhr
Hi!

[edit] Mannomann, war ich kompliziert und langsam bei der Lösung Sorry...[/edit]

zuerst dachte ich, dass es relativ leicht ist mit der SendKeys Anweisung hier zu agieren.
Das Problem dabei war, dass nach einem Rechtsklick in einer ausgeführten Powerpointpräsentation die Sendkeys Anweisung nicht funktioniert bzw. sich auf die Hauptapplikation bezieht.

Deshalb habe ich einen Workaround programmiert, der auf jeden Fall bei einer Auflösung von 1024x768 funktioniert. Ist zwar aus anderen VB Quellen zusammengebastelt, erfüllt jedoch seinen Zweck prima!

Erstelle in der Powerpoint Datei ein neues Modul.
In dieses Modul fügt du den folgenden Code ein und setzt dein "Makro-Button" auf die Sub "Makro1()" (Extras --> Anpassen in Powerpoint)

01.
'Benötigte Deklarationen 
02.
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) 
03.
 
04.
Private Declare Function GetCursorPos Lib "user32" (cPoint As POINTAPI) As Long 
05.
Private Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long 
06.
Private Type POINTAPI 
07.
    x As Long 
08.
    y As Long 
09.
End Type 
10.
 
11.
Private Declare Sub mouse_event Lib "user32" _ 
12.
 (ByVal dwFlags As Long, ByVal dx As Long, _ 
13.
 ByVal dy As Long, ByVal cButtons As Long, _ 
14.
 ByVal dwExtraInfo As Long) 
15.
 
16.
Public Const MOUSE_LEFT = 0 
17.
Public Const MOUSE_MIDDLE = 1 
18.
Public Const MOUSE_RIGHT = 2 
19.
 
20.
'TPOINT beinhaltet die Koordinaten, wo sich die Maus gerade befindet und ist mit 
21.
'Wo_ist_die_Maus zu aktualisieren... s.u. 
22.
Dim tPoint As POINTAPI 
23.
 
24.
'Die nachfolgende Prozedur simuliert den gewünschten Mausklick. 
25.
Public Sub SendMausklick(ByVal mButton As Long) 
26.
  Const MOUSEEVENTF_LEFTDOWN = &H2 
27.
  Const MOUSEEVENTF_LEFTUP = &H4 
28.
  Const MOUSEEVENTF_MIDDLEDOWN = &H20 
29.
  Const MOUSEEVENTF_MIDDLEUP = &H40 
30.
  Const MOUSEEVENTF_RIGHTDOWN = &H8 
31.
  Const MOUSEEVENTF_RIGHTUP = &H10 
32.
 
33.
  If (mButton = MOUSE_LEFT) Then 
34.
    Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 
35.
    Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) 
36.
  ElseIf (mButton = MOUSE_MIDDLE) Then 
37.
    Call mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0) 
38.
    Call mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0) 
39.
  Else 
40.
    Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) 
41.
    Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) 
42.
  End If 
43.
End Sub 
44.
 
45.
Sub Makro1() 
46.
SendKeys "{F5}", True 
47.
SendMausklick MOUSE_RIGHT 
48.
Sleep 500 
49.
Wo_ist_die_Maus 
50.
'Nach Zeigeroptionen bewegen und bestätigen 
51.
Cursor_bewegen_nach tPoint.x + 30, tPoint.y + 150 
52.
SendMausklick MOUSE_LEFT 
53.
Wo_ist_die_Maus 
54.
'Nach Pfeiloptionen bewegen und bestätigen 
55.
Cursor_bewegen_nach tPoint.x + 220, tPoint.y + 180 
56.
SendMausklick MOUSE_LEFT 
57.
Wo_ist_die_Maus 
58.
'Nach Sichtbar bewegen und bestätigen 
59.
Cursor_bewegen_nach tPoint.x - 100, tPoint.y + 20 
60.
SendMausklick MOUSE_LEFT 
61.
End Sub 
62.
 
63.
Sub Wo_ist_die_Maus() 
64.
Dim x As Long 
65.
x = GetCursorPos(tPoint) 
66.
End Sub 
67.
 
68.
Sub Cursor_bewegen_nach(xziel As Long, yziel As Long) 
69.
Dim x As Long, y As Long, n As Long 
70.
x = xziel 
71.
y = yziel 
72.
n = SetCursorPos(x, y) 
73.
End Sub 
74.
 
Willst du dir das mal genau anschauen, kommentier das letzte "SendMausklick MOUSE_LEFT" einfach aus...

Gruß

Markus
Bitte warten ..
Mitglied: thedani
19.05.2007 um 12:21 Uhr
gibt es villeicht auch die Möglichkeit, das Makro nach z.B. 10 sekunden automatisch ausführen zu lassen?
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...