Hallo,
für das Numlock-Problem habe ich mir die u.a. Function gemacht. Alternativ noch eine SendKeys-Version über die Shell. Ob dies Dein Problem löst, weiß ich natürlich nicht.
Weitere Alternative ist die API-Funktion: keybd_event
Steuern von Fremdprogrammen, die keine passende Schnittstelle haben, hatte ich jahrelang erfolgreich mit meinem "virtuellen Mitarbeiter" realisiert. einer Kombination aus Mausklicks, Tastenanschlägen und vor allem, wenn vorhanden, Direktplatzierungen über die Fenster-IDs durch die Win-API.
Dazu braucht man aber zunächst enen Windowspy-Programm zum Ermitteln der IDs....
Aber Du willst die API ja nicht nutzen.
PS: Wenn man weiß was man tut oder unkritische Funktionen wie zum Beispiel die u.a.verwendet, funktioniert de Nutzung der WIN-API sehr gut.
Die o.a. Aussage zum dauerhaften Zerschießen des Systems halte ich daher für überzogen.
Code:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 |
|
Private Declare PtrSafe Function GetKeyboardState Lib "user32" ( _
pbKeyState As Byte) As Long
Sub TestSendKeys()
SendMyKeys "^v"
End Sub
Sub SendMyKeys(Was As String)
' Nummernblockeinstellung merken, SendKeys abschicken,
' Nummernblock ggf. wiederherstellen
' GetKeyboardState Keys(0) Keyboard-Array füllen
Dim Keys(0 To 255) As Byte, bNumBlock As Byte
GetKeyboardState Keys(0): bNumBlock = Keys(vbKeyNumlock)
SendKeys Was
GetKeyboardState Keys(0)
If bNumBlock <> Keys(vbKeyNumlock) Then SendKeys "{NUMLOCK}"
End Sub
' oder diese Alternative hier
Sub Test2()
CreateObject("WScript.Shell").SendKeys "^v", True
End Sub
|
_________
viele Grüße
Karl-Heinz
|