ich möchte unter Windows den Titel eines Fensters verarbeiten. Dazu verwende ich GetWindowText(). Alles kein Problem, solange die Anwendung in 32Bit kompliert wird. Tue ich dasselbe in einer 64Bit Anwendung, dann bekomme ich immer einen SIGSEGV. GetLastError() teilt mir mit, dass der Handle ungültig ist (Code 1400).
Ich habe eine ganze Weile gebraucht, bis ich das Problem auf die Bitbreite zurückführen konnte... Oder bin ich da auf dem Holzweg?
Nun ist die Frage, wie kann ich den Handle so anpassen, dass er in die Windows API passt?
Das Fensterhandle manuell von HWND auf LongInt oder Int32 umzustellen hilft leider nicht...
Danke für eure Hilfe,
liebe Grüße.
Weitere Daten:
OS: Windows 7 - AMD64
Lazarus 1.6, FPC 3.0.0
Beispielcode:
Code: Alles auswählen
uses
... windows ...
procedure TForm1.Button1Click(Sender: TObject);
var
wHandle: HWND;
wCaption: LPWSTR;
begin
wCaption:=AllocCaption;
wHandle:=GetForegroundWindow;
GetWindowTextW(wHandle, wCaption, 250);
end;