Thema: Delphi Probleme mit WinAmp Hook

Einzelnen Beitrag anzeigen

Benutzerbild von LoCrux
LoCrux

Registriert seit: 5. Mär 2007
Ort: Gwang-Yang-City
48 Beiträge
 
Delphi 2009 Enterprise
 
#1

Probleme mit WinAmp Hook

  Alt 15. Mai 2008, 07:42
Hi @All,

vielleicht kann mir einer helfen. Ich will einen Message-Hook auf WinAmp.
Funzt aber nicht. Bekomme als Global_HookHandle immer nur 0, Zero, Null, NADA ...
Vielleicht weiss einer Rat.

Delphi-Quellcode:
.
.
var
  Global_HookHandle : HWND = 0;
  Global_WinAmpHandle : HWND = 0;
  Global_HookInstalled : Boolean = false;

function AmpHookProc(nCode: Integer; wParam: WPARAM; lParam: LPARAM): LRESULT; stdcall;
begin
  if (wParam = IPC_SETVOLUME)
  then asm
    NOP; // Just for debugging purpose
  end;
  Result := CallNextHookEx(Global_HookHandle, nCode, wParam, lParam);
end;

function GlobalUnInstallHook:Boolean; stdcall;
begin
  //Hook aus der Hookchain entfernen
  Global_HookInstalled := UnhookWindowsHookEx(Global_HookHandle);
  if not(Global_HookInstalled)
  then begin
    Global_HookHandle := 0;
    Global_WinAmpHandle := 0;
  end;
  Result := Global_HookInstalled;
end;

function GlobalInstallHook:Boolean; stdcall;
var
  TID : DWORD; // Thread ID
  PID : LPDWORD; // Process ID -- Just for Testing with Sysinternals ProcessExplorer
begin
  Result := no;
  if (Global_HookHandle=0)
  then begin
    {$WARNINGS OFF}
    new(PID);
    TID := GetWindowThreadProcessId(Global_WinAmpHandle,PID);
    Global_HookHandle := SetWindowsHookEx(WH_CALLWNDPROCRET,@AmpHookProc, 0, TID);
    Global_HookInstalled := (Global_HookHandle<>0);
    Result := Global_HookInstalled;
    dispose(PID);
    {$WARNINGS ON}
  end;
end;

.
.

procedure TForm2.FindWinamp;
begin
  Global_WinAmpHandle := FindWindow('Winamp v1.x', nil);
  WinampRunning := (Global_WinAmpHandle<>0);
end;
Bevor die Frage kommt warum... Ich will ein Frontend fuer WinAmp selber schreiben.. Warum CarPC Bedienoberflaeche mit Touchscreen..
Warum.. Alles was es gibt gefaellt mir nicht oder ist zu teuer.

(P.S. vielleicht hat ja jemand Lust mit einzusteigen..)

EIDTS: Falsche Fehler
Angehängte Dateien
Dateityp: 7z winamp_893.7z (182,0 KB, 4x aufgerufen)
“C++ is an insult to the human brain.” [Niklaus Wirth]

2B OR NOT 2B (.. THAT IS FF)
  Mit Zitat antworten Zitat