Keresés

Hirdetés

Új hozzászólás Aktív témák

  • Szalma

    őstag

    válasz Erick #474 üzenetére

    (Hát az elég fogós. Írni kell egy saját üzenet diszpeccselőt, amiben elcsíped a neked kellő windows message-kat, a többit pedig tovább passzolod. A fő form ablakának az üzenetkezelőjébe kellene beilleszkedned. WndProc környékén kell nézelődni, a VCL-ben megtalálod, onnan ki lehet lesni...
    ''Sajnos'' most nincs delfim, nem tudok pontosabb infóval szolgálni...)

    Szeretettel:
    Szalma

  • BatemanX

    tag

    válasz Erick #474 üzenetére

    Hűha, akkor ehhez kicsit jobban a dolgok mélyére kell ásni. Most lehet, hogy sok hülyeséget fogok írni, a szakértőbbek majd kijavítanak, mivel amit leírok csak tapasztalati tényeken alapszik és nem ismerem hozzá a Delphi mélylélektanát.
    Szóval a probléma ekkor az, hogy mindig az a komponens kapja meg a billentyűleütést, amelyiken a fókusz van, így 3 lehetőséged van:

    Legrosszabb:
    Minden formon lévő komponensed onkeydownjához odaírod a már említett kódot.

    Valamivel egyszerűbb, de nem javasolt undorító heggesztés:
    Override-olod a WndProc eljárást és figyeled a Message paraméterét. Ha az általad kívánt billentyűkombináció jön, meghívod a megfelelő eljárást.

    Elegáns, jó megoldás:
    Csinálsz egy ''hook''-ot a billentyűzet eseményekre. Erre most konkrét kódot nem írnék, mert elég komplikált, inkább google-ban keress rá a CallNextHookEx eljárárásra és a találatok között biztos lesz olyan ami rávilágít a megoldásra (annó én is ezt csináltam).

    ''Budapest, hajnali fél három, gyenge szél, 14 fok. A hajam tökéletes, de azon a rohadt tesztszerveren még mindig 1000-es várakozási sor van...'' -F-ECT$ a WoW tesztszerverről.

Új hozzászólás Aktív témák