Avatar billede nca Juniormester
27. juni 2001 - 23:02 Der er 14 kommentarer og
1 løsning

Send key til DOS vindue

Jeg starter et dosprogram fra Delphi og leder output\'et til en fil.
DOS-programmet står og venter på enten Y eller N.
Jeg læser output-filen og vil herefter gerne sende fx Y til dosvinduet.
Jeg kan godt finde handleren til vinduet og gøre det aktivt. Når jeg forsøger med kommandoen KEYBD_EVENT(VK_RETURN,0,0,0) sker der absolut intet i dos-vinduet.
Hvad gør jeg forkert?
Avatar billede microtec Nybegynder
27. juni 2001 - 23:04 #1
Jeg tror ikke det kan lade sig gøre at sende key´s til et DOS-vindue.
Lytter med :o)
Avatar billede microtec Nybegynder
27. juni 2001 - 23:05 #2
Grunden til at jeg ikke tror det kan lade sig gører, er at det heller ikke virker når man laver macro-programmering i f.eks. Microsoft Access.
Avatar billede makse Nybegynder
27. juni 2001 - 23:11 #3
Normalt i Dos, gøres det med echo y| foran kommandoen. Så bliver der automatisk svaret ja.
Avatar billede pstric Nybegynder
27. juni 2001 - 23:18 #4
I stedet for KEYBD_EVENT, kunne du evt. prøve med
PostMessage(Handle, WM_KEYDOWN, Ord(\'Y\'), 0);
hvor Handle er dosvinduet\'s HWND.
Avatar billede microtec Nybegynder
27. juni 2001 - 23:28 #5
makse >> Det må kræve at det sker fra DOS-prompten.
Avatar billede makse Nybegynder
27. juni 2001 - 23:34 #6
microtec > I en batch-fil kan man godt bruge Echo y| Er det et regulært Dos program, er det ikke muligt at bruge den.
Avatar billede nca Juniormester
27. juni 2001 - 23:56 #7
>>pstric
Det virker ikke :-(

Jeg har fundet et dll, som kan klare problemet. Den hedder PushKey og er meget nem at bruge. Kan hentes på http://members.ozemail.com.au/~clatta/

Jeg håber at andre kan få glæde af den. Det medfølgende eksempel kan jeg desværre ikke få til at virke, men hjælpen er udmærket.
Avatar billede pstric Nybegynder
28. juni 2001 - 00:03 #8
Har du også prøvet at skifte WM_KEYDOWN ud med WM_KEYPRESS?

Jeg har ikke lige tid til at undersøge det, men det skal nok passe at der er specielle problemer med dosvinduer.

Tak for link\'et.
Avatar billede pstric Nybegynder
28. juni 2001 - 00:06 #9
Hvis PostMessage kunne komme til at virke, ville det jo trods alt spare dine brugere for en ekstra dll. Og jeg ved i hvert fald at jeg har nok af dem ;-)
Avatar billede delphi Nybegynder
28. juni 2001 - 09:13 #10
mht. message metoden:

  Jeg føler mig voldsomt fristet til at tro, at det er en WM_KeyPressUp (eller hvad den nu hedder) message der skal sendes til din application.  Bemærk at det er keyUP jeg snakker om.

Peter

Avatar billede nca Juniormester
28. juni 2001 - 12:16 #11
>>delphi
Der er kun mulighed for KEYUP og KEYDOWN og ingen af dem virker.
>>pstric
Helt enig, men i øjeblikket er det den eneste løsning. Der er point til den, der finder en \"intern\" løsning
Avatar billede makse Nybegynder
28. juni 2001 - 12:22 #12
Avatar billede nca Juniormester
28. juni 2001 - 18:48 #13
>>makse
Det kunne jeg godt bruge.
Funktionen PostKeyEx32 sender et vilkårligt tastetryk (VK_xx) til et dos-vindue og funktionen SendText er god til at få overført en tekststreng til et dos-vindue.
Kan du ikke oprette et spørgsmål, så skal du få dine velfortjente point :-)?
Avatar billede makse Nybegynder
28. juni 2001 - 18:52 #14
Nca > Glæder mig at høre. Men det er nu dig der skal oprette et spørgsmål
Avatar billede nca Juniormester
28. juni 2001 - 18:55 #15
>>makse
Det er rigtigt - det gør jeg så.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester