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.
5 svar · 570 visningar · startad av Lasp
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.
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]
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.
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]
>> jt Tack för hjälpen
Nyckelordet var "SendKey".
Återkommer när det rullar som jag vill.
------------------
GvdsSfdtTddv.
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?