AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mousehook friert alles ein

Offene Frage von "Coder1990"
Ein Thema von Coder1990 · begonnen am 31. Jul 2008 · letzter Beitrag vom 3. Aug 2008
 
Benutzerbild von Coder1990
Coder1990

Registriert seit: 2. Nov 2007
116 Beiträge
 
Delphi 2005 Personal
 
#1

Mousehook friert alles ein

  Alt 31. Jul 2008, 11:36
Seas,

ich habe in meine Anwendung einen fertigen Mousehook (JournalRecord) installiert und dessen Hauptfunktionen in einer "UHooks" Unit ausgelagert, wenn ich nun den MouseHook starte friert mein gesamter Bildschirm ein. Diesen Zustand kann ich nur mit Strg + Alt + Entf rückgängig machen. Kann mir einer sagen inwiefern ich mein Script modifizieren muss, um den MouseHook erfolgreich zu starten?
P.S. durch suche mit Haltepunkten bin ich darauf gekommen dass ab dieser Stelle der "Freeze" eintritt:
FMouseHook := SetWindowsHookEx(WH_JOURNALRECORD, @TFMain.JournalProc, hInstance, 0); MouseHook Unit:
Delphi-Quellcode:
unit UHooks;

interface

uses windows, messages, sysutils, dialogs;

var

    {Mouse Hook}
    FMouseHook: THandle;
    FMouseHookActive:Boolean;
    {Mouse Hook Ende}

    {Mouse Hook}
    procedure MouseUsed(var Msg: tagMSG;var Handled: Boolean);
    procedure StartMouseHook;
    procedure StopMouseHook;
    {Mouse Hook Ende}

implementation

uses UMain;

procedure StartMouseHook;
begin
if not FMouseHookActive then
  FMouseHook := SetWindowsHookEx(WH_JOURNALRECORD, @TFMain.JournalProc, hInstance, 0);
if FMouseHook>0 then
FMouseHookActive:=true else FMouseHookActive:=falsE;
end;

procedure StopMouseHook;
begin
if FMouseHookActive then
  begin
    UnhookWindowsHookEx(FMouseHook);
    FMouseHookActive:=false;
    FMouseHook:=0;
  end;
end;


procedure MouseUsed(var Msg: tagMSG; var Handled: Boolean);
begin
  Handled := False;
  if (Msg.message = WM_CANCELJOURNAL) then
    FMouseHook := SetWindowsHookEx(WH_JOURNALRECORD, @TFMain.JournalProc, hInstance, 0);
end;


end.
Main Unit:

Delphi-Quellcode:
unit UMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, StdCtrls, CheckLst, UComTypes, UHooks;

type

  TFMain = class(TForm)
    BT_StaSto: TButton;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure BT_StaStoClick(Sender: TObject);
  private
  
  public

    Recording:boolean;

  function JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg): Integer; stdcall;
  end;

var
  FMain: TFMain;

implementation

{$R *.dfm}


function TFMain.JournalProc(Code, wParam: Integer; var EventStrut: TEventMsg): Integer;
begin
  Result := CallNextHookEx(FMouseHook, Code, wParam, Longint(@EventStrut));
  if Code < 0 then Exit;
  if Code = HC_SYSMODALON then Exit;
  if Code = HC_ACTION then
  begin
  {Mouse Action}



  end;
end;


procedure TFMain.BT_StaStoClick(Sender: TObject);
begin
Recording:=not Recording;
if Recording then
  begin // Record Active
    BT_StaSto.caption:='Stop Recording';
    StartMouseHook;
  end
else
  begin // Record InActive
    BT_StaSto.caption:='Start Recording';
    StopMouseHook;
  end;
end;

procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
StopMouseHook;
end;

end.
MfG

//edit:
achja kann mir jemand noch sagen in welcher procedure ich mit den MouseHook informationen arbeiten muss
Auswahl: "MouseUsed" (aus UHooks) oder "JournalProc" (aus UMain)
Ich hab mir gedacht mit "JournalProc" müsste es gehen (bin ja eh nie zum testen gekommen), also von daher
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:34 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz