Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 5 odgovora
  • 3.134 pregleda

Najnovija ↓

Hoćeš da obradiš poruku ili da ide reboot? 01.07.2004. u 20:46 · pre 271 mesec #1
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...
Potpis
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
Re: Hoćeš da obradiš poruku ili da ide reboot? 02.07.2004. u 15:08 · pre 271 mesec #3
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...
Potpis
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
Re: Hoćeš da obradiš poruku ili da ide reboot? 04.07.2004. u 01:24 · pre 271 mesec #5
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'.
Potpis
the world is not enough ...
Re: Hoćeš da obradiš poruku ili da ide reboot? 04.07.2004. u 12:43 · pre 271 mesec #6
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.
Potpis
Yea, and from this day forth, a surface must be locked before beast or man can draw upon it!
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme