![]() |
UpdateLayeredWindow
Ich nutze in einer Form
Delphi-Quellcode:
function UpdateLayeredWindow(hwnd: HWND; hdcDst: HDC; pptDst: PPoint; psize: PSize; hdcSrc: HDC; pptSrc: PPoint; crKey: TColor; pblend: PBlendFunction; dwFlags: DWORD): BOOL; stdcall; external 'user32.dll';
Wie kann ich nun bzw was muss ich tun damit wenn das Programm nun auf 98 ausgeführt wird diese Sache nicht beachtet wird und somit nicht zum Fehelr führt! |
Re: UpdateLayeredWindow
Zitat:
gruss Emil |
Re: UpdateLayeredWindow
Das Hauptproblem liegt aber hier: dynamisch einbinden und nicht statisch. Du bindest die Funktion nun statisch ein und somit kann die EXE von EXE Loader gar nicht erst gestartet werden unter 98, da er die imports nicht auflösen kann. Also schau dich mal bei LoadLibrary() etc um.
@EWeiss: kann er noch soviel reinschreiben, das würde gar nicht ausgeführt werden... |
Re: UpdateLayeredWindow
Getestet habe ich es nicht, aber so ähnlich müsste es gehen:
Delphi-Quellcode:
function UpdateLayeredWindow(wnd: HWND; hdcDst: HDC; pptDst: PPoint; psiz: PSize; hdcSrc: HDC; pptSrc: PPoint; crKey: TColor; pblend: PBlendFunction; dwFlags: DWORD): BOOL;
var hUser32: THandle; UpdateLayeredWnd: function(wnd: HWND; hdcDst: HDC; pptDst: PPoint; psiz: PSize; hdcSrc: HDC; pptSrc: PPoint; crKey: TColor; pblend: PBlendFunction; dwFlags: DWORD): BOOL; stdcall; begin Result := false; hUser32 := LoadLibrary('user32.dll'); if hUser32 <> 0 then try UpdateLayeredWnd:= GetProcAddress(hUser32, 'UpdateLayeredWindow'); if Assigned(UpdateLayeredWnd) then result:= UpdateLayeredWnd(wnd, hdcDst, pptDst, psiz, hdcSrc, pptSrc, crKey, pblend, dwFlags); finally FreeLibrary(hUser32); end; end; |
Re: UpdateLayeredWindow
Zitat:
So wie ich weis steht diese API unter W98 nicht zur verfügung. Um also einen Fehler zu vermeiden sollte er das Betriebssystem gegenprüfen und diese halt ausschalten wenn das system W98 ist. oder hab ich das falsch verstanden? gruss Emil |
Re: UpdateLayeredWindow
Und wo soll er den Code zum ermitteln der Windows Version hinschreiben wo doch seine EXE gar nicht erst von Windows geladen (somit auch nicht gestartet) wird?
|
Re: UpdateLayeredWindow
Zitat:
gruss Emil |
Re: UpdateLayeredWindow
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:56 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz