Forum: Programmieren allgemein
Delphi
by KodeZwerg,
13. Okt 2022
Freut mich wenn's einen Sinn und Zweck erfüllt :thumb:, ja bin da wohl etwas tiefer vorgedrungen als es eigentlich nötig war :twisted:
Forum: Programmieren allgemein
Delphi
by KodeZwerg,
13. Okt 2022
Ich habe nicht behauptet es sei im jetzt-Zustand kompatibel zu irgendetwas anderem als Windows.
Ich habe lediglich die reinen Windows Methoden bereits aussortiert damit ein fähiger Linux oder MaxOS Kundiger gleich weiß wo es klemmt.
Forum: Programmieren allgemein
Delphi
by KodeZwerg,
13. Okt 2022
Nun gibt es auch noch den Prozessnamen in der Ausgabe.
{$IFDEF MSWINDOWS}function GetProcessImageFileName(hProcess: THandle; lpImageFileName: LPTSTR; nSize: DWORD): DWORD; stdcall; external 'PSAPI.dll' name 'GetProcessImageFileNameW';{$ENDIF}
procedure ScreenShot(var ADestBitmap: TBitmap; var AWindowTitle, AProcessName: string; const AActiveWindow: Boolean = True; const ARemoveBorder: Boolean =...
Forum: Programmieren allgemein
Delphi
by KodeZwerg,
13. Okt 2022
Ich habe es nochmal erweitert, nun hast du auch noch einen string mit dem Caption-Namen des Fensters.
(und vorbereitet ge-cross-platformed zu werden)
procedure ScreenShot(var ADestBitmap: TBitmap; var AWindowTitle: string; const AActiveWindow: Boolean = True; const ARemoveBorder: Boolean = True);
function GetWindowTitle({$IFDEF MSWINDOWS}const AHWND: HWND{$ENDIF}): string;
var
...
Forum: Programmieren allgemein
Delphi
by KodeZwerg,
12. Okt 2022
Nun hat das Bild die korrekte Größe, ohne den "Freiraum"
procedure ScreenShot(const AActiveWindow: Boolean; var ADestBitmap: TBitmap);
var
w, h: Integer;
hWin: HWND;
r: TRect;
oDC: HDC;
oCanvas: TCanvas;
oBitmap: TBitmap;
BorderHeight,
Forum: Programmieren allgemein
Delphi
by KodeZwerg,
12. Okt 2022
So funktionierts bei mir immer, es muss noch ein wenig Hand angelegt werden den Border richtig zu berechnen.
procedure ScreenShot(const ActiveWindow: Boolean; var DestBitmap: TBitmap);
var
w, h: Integer;
hWin: Cardinal;
r: TRect;
oDC: HDC;
oCanvas: TCanvas;
oBitmap: TBitmap;
begin