webForumDet fria alternativet

Emulera Tangentbord !!

5 svar · 570 visningar · startad av Lasp

LaspMedlem sedan juli 200012 980 inlägg
#1

Hur kan man ersätta ett antal tangentbordsnedtryckningar med ett antal från en förutbestämd sekvens?
Exempelvis Ctrl+E som startar en session med tab, tab "Ctrl+F4" samt pil ner paus Invänta värde "Return"!

------------------
GvdsSfdtTddv.

jtMedlem sedan juni 2000350 inlägg
#2

Ska tangenttryckningarna skickas till samma program som "emulerade" dessa?

Vad har du tänkt att uppnå med emuleringen?

[Redigerat av jt den 22 jan 2001]

LaspMedlem sedan juli 200012 980 inlägg
#3

Ja det är i samma delphi program som det skall ske.
Anledningen är att göra ett förutbestämt antal tab och dataifyllnad som upprepar sig dvs man trycker Ctrl+E och så fylls en massa data i på rätt ställen i formulären.
En annan gång kanske man trycker Ctrl+F och en del editboxar fylls med andra värden enkigt schema.

------------------
GvdsSfdtTddv.

jtMedlem sedan juni 2000350 inlägg
#4

Kanske kan detta ge något tips.

begin
Keybd_event(VkKeyScan('a'),0,0,0);
Keybd_event(VK_TAB,0,0,0);
Keybd_event(VkKeyScan('b'),0,0,0);

//Väntar på Entertryck
while HiByte(GetKeyState(VK_RETURN)) = 0 do
begin
Keybd_event(VK_TAB,0,0,0);
Sleep(100);
Application.ProcessMessages
end;
end;

Jag har brukat använda denna kod för att skifta focus mellan kontroller(typ TAB)
//Skifta focus framåt
Perform(WM_NEXTDLGCTL, 0, 0);
//Skifta focus bakåt
Perform(WM_NextDLGCTL, 1, 0);

Har för mig att jag sett någon funktion som brukar kallas Sendkeys som antagligen gör det du vill på ett hyfsat enkelt sätt. Senkeys finns i VB och någon ska ha skrivit något liknande för delphi.

Obs
Du bör nog kolla hur man ska använda parametrarna i Keybd_event.

[Redigerat av jt den 23 jan 2001]

LaspMedlem sedan juli 200012 980 inlägg
#5

>> jt Tack för hjälpen
Nyckelordet var "SendKey".
Återkommer när det rullar som jag vill.

------------------
GvdsSfdtTddv.

LaspMedlem sedan juli 200012 980 inlägg
#6

Jovisst var det rätt.
Sitter och går igenom en del gammalt och ser att jag skulle återkomma med svar!
Är det försent med ett och halvt år senare?

130 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)