/ Forside / Teknologi / Udvikling / C/C++ / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
C/C++
#NavnPoint
BertelBra.. 2425
pmbruun 695
Master_of.. 501
jdjespers.. 500
kyllekylle 500
Bech_bb 500
scootergr.. 300
gibson 300
molokyle 287
10  strarup 270
Simulering af tastetryk under Win32.
Fra : John Ekblom


Dato : 24-10-02 23:44

Er der nogen der ved hvorledes man simulerer tastetryk i windows ?

Jeg er blevet bedt om at sørge for nem input af data til et gammelt program
(som jeg ikke har kildetekst til) og min eneste mulighed er at simulere de
tastetryk brugeren ville have tastet.

Programmet der simulerer tastetryk skal således køre i baggrunden, mens det
andet program (som jeg ikke har kildetekst til) skal have fokus.

Er der nogen der har prøvet noget tilsvarende og evt. har hints og/eller
noget kode ?

På forhånd tak for hjælpen.

M.v.h.
John Ekblom





 
 
Morten F. Hansen (25-10-2002)
Kommentar
Fra : Morten F. Hansen


Dato : 25-10-02 09:57

"John Ekblom" <ekblom@image.dk> wrote:
> Er der nogen der ved hvorledes man simulerer tastetryk i windows ?
> Jeg er blevet bedt om at sørge for nem input af data til et gammelt program
> (som jeg ikke har kildetekst til) og min eneste mulighed er at simulere de
> tastetryk brugeren ville have tastet.

Jeg har brugt keybd_event() til dette med stor success. Alle tastetryk
kan simuleres og det virker fint. Det problem, der måske kan opstå er at
synkronisere med modtager-applikationen, så man er sikker på at
input-kontrollen man ønsker at sende tastetryk til er synlig og aktiv. Det
er en god ide også at bruge EnumWindows(), EnumChildWindows() og
SetForegroundWindow() til dette sammen med lidt kode, som tit kontrollere
om modtager-applikationen opfører sig som man regner med, eller om et
tastetryk evt er gået tabt.

En anden mulighed kan være at købe SQA Robot (lavet af Rational Software
Corporation). Dette er en slags testværktøj som tillader at kommunikere
med en win32-applikations input-kontroller. Logikken laves som VBA scripts.
Dette har vi også brugt med stor success på mit arbejde. Dette er godt hvis
det drejer sig om et stort projekt.



John Ekblom (30-10-2002)
Kommentar
Fra : John Ekblom


Dato : 30-10-02 21:35

Mange tak for hjælpen. Det var lige det jeg skulle bruge ...

M.v.h.
John Ekblom

"Morten F. Hansen" <info@127.0.0.1> skrev i en meddelelse
news:apb11h$o7k$1@sunsite.dk...
> "John Ekblom" <ekblom@image.dk> wrote:
> > Er der nogen der ved hvorledes man simulerer tastetryk i windows ?
> > Jeg er blevet bedt om at sørge for nem input af data til et gammelt
program
> > (som jeg ikke har kildetekst til) og min eneste mulighed er at simulere
de
> > tastetryk brugeren ville have tastet.
>
> Jeg har brugt keybd_event() til dette med stor success. Alle tastetryk
> kan simuleres og det virker fint. Det problem, der måske kan opstå er at
> synkronisere med modtager-applikationen, så man er sikker på at
> input-kontrollen man ønsker at sende tastetryk til er synlig og aktiv. Det
> er en god ide også at bruge EnumWindows(), EnumChildWindows() og
> SetForegroundWindow() til dette sammen med lidt kode, som tit kontrollere
> om modtager-applikationen opfører sig som man regner med, eller om et
> tastetryk evt er gået tabt.
>
> En anden mulighed kan være at købe SQA Robot (lavet af Rational Software
> Corporation). Dette er en slags testværktøj som tillader at kommunikere
> med en win32-applikations input-kontroller. Logikken laves som VBA
scripts.
> Dette har vi også brugt med stor success på mit arbejde. Dette er godt
hvis
> det drejer sig om et stort projekt.
>
>



Ivan Johansen (25-10-2002)
Kommentar
Fra : Ivan Johansen


Dato : 25-10-02 15:00

John Ekblom wrote:
> Er der nogen der ved hvorledes man simulerer tastetryk i windows ?
>
> Jeg er blevet bedt om at sørge for nem input af data til et gammelt program
> (som jeg ikke har kildetekst til) og min eneste mulighed er at simulere de
> tastetryk brugeren ville have tastet.
>
> Programmet der simulerer tastetryk skal således køre i baggrunden, mens det
> andet program (som jeg ikke har kildetekst til) skal have fokus.
>
> Er der nogen der har prøvet noget tilsvarende og evt. har hints og/eller
> noget kode ?

Jeg har ikke selv prøvet det, men umiddelbart ville jeg sende
WM_KEYDOWN, WM_KEYUP og lignende beskeder direkte til programmet. Så
behøver programmet ikke engang have fokus.

Ivan Johansen


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste