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

Hoćeš da obradiš poruku ili da ide reboot?

[es] :: Pascal / Delphi / Kylix :: Hoćeš da obradiš poruku ili da ide reboot?

[ Pregleda: 2393 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

hwfanatic
Branko Grbac
Beograd

Član broj: 91
Poruke: 171
*.beotel.net



Profil

icon Hoćeš da obradiš poruku ili da ide reboot?01.07.2004. u 19:46 - pre 241 meseci
Kako da nateram prozorče da obrađuje poruke i kada nema fokus? Napravih neki hook za tastaturu koji je ceo odrađen u dinamičkoj biblioteci (moralo je tako), i kad god korisnik pritisne nešto on šalje poruku na određen hendl. Ovo radi kewl dokle god je prozor aplikacije aktivan. E, ali meni treba sve vreme da se zna ko šta čeprka po tastaturi...
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
 
Odgovor na temu

byTer

Član broj: 10936
Poruke: 1221
*.info-net.co.yu

ICQ: 47761626


Profil

icon Re: Hoćeš da obradiš poruku ili da ide reboot?02.07.2004. u 13:37 - pre 241 meseci
Nije li nesto sa default monitor propertijem glavne forme?
 
Odgovor na temu

hwfanatic
Branko Grbac
Beograd

Član broj: 91
Poruke: 171
*.beotel.net



Profil

icon Re: Hoćeš da obradiš poruku ili da ide reboot?02.07.2004. u 14:08 - pre 241 meseci
Citat:
Specifies the monitor on which the form appears.

Delphi syntax:

type TDefaultMonitor = (dmDesktop, dmPrimary, dmMainForm, dmActiveForm);
property DefaultMonitor: TDefaultMonitor;

Description

Use DefaultMonitor to associate a form with a particular monitor in a multi-monitor application.

Nešto mi je tu sumnjivo...
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.teleportgroup.net

Sajt: www.diy-fever.com


+1 Profil

icon Re: Hoćeš da obradiš poruku ili da ide reboot?03.07.2004. u 00:22 - pre 241 meseci
potrazi komponente GpSysHook, imas hook za misa, tastaturu i API
radi OK
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

Night
Dbk, Hr

Član broj: 3981
Poruke: 126
*.cmu.carnet.hr

Sajt: www.redrival.com/nrx


Profil

icon Re: Hoćeš da obradiš poruku ili da ide reboot?04.07.2004. u 00:24 - pre 241 meseci
Nije problem u fokusu od programa, nego u djeljenim varijablama. Imao sam s time problema kad sam radio hook, ispada da hook radi samo na programu koji je postavio hook. To se moze rijesiti mjenjanjem vrijednosti jednog sectiona u samom hooku (vidjeti iczelionove tutoriale), sto se ne moze napraviti u samom delphiju koliko znam, ali moze sa npr. LordPE, ili nekim drugim alatom koji moze prckati po PE headerima. Druga opcija je da hook napravi memorijsku datoteku u koju sprema handle forme kojoj ce se poruka slati kad hook 'okine'.
the world is not enough ...
 
Odgovor na temu

hwfanatic
Branko Grbac
Beograd

Član broj: 91
Poruke: 171
*.beotel.net



Profil

icon Re: Hoćeš da obradiš poruku ili da ide reboot?04.07.2004. u 11:43 - pre 241 meseci
Pa, dobro, evo kako izgleda taj hook, pa mi ti reci da li treba da pravim deljenu memoriju... Moje mišljenje je da nema potrebe, jer ja taj handle prosledim odma na početku.
Code:

library kbHook;

uses
  FastShareMem,
  Main in 'Main.pas';

{$R *.res}

end.

Code:

unit Main;

interface

uses
  FastShareMem, Windows, Messages;

function InstallHook(HWND: THandle): Boolean; stdcall;
function KeyboardProc(Code, wParam, lParam: Integer): Integer;
function UninstallHook: Boolean; stdcall;

var
  HookHandle: HHOOK;
  WndHandle: THandle;

exports
  InstallHook,
  UninstallHook;

implementation

function InstallHook(HWND: THandle): Boolean; stdcall;
begin
  Result := FALSE;
  if (HookHandle = 0) and (HWND <> INVALID_HANDLE_VALUE)
    then begin
      HookHandle := SetWindowsHookEx(WH_KEYBOARD, @KeyboardProc, HInstance, 0);
      WndHandle := HWND;
    Result := TRUE;
  end;
end;

function KeyboardProc(Code, wParam, lParam: Integer): Integer;
begin
  Result := CallNextHookEx(HookHandle, Code, wParam, lParam);
  if Code >= HC_ACTION
    then begin
      SendMessage(WndHandle, 18000, 0, 0);
// Ovo je samo za probu.
    end;
end;

function UninstallHook: Boolean; stdcall;
begin
  Result := UnhookWindowsHookEx(HookHandle);
  HookHandle := 0;
end;

end.

Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Hoćeš da obradiš poruku ili da ide reboot?

[ Pregleda: 2393 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

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