Avaleht
uus teema   vasta Tarkvara »  Programmeerimine »  [C++]Hotkey teisele töötavale programmile? märgi kõik teemad loetuks
märgi mitteloetuks
vaata eelmist teemat :: vaata järgmist teemat
Hinnavaatlus :: Foorum :: Uudised :: Ärifoorumid :: HV F1 ennustusvõistlus :: Pangalink :: Telekavad :: HV toote otsing
autor
sõnum Saada viide sõbrale.  :: Teata moderaatorile teata moderaatorile
otsing:  
Bssldr
HV kasutaja

liitunud: 05.12.2009




sõnum 29.09.2010 10:38:36 [C++]Hotkey teisele töötavale programmile? vasta tsitaadiga

Oleks vaja teha lahendus, kus minu loodud programm reageerib nupuvajutustele(antud juhul hotkeyd) teises kindlaksmääratud programmis.

Ise mõtlesin kasutada järgmist lahendust:
1. Kasutada RegisterHotKey funktsiooni ja panna WM_HOTKEY vastuvõtjaks enda programmi aken.
2. Kontrollida, kas target programmi aken on aktiivne.

Oskab keegi midagi efektiivsemat välja pakkuda? Mõni otsene lahendus?
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
Absona
Lõuapoolik
Lõuapoolik

liitunud: 17.09.2008




sõnum 29.09.2010 10:57:19 vasta tsitaadiga

Kusagil on mul selline rakendus olemas aga äkki leian ülesse.

Mina lahendasin probleemi niimoodi, et rakenduses saab erinevaid hotkey-si teha ja valida, millises rakenduses need tööle hakkavad (töötavate protsesside abil). Ja ei olegi midagi erilist, kui hotkey'd vajutada, siis kontrollitakse protsessi (target rakendus - siin oli mingi teek abiks), kas see ühtib või mitte (lubab hotkey kasutada või mitte).

Ainuke paha asi on see, et loodud rakendus peab taustal (system tray) koguaeg töötama.

_________________
Veebilehed, veebiprogrammeerimine, veebilahendused
Erinevad rakendused ja skriptid.


viimati muutis Absona 29.09.2010 10:58:58, muudetud 1 kord
Kommentaarid: 11 loe/lisa Kasutajad arvavad:  :: 2 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum mine selle kasutaja kodulehele
Mucrop3
Lõuapoolik
Lõuapoolik
Mucrop3

liitunud: 28.03.2004




sõnum 29.09.2010 10:58:26 vasta tsitaadiga

Kui lahendus töötab vaid kindla resoga ekraanil siis võid kasutada hiire noolega klikimist kindlasse x y kordinaati.
Autohotkey scriptiga.
tagasi üles
vaata kasutaja infot saada privaatsõnum
ocjel
HV vaatleja

liitunud: 30.09.2010




sõnum 30.09.2010 17:47:21 vasta tsitaadiga

Põhimõtteliselt öeldakse selle kohta, et soovid "keylogger'it implementeerida".

Kui Sa soovid seda teha windowsi platvormil, siis võid näiteks kasutada Application programming interface'i (API't), usr32.dll'i meetodit getasynckeystate(). Samas, kui sulle ei meeldi "unmanaged code", sest Sa ei tea, mis telgi-taga toimub, võid kasutada Managed Windows API't, mille saad tirida http://mwinapi.sourceforge.net/. Kui Sa kirjutad mõnda programmi endale lõbuks, ning sinu kvaliteedi standardid ei ole kõrged, võid muidugi kasutada ka esimest sobiliku koodi, mida google otsingu termin "keylogger" tagastab.

Autohotkey või AutoIt on mugavad nn. kaudsed viisid sellise functsionaalsuse lisamiseks. Isiklikult mulle meeldib AutoIT rohkem, ning temaga tuleb kaasa ka parem, "inimtegevus skriptiks" salvestaja: Automatic AutoIt v3 Script Recorder. Ning skripti võid kirjutada ka loogika, mis arvestab erinevate ekraani resulutsioonidega.
tagasi üles
vaata kasutaja infot saada privaatsõnum
Bssldr
HV kasutaja

liitunud: 05.12.2009




sõnum 01.10.2010 18:24:37 vasta tsitaadiga

Lahendasin selle nii nagu esialgu ise ette kujutasin.

RegisterHotKey() ning WM_HOTKEY messaged suunasin enda programmile. Kui antud hotkeyd vajutatakse, kontrollin GetWindowInfo()-ga kas target aken on aktiivne. Samas GetAsyncKeyState() tundub parem, pole vaja asja ringiga lahendada.
Kommentaarid: 9 loe/lisa Kasutajad arvavad:  :: 0 :: 0 :: 8
tagasi üles
vaata kasutaja infot saada privaatsõnum
näita postitusi alates eelmisest:   
uus teema   vasta Tarkvara »  Programmeerimine »  [C++]Hotkey teisele töötavale programmile?
[vaata eelmist teemat] [vaata järgmist teemat]
 lisa lemmikuks
näita foorumit:  
 ignoreeri teemat 
sa ei või postitada uusi teemasid siia foorumisse
sa ei või vastata selle foorumi teemadele
sa ei või muuta oma postitusi selles foorumis
sa ei või kustutada oma postitusi selles foorumis
sa ei või vastata küsitlustele selles foorumis
sa ei saa lisada manuseid selles foorumis
sa võid manuseid alla laadida selles foorumis



Hinnavaatlus ei vastuta foorumis tehtud postituste eest.