Einzelnen Beitrag anzeigen

FarAndBeyond
(Gast)

n/a Beiträge
 
#36

AW: Zwei Windows Explorer starten und nebeneinander bildschirmfüllend positionieren

  Alt 8. Jul 2016, 04:58
Nur so als kleine Info...
Wenn man das in Lazarus mit {$Mode ObjFpc}{$H+} compilieren möchte, dann muß man die Fenstersuche als PtrInt deklarieren:
Delphi-Quellcode:
Function SearchCallback(Wnd: HWND; lParam: PtrInt): BOOL; StdCall;
  Var
   ClassName: Array[0..255] Of Char;
 Begin
  Try
   If GetClassName(Wnd, ClassName, 255) > 0
   Then
    Begin
     If Pos('CabinetWClass', String(ClassName)) <> 0
     Then slFoundWnd.Add(IntToStr(Wnd));
    End;
   Result:= True;
  Except
   On E: Exception
   Do ErrorLog('SearchCallback'+#13#10+E.ClassName+#13#10+E.Message);
  End;
 End;


Procedure SearchWnd;
 Begin
  Try
   EnumWindows(@SearchCallback, 0);
  Except
   On E: Exception
   Do ErrorLog('SearchWnd'+#13#10+E.ClassName+#13#10+E.Message);
  End;
 End;
Dann funzt 32bit und 64bit ... Ohne die Umstellung funzt nur {$Mode Delphi}... aber nur als 32bit-EXE...

EDIT: Uses Interfaces; // oder man compiliert nur mit FPC und läßt den Overkill weg...

Geändert von FarAndBeyond ( 8. Jul 2016 um 05:08 Uhr)
  Mit Zitat antworten Zitat