Aber wenn man das ändert funzt der Code!
THX!
Ich glaube du warst halb in einer anderen Sprache drin...
Gruß
JENS
keybd_event_()
-
Oliver1994
- Beiträge: 321
- Registriert: 15.06.2008 21:52
So nun wollte ich natürlich auch das es mit Zahlen funzt und habe etwas hinzugefügt:
Jetzt schreibt er habe irgend ein kack...
Weiß jemand was da falsch is?
Gruß
JENS
Code: Alles auswählen
Procedure StringSend(sVALUE.s)
If Len(sVALUE) <> 1
MessageRequester("Fehler!","So läuft das nicht! Nur 1 Buchstabe zur Zeit!")
End
EndIf
lASC = Asc(sVALUE)
lKeyCode = VkKeyScan_(lASC)
If lASC >= 65 And lASC <= 90
lUCase = #True
Else
OtherChr = #True
EndIf
If OtherChr = #True And lASC >= 48 And lASC <= 57
lUCase = #True
OtherChr = #False
EndIf
;Shift drücken...
If lUCase
keybd_event_(#VK_SHIFT, #Null, #Null, #Null)
EndIf
;Taste drücken
keybd_event_(lKeyCode, #Null, #Null, #Null)
;Shift loslassen
If lUCase
keybd_event_(#VK_SHIFT, #Null, #KEYEVENTF_KEYUP, #Null)
EndIf
Delay(1)
EndProcedureWeiß jemand was da falsch is?
Gruß
JENS
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Das funktioniert auch mit Zahlen einwandfrei ö.ÖOliver1994 hat geschrieben:So nun wollte ich natürlich auch das es mit Zahlen funzt
Sonderzeichen funktionieren nicht wirklich, da hast du wahr, aber Zahlen und Buchstaben funktionieren wie 'ne 1!
Also mit meiner ursprünglichen Routine, deine neue Routine spuckt tatsächlich Müll aus.
Und das ich 1-2 THENs vergessen habe wegzunehmen- stimmt. Ich nutze seit ewigkeiten kein Purebasic mehr, und habe nur noch ne Demo (und mit dieser kann ich natürlich keine APIs kompililieren, deshalb musste ich ne andere Sprache verwenden)
Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
- Tafkadasom2k5
- Beiträge: 1578
- Registriert: 13.08.2005 14:31
- Kontaktdaten:
Sorry für den Doppelpost, hier ne erweiterte Variante, die ich nicht testen konnte bisher...)
Ich weiß nicht, ob das mit den HiBytes/LoBytes so funkltioniert. In meinem original getesteten Quelltext waren die Variablen "DWORD", und ausgelesen wurde mit Hi(BYTE,WERT)/Lo(BYTE,WERT). Ich weiß nicht,wie sich Pure hier verhält und kann es mangels API auch nicht testen... Wie gesagt, man muss den Wert von VkKeyScan_ auf HiByte (Extra Tasten) und LoByte(Tastendruck) abfragen.
Ich weiß nicht, ob das mit den HiBytes/LoBytes so funkltioniert. In meinem original getesteten Quelltext waren die Variablen "DWORD", und ausgelesen wurde mit Hi(BYTE,WERT)/Lo(BYTE,WERT). Ich weiß nicht,wie sich Pure hier verhält und kann es mangels API auch nicht testen... Wie gesagt, man muss den Wert von VkKeyScan_ auf HiByte (Extra Tasten) und LoByte(Tastendruck) abfragen.
Code: Alles auswählen
#SHIFT = 1
#CTRL = 2
#ALT = 4
Procedure.b LoByte(Value.b)
ProcedureReturn Value & $F
EndProcedure
Procedure.b HiByte(Value.b)
ProcedureReturn (Value >> 4) & $F
EndProcedure
Procedure Tippen(sVALUE.s)
If Len(sVALUE) <> 1
MessageRequester("Fehler","Ey! Nur ein Buchstabe zur Zeit!")
End
EndIf
lKeyCode.l = VkKeyScan_(Asc(sVALUE))
lExtraKeys.l = HiByte(lKeyCode)
lKeyCode = LoByte(lKeyCode)
;MessageRequester("Nachricht",sVALUE+":"+Str(lExtraKeys)+"|"+Str(lKeyCode))
;Shift drücken...
If (lExtraKeys And #SHIFT)
KeyBd_Event_(#VK_SHIFT, #Null, #Null, #Null)
EndIf
;Alt drücken...
If (lExtraKeys And #ALT)
KeyBd_Event_(#VK_MENU, #Null, #Null, #Null)
EndIf
;CTRL drücken...
If (lExtraKeys And #CTRL)
KeyBd_Event_(#VK_CONTROL, #Null, #Null, #Null)
EndIf
;Taste drücken
KeyBd_Event_(lKeyCode, #Null, #Null, #Null)
;Shift loslassen
If (lExtraKeys And #SHIFT)
KeyBd_Event_(#VK_SHIFT, #Null, #KEYEVENTF_KEYUP, #Null)
EndIf
;ALT loslassen
If (lExtraKeys And #ALT)
KeyBd_Event_(#VK_MENU, #Null, #KEYEVENTF_KEYUP, #Null)
EndIf
;CTRL loslassen
If (lExtraKeys And #CTRL)
KeyBd_Event_(#VK_CONTROL, #Null, #KEYEVENTF_KEYUP, #Null)
EndIf
Delay(1)
EndProcedure
sNAME.s = "W0000hoow@lÖl.de!! ;D"
For i.l=1 To Len(sName)
Tippen(Mid(sName,i,1))
NextOpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!