Einzelnen Beitrag anzeigen

Aljoscha

Registriert seit: 30. Dez 2004
97 Beiträge
 
#6

Re: Browser versteckt öffnen und wieder schließen

  Alt 18. Jun 2005, 12:36
Das problem ist ich bin jetzt so schon fertig mit der Browsersteuerung, nur mir ist aufgefallen, dass sich die Dinger dann im Taskmanager häufen.
Hat keiner eine Idee, wie ich genau mein Fenster wieder schließe?
Wäre mir am liebsten und würde mich auch unabhängig von der Notwendigkeit mal interresieren wie das mit den Handles ist.
Ich könnte die Datei die aufgerufen wird doch auch z.B.
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA nennen und dann das Handle kriegen indem ich eben das Fenster mit dem Titelteil:
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA
suche, oder?
Weiß jemand wie das genau geht, das nur dieser Teil im Fensternamen stehen muss, weil die genaue Bezeichnung hinge ja vom Browser ab, z.B.
ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA - Mozilla Firefox
oder
Microsoft Internet Explorer - ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA

Hätte da jemand einen Codeschipsel für mich um das Handle zu kriegen?

//Edit:
Also ich weiß das ich mit diesem Code das Fensterhandle anhand eines Fensternamens bekomme:

Prozedur:

Delphi-Quellcode:
uses TLHelp32;
procedure GetExeNameByWindowTitle(fenstertitel: string; var ergebnis: TStringList);
var PID: DWord;
  aSnapShotHandle: THandle;
  ContinueLoop: Boolean;
  aProcessEntry32: TProcessEntry32;
begin
  ergebnis.clear;
  GetWindowThreadProcessID(FindWindow(nil, PChar(fenstertitel)), @PID);
  aSnapShotHandle := CreateToolHelp32SnapShot(TH32CS_SNAPPROCESS, 0);
  try
    aProcessEntry32.dwSize := SizeOf(aProcessEntry32);
    ContinueLoop := Process32First(aSnapShotHandle, aProcessEntry32);
    while Integer(ContinueLoop) <> 0 do begin
      if aProcessEntry32.th32ProcessID = PID then
        ergebnis.Add(aProcessEntry32.szExeFile);
      ContinueLoop := Process32Next(aSnapShotHandle, aProcessEntry32);
    end;
  finally
    CloseHandle(aSnapShotHandle);
  end;
Aufruf:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var sl: TStringList;
begin
  sl:=TStringList.Create;
  try
    GetExeNameByWindowTitle('HTML Editor', sl);
    ListBox1.Items.AddStrings(sl);
  finally
    sl.free;
  end;
end;
Aber ich kenne ja nur einen Teil des Fensternamens, in Beispielfall ASJKDASDASDASIWEHJRJKDAHDKLADKLDDASDA , wie kann ich nun trotzdem das Fensterhandle kriegen?
  Mit Zitat antworten Zitat