Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Presretanje globalnih tastera sa tastature

[es] :: Pascal / Delphi / Kylix :: Presretanje globalnih tastera sa tastature

[ Pregleda: 5017 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Presretanje globalnih tastera sa tastature07.10.2002. u 13:47 - pre 261 meseci
Pravim aplikaciju koja je smestena u systray-u, tako da se ne prikazuje po njenom prvom startovanju. Situacija je sledeca: zelim da, kad neko pritisne taster F2, na primer, ta aplikacija postane vidljiva. Problem je u tome sto ne znam kako da presretnem na globalnom nivou pritisnut taster. Znaci, korisnik radi u nekom drugom programu, ili se jednostavno nalazi na desktop-u, i zeli da pokrene program pritiskom na neku kombinaciju tastera. Sad, kako je moguce presresti te tastere?

Najvaznije od svega jeste da ova kombinacija radi na win2k/xp sistemima.
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.elfak.ni.ac.yu

Sajt: localhost


+5 Profil

icon Re: Presretanje globalnih tastera sa tastature08.10.2002. u 03:57 - pre 261 meseci
ali ljudi, jer neko od vas cuo za pretrazivace na internetu? jel neko cuo za google? samo sam pitao google: delphi hotkeys global

i kada sam video rezultate i prvu stranicu, shvatio sam da se ne zovu "globalni" hotkey-ovi, vec "sistemski", pa sam samo ono odozgo promeni i ponovo pitao google: delphi hotkeys system

ovo bi trebalo da ide faq na ovom forumu (ne resenje za tastere, vec google)..
 
Odgovor na temu

Zekica
Filip Milivojević
Pirot, Niš

Član broj: 2856
Poruke: 309
*.ptt.yu

Jabber: zekica@elitesecurity.org
Sajt: www.pirotcity.com


+10 Profil

icon Re: Presretanje globalnih tastera sa tastature27.10.2002. u 21:48 - pre 260 meseci
Pogledaj u Win32 SDK Help-u Funkcije:
RegisterHotkey i UnRegisterHotkey

Nisam ih mnogo skoro koristio, ali bi trebalo da ti odrade posao.
Sad ja znam zašto sam vam ovo ispričao, ovo će sigurno nekome koristiti....
 
Odgovor na temu

explorer0

Član broj: 2264
Poruke: 26
62.220.221.*



Profil

icon Re: Presretanje globalnih tastera sa tastature29.10.2002. u 01:14 - pre 260 meseci
to zombie / DOG >
Sta je tebi covece ?
Pa covek lepo pita (hoce da otvori diskusiju o "delphi hotkeys global" pardon "delphi hotkeys system") i ako neko zna neka kaze nesto pa cemo razmenuti nasa iskustva ,ipak je ovo FORUM a njegova namena je DISKUSIJA , a ne upucivanje na web.
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature29.10.2002. u 17:37 - pre 260 meseci
sve cestitke explorer0-u
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
62.108.114.*

Sajt: localhost


+5 Profil

icon Re: Presretanje globalnih tastera sa tastature30.10.2002. u 01:46 - pre 260 meseci
dobro, izvinjavam se svima koje sam mozda uvredio ili bilo na koji drugi nacin naljutio...

priznajem da sam mozda preterao. bio sam malo iznerviran, mada verovatno nisam dobro objasnio razlog. poenta FORUMA jesu DISKUSIJE o problemima.

medjutim, forum ne treba da sluzi kao prvo mesto gde ce ljudi da postavljaju pitanja. (i ocekuju resenja) na prvom mestu bi trebao da bude RTFM, pa onda razne knjige i sajtovi na srodne teme. tek posle toga dolazi pitanje na forumu, ali i to posle pregledanja (ili bar pretrazivanja) foruma da se ne bi ista pitanja ponavljala. ne kazem da je to bio slucaj ovde (ne secam se ovakve teme) ali ste i sami svesni koliko je to cest slucaj...

dakle, da rezimiram, tek nakon upoznavanja sa problemom, i probanja i nailazenja na problem, on bi trebalo da se iznese na forum, radi diskusije...

ne znam. mozda gresim, ali to je moje misljenje, i tako ja to radim....

josh jedared se izvinjavam svima, i obecavam da necu nikad vise!

 
Odgovor na temu

explorer0

Član broj: 2264
Poruke: 26
212.110.87.*



Profil

icon Re: Presretanje globalnih tastera sa tastature30.10.2002. u 07:59 - pre 260 meseci
U redu,prihvacamo izvinenje ;)
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature30.10.2002. u 09:44 - pre 260 meseci
OK zombie / DDG... dosta izvinjavanja

Ajde ako mozes da mi odgovoris na sledece pitanje. Hvala ti usput sto si me uputio na pravo mesto i mogu da kazem da sam delimicno pronasao ono sto sam trazio. Sve sto sam nasao radi odlicno, pa barem dok je glavni obrazac vidljiv, ili dok god ima svoje dugme u taskbar-u. Problem je (a njegovo resenje ne mogu nigde naci) sledeci: posto razvijam aplikaciju koja se nalazi u systray-u (znaci nijednu od gore navedenih osobina ne poseduje), i pritiskom na neki taster ili kombinaciju tastera ta aplikacija treba da "iskoci" i tray-a i prikaze se na ekranu. U cemu je problem sa kodom koji sam pronasao? Jedino sto mi on vraca tom prilikom jeste handle na tray (citav okvir oko sata i sve ostale ikonice programa). Na koji nacin (i kako) mogu da uzmem handle samo mog programa, i nakon toga, naravno radim sa njim sta zelim?
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.rcub.bg.ac.yu

Sajt: localhost


+5 Profil

icon Re: Presretanje globalnih tastera sa tastature31.10.2002. u 01:35 - pre 260 meseci
pazi ovako. nisam nikad ovo radio, pa ne mogu da govorim iz iskustva.

jesi li probao ono sto je zekica predlozio?

ovo sam ja nasao u dokumentaciji za RegisterHotkey():

Code:

The RegisterHotKey function defines a hot key for the current thread. 

BOOL RegisterHotKey(

    HWND hWnd,    // window to receive hot-key notification
    int id,    // identifier of hot key
    UINT fsModifiers,    // key-modifier flags
    UINT vk     // virtual-key code
   );    
 

Parameters

hWnd

Identifies the window that will receive WM_HOTKEY messages generated 
by the hot key. If this parameter is NULL, WM_HOTKEY messages are 
posted to the message queue of the calling thread and must be processed 
in the message loop. 


pazi sta bi ja tebi preporucio. probaj da prilikom startovanja programa napravish formu, makar to bila i dummy prazna forma, ali ocigledno mora da postoji. odmah je sakri i registruj hotkey sa ovom funkcijom (tako sto ces njen handle da prosledish ovoj funkciji).

(postoji caka da se forma sakrije, a da se ne pokazuje u task-baru. ako ovo ne znash, kazi, pa cu i to iscackati...)

ostalo bi trebalo da ti je jasno... ako nije, pitaj dalje...


inace, mozda bi mogao da probash i sa application.handle. mozda upali...

btw, nemam vremena sad, ali na www.torry.net (pa klikni na tips) ima najbolja kolekcija kratkih tip-ova na razne teme. ovakvu stvar bih prvo tamo potrazio...
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature31.10.2002. u 09:04 - pre 260 meseci
Vidim da se stvarno trudis, ali poenta je u tome da sam delphijev kreirani prozor kodom prepravio tako da ne sadrzi dugme u taskbar-u, i ujedno sam postavio svojstvo ShowMainForm na False. Isto tako, sakrio sam je u sys tray-u kako bi radila u pozadini...

Problem znaci kada pritisnem hotkey jeste da mi se kao svojstvo Handle (ma koji objekat da stavim) vraca sam objekat sys tray. Ako bi sad pritiskao taster Tab, prebacivao bi se izmedju svih ikona koje se nalaze u blizini sata. Sve bi to bilo OK da znam gde se nalazi ikonica mog programa, ali kako ce to znati ostali korisnici???

Sta me tacno zanima? Probao sam dosta koda koji se nalazi u Tips sekciji torry.ru sajta, ali nijedan od njih ne odgovara na moje pitanje. Veruj mi kad ti kazem, Google je premali pretrazivac za ovo pitanje... Pokusavam da iskopam nesto iz MSDN-a, ali ima previse suvisnih informacija.

Ako znas, ili bilo ko od clanova kako se dobija hnadle nad prozorom koji je smesten u tray-u (jos plus na Win2K/XP masini), bio bih zadovoljan. Mozda na 98-ici radi kako treba... ali ko to jos ima???
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

explorer0

Član broj: 2264
Poruke: 26
212.110.87.*



Profil

icon Re: Presretanje globalnih tastera sa tastature31.10.2002. u 11:35 - pre 260 meseci
Kolko se ja razumem u windowse,to bi trebalo da ide ovako (teoretski):
Kad se neki dogadjaj desi (klick misa,pritsak na dugme na tastaturu...) onda windows salje te dogadjaje svim aplikacijama koji su momentalno u memoriju ,pa bilo da su oni u tray-u ili su sakriveni od korisnika,...
E sad sve sto treba je da ti prepoznas poruka koja tebe interesuje (pritisak F12) i soodvetno reagujes (popUP u tvom slucaju).Mislim da ti ne treba handle na taskbar ili bilo gde.
Jesam li u pravu ?
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature31.10.2002. u 13:16 - pre 260 meseci
To bi mozda bio slucaj u win9x sistemima. U 2000-ci i XP-u je to drugacije uradjeno. Citav sys tray se ponasao kao jedan objekat sa svojim clanovima. Problem je u tome sto ja ne znam kako da "doprem" do jednog clana, to jest, mog programa koji se nalazi u sys tray-u. Pazi... moja aplikacija se ne nalazi ni u jednom trenutku u listi aktivnih programa, ali je zato ima u listi procesa. Uradio sam ja kako mi svi predlazete, ali je problem sto dobijam fokus na sys tray, koji god da je hotkey. Nakon toga, moram da pritiskam Tab taster da bih presao na ikonicu mog programa, i vise od toga ne mogu. Ne znam da li si razumeo sta dobijam, ali to je to...

Znam neke programe, koji su ovo isto uradili, ali kod njih je situacija bila ta da se nalaze u Ctrl+Alt+Del listi aplikacija, sto kod mene nije slucaj.

Kako i sta dalje?
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

PhrozenShade

Član broj: 239
Poruke: 26
*.panet.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature03.11.2002. u 15:00 - pre 260 meseci
Jeeeee kakvi ste likovi,cekaj malo tebi treba znaci kad se pritisne neki od F-ova da ti otvori prozor a do tad on da bude skriven?

Pa evo ti code za to:
znaci stavis samo jedan timer i memo(privremeno - samo da b:byte):

procedure TForm1.Timer1Timer(Sender: TObject);
var
b: byte;
begin
asm
in al, $60
mov b, al
end;
if b=1 then beep;
memo1.lines.add(inttostr(b));
end;

i to niko nije znao da mu pokaze.
...speed of my code sparkles your mind
www.coders.co.yu
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.anima.co.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature04.11.2002. u 08:33 - pre 260 meseci
fora je u tome da ce krajnji korisnik da postavi trazeni taster, a vec imam gotov kod koji proverava da li je selektovani taster vec preuzet od strane neke druge aplikacije...

da vas ne bih vise "mucio", prestacu da kukam i da se zarijem u MSDN 2003 izdanje :)

THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

morlic
Milos Orlic
Beograd

Član broj: 6081
Poruke: 735
*.ppp-bg.sezampro.yu



+1 Profil

icon Re: Presretanje globalnih tastera sa tastature08.11.2002. u 14:37 - pre 260 meseci
Ako sam dobro razumeo treba ti handle od tvoje aplikacije.

Da li si koristio Application.Handle? Ovo ti vraca handle od onog nevidljivog prozora ( ne od tvoje glavne forme ).

Ako ti treba od glavne forme to je onda GlavnaForma.Handle

Za HOTKEY ---------------------------------------------------------------------

Na glavnoj formi OnCreate metodi postavi
If not RegisterHotkey( Handle, 1, MOD_ALT or MOD_SHIFT, VK_F9 ) Then
ShowMessage('Neuspela operacija!');

Na OnClose sledece:

UnRegisterHotkey( Handle, 1 );

Dodaj poruku WM_HOTKEY u deklaraciji glavne forme:

private // form declaration
Procedure WMHotkey( Var msg: TWMHotkey );
message WM_HOTKEY;

Procedure TForm1.WMHotkey( Var msg: TWMHotkey );
Begin
If msg.hotkey = 1 Then Begin
If IsIconic( Application.Handle ) Then
Application.Restore;
BringToFront;
End;
End;

E sad, ovo zadnje treba menjati u skladu sa potrebama systray-a.

 
Odgovor na temu

Zekica
Filip Milivojević
Pirot, Niš

Član broj: 2856
Poruke: 309
195.252.103.*

Jabber: zekica@elitesecurity.org
Sajt: www.pirotcity.com


+10 Profil

icon Re: Presretanje globalnih tastera sa tastature14.11.2002. u 08:18 - pre 260 meseci
Evo jedne veoma proste komponente za delphi, koju sam ja napravio, nadam se da ce vam pomoci, jer je neverovatno prosta za koriscenje:

Imate method-e Activate, Deactivate,
property-je Modifiers, VKCode i
event OnHotkey.


Sad ja znam zašto sam vam ovo ispričao, ovo će sigurno nekome koristiti....
Prikačeni fajlovi
 
Odgovor na temu

coyoteugly
Belgrade

Član broj: 4350
Poruke: 28
*.beg.sezampro.yu



Profil

icon Re: Presretanje globalnih tastera sa tastature14.11.2002. u 13:50 - pre 260 meseci
Nisam se setio uopste za IsIconic metod... eh, ovo mi je skinulo mnogo dana posla...

Hvala puno...
THE ONLY INTERESTING ANSWERS ARE THOSE THAT DESTROY THE QUESTIONS
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Presretanje globalnih tastera sa tastature

[ Pregleda: 5017 | Odgovora: 16 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.