Thema: Delphi Statusbar auslesen

Einzelnen Beitrag anzeigen

Benutzerbild von ghost007
ghost007

Registriert seit: 31. Okt 2005
Ort: München
1.024 Beiträge
 
Delphi 7 Personal
 
#5

Re: Statusbar auslesen

  Alt 1. Mai 2008, 22:21
Hi,
ich habs jetzt mal anders versucht ... doch irgendwie hab ich glaub ich noch irgendwo den wurm drin.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
 const
  BufferSize = 1024;
 var
  ProcessID: DWORD;
  Proc,BytesR, BytesW: Cardinal;
  MemOwn, MemFor : Pointer;
  length:integer;
  sb:THandle;
begin
 //StatusbarHandle ermitteln
 sb := FindWindow('wxWindowClassNR','VLC media player');
 sb := FindWindowEx(sb, 0, 'msctls_statusbar32', nil);
 //Done
 //ProcessID + ProcessHandle ermitteln
 GetWindowThreadProcessId(sb, @ProcessId);
 Proc := OpenProcess(PROCESS_ALL_ACCESS, False, ProcessId);
 //Done
 //Speicher Reservieren
 MemOwn := VirtualAlloc(nil, BufferSize, MEM_COMMIT, PAGE_READWRITE);
 MemFor := VirtualAllocEx(Proc, nil, BufferSize, MEM_COMMIT, PAGE_READWRITE);
 //Done
 //In Fremdanwendung schreiben und kopieren
 WriteProcessMemory(Proc, MemFor, MemOwn, BufferSize, BytesW);
 SendMessage(sb,SB_GETTEXT, 0, LPARAM(MemFor));
 length:= SendMessage(sb,SB_GETTEXTLENGTH,0,0);
 ReadProcessMemory(Proc, MemFor, MemOwn, BufferSize, BytesR);
 //Done
 //Daten auslesen
 Label4.Caption := PChar(Cardinal(MemOwn) + length + 1);
 //Done
 //Reservierten Speicher wieder freigeben
 VirtualFreeEx(Proc, MemFor, 0, MEM_RELEASE);
 VirtualFree(MemOwn, 0, MEM_RELEASE);
 CloseHandle(Proc);
 //Done
end;
Wo liegt mein denkfehler?

MfG - Ghost007
Christian
Es gibt möglich Dinge und unmöglich Dinge.
Für unmögliche braucht man lediglich etwas länger.
  Mit Zitat antworten Zitat