Entwickler-Ecke
Sonstiges (Delphi) - procedure keybd_event; --- string to byte??
Taucher - Do 16.07.09 19:00
Titel: procedure keybd_event; --- string to byte??
Ich möchte in meinem Delphiprogramm die Prozedur
procedure keybd_event;
nutzen, um eine Eingabe von einem Edit in eine Website zu schreiben.
Dabei wird der Browser die Seite mittels der Funktion
Delphi-Quelltext
1:
| function ShellExecute; |
aufrufen und nach einem kurzen delay (zum laden der Seite) wird mit
Delphi-Quelltext
1: 2:
| keybd_event(VK_TAB, 0, 0, 0); keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); |
die eingabebox ausgewählt.
Nun mein Problem:
die Prozedur keybd_event; hat folgende Syntax:
Delphi-Quelltext
1:
| procedure keybd_event(bVk: byte, bScan: byte, dwFlags: cardinal,dwExtraInfo: cardinal) |
die einzelnen Zeichen der Eingabe des Users bekomme ich mit
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7:
| c: char; i: integer;
for i := 1 to length(Edit1.Text) do begin c := Edit1.Text[i]; end; |
also dachte ich mir folgendes:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| c: char; i: integer;
for i := 1 to length(Edit1.Text) do begin c := Edit1.Text[i]; keybd_event(VK_c, 0, 0, 0); keybd_event(VK_c, 0, KEYEVENTF_KEYUP, 0); end; |
Mir ist klar das das so nicht klappt, aber das VK_ zusammen als sting zu übergeben schlägt auch fehl. Es muss ja vom Typ byte sein.
Kann mir jemand helfen oder hat jemand eine andere Idee wie man so etwas realisieren kann?
MfG
Taucher
PS.: Ich nutze D7 Enterprise
ffgorcky - Do 16.07.09 19:46
Hallo und herzlich :welcome: hier im Forum!
Ich kenne mich auf dem Gebiet auch immer noch nicht so aus, aber wenn ich richtig denke, dann müsste das doch mit
Ord(EinzelnerUmzuwandelnderStringWert) gehen. - Oder?
So sieht es zumindest auch in
diesem Thread [
http://www.delphi-forum.de/viewtopic.php?t=32847] aus.
Taucher - Do 16.07.09 21:36
Danke für deine schnelle Antwort :)
In dem andern Thread wird eine andere Methode genutzt, die aber (soweit ich es ausprobiert habe) nich geht, da ich der/die/das Handle des Eingabefelds bräuchte, aber es im Browser kein Handle besitzt :(
Mit der ORD() Dunktion erhalte ich doch nur den Wert einer Variable vom Typ char und strings sind leider nicht kompatibel.
Den String Buchstabe für Buchstabe umzuwandeln ginge auch nicht, da ich auch noch das VK_ irgendwie davor bringen muss :?
MfG
Taucher
Taucher - Do 16.07.09 22:02
Ich hab grade die Lösung gefunden!!
Delphi-Quelltext
1:
| KEYBD_EVENT(VKKeyScan(buchstabe: char),0,0,0); |
schreibt den gewünschten Buchstaben...
MfG
Taucher
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!