Einzelnen Beitrag anzeigen

TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Schließen eines fremden Programms verhindern

  Alt 14. Feb 2005, 18:23
doch, ja, WM_SysCommand sähe eigentlich ganz gut aus. Habe auch gerade diesbezüglich in der PSDK gelesen, dass diese Message bei einem solchen Ereignis (also einem App-Closen über die X-Button rechts in der Title-Leiste) dann eigentlich auch abgeschickt wird. Aber leider kommt sie in der HookProc irgendwie nicht an (egal mit welchem weiteren wParam-Wert).

Zur allgemeinen Information vielleicht noch: Das gehookte Prog ist hier nur der ganz normale Rechner, wohl immer zu finden per FindWindow mit den Parametern ('Rechner','SciCalc').

Und hier nochmal kurz, welche Messages beim App-Closen in der HookProc auch leider nur vorbeikommen. (WM_LButtonDown habe ich nur zum generellen Test der HookProc mit dazugenommen):

Delphi-Quellcode:
function PROC(nCode: Integer; wp: wParam; lp: lParam): LongInt; stdcall;
var pt : TSmallPoint;
begin
  if (nCode >= HC_ACTION) then
    case PMsg(lp)^.message of
      WM_Close : Beep; <-- gibt's nie
WM_Destroy : Beep; <-- gibt
's nie
      WM_Quit : begin
                  windows.Beep(300,25); <-- kommt, ist aber leider nicht abzufangen...
                  // PMsg(lp)^.message := WM_Null // ...wenigstens so nicht
                  // Result := 0;
                  // exit;
                end;
      WM_SysCommand : windows.beep(1000,25); <-- gibt's nie
WM_LButtonDown : windows.beep(2500,25); <-- kommt bei jedem LButtonDown
end; { of case }

Result := CallNextHookEx(buf^.hMSNHook, nCode, wp, lp);
end;
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat