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, 10433 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 ..
Ähnliche Inhalte
VB for Applications
VB.net Combobox databinding langsam (3)

Frage von ForgottenRealm zum Thema VB for Applications ...

Visual Studio
gelöst Vb.net: Word-Doc seitenweise durchsuchen nach Textmarke (7)

Frage von ahstax zum Thema Visual Studio ...

VB for Applications
gelöst VB-Script per Aufgabenplanung (2)

Frage von S4kar97 zum Thema VB for Applications ...

Windows 10
Keine Tastatureingabe in Systemapps möglich

Frage von OSIlayer8 zum Thema Windows 10 ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...