![]() |
Dialog aus Fremder DLL aufrufen
hi folks ;)
ich wollte aus der msgina.dll einen Dialog darstellen, der dort in den Resources vorhanden ist nur leider funktioniert das vorne und hinten nicht :wall:
Delphi-Quellcode:
das programm zeigt weder den Dialog, noch kommt eine fehlermeldung :duck:
program ginadlg;
uses Windows, CommCtrl, CommDlg, Messages; const DLG=2210; DLL='msgina.dll'; var hMSGINA:Cardinal; hApp: Cardinal; msg: TMsg; function dlgfunc(hwnd: hwnd; umsg: dword; wparam: wparam; lparam: lparam): bool; stdcall; begin result:=true; case umsg of WM_INITDIALOG: begin hApp := hwnd; end; WM_CLOSE: begin EndDialog(hWnd, 0); DestroyWindow(hwnd); PostQuitMessage(0); FreeLibrary(hMSGINA); end; else result:=false; end; end; begin InitCommonControls; hMSGINA:=LoadLibraryEx(DLL, 0, LOAD_LIBRARY_AS_DATAFILE); If hMSGINA<>0 Then begin if CreateDialog(hMSGINA, MAKEINTRESOURCE(DLG), 0, @DlgFunc)=0 Then MessageBox(0,'X','ERROR',0) else begin while true do begin if not GetMessage(msg, 0, 0, 0) then break; if IsDialogMessage(hApp, msg) = FALSE then begin TranslateMessage(msg); DispatchMessage(msg); end; end; end; end; end. |
Re: Dialog aus Fremder DLL aufrufen ://
*PUUUUUUUUUUUUUUUUUUUUUUUSH*
ich komm da einfach nicht drüber, dass das nicht funktioniert :/ |
Re: Dialog aus Fremder DLL aufrufen
Was sagt
![]() |
Re: Dialog aus Fremder DLL aufrufen
Zitat:
Delphi-Quellcode:
Netter Spruch der da steht. :)
program Project2;
uses Windows, Messages; function DialogFunc(hWnd: HWND; uMsg: UINT; wParam: WPARAM; lParam: LPARAM): BOOL; stdcall; begin Result := True; case uMsg of WM_CLOSE: begin EndDialog(hWnd, wParam); DestroyWindow(hWnd); end; WM_DESTROY: PostQuitMessage(0); else Result := False; end; end; var Msg: TMsg; DlgWnd: HWND; LibMod: HMODULE; begin LibMod := LoadLibrary('MSGINA.DLL'); if LibMod <> 0 then begin DlgWnd := CreateDialog(LibMod, MakeIntResource(2210), 0, @DialogFunc); if IsWindow(DlgWnd) then begin ShowWindow(DlgWnd, SW_SHOWNORMAL); UpdateWindow(DlgWnd); while GetMessage(Msg, 0, 0, 0) do if not IsDialogMessage(DlgWnd, Msg) then begin TranslateMessage(Msg); DispatchMessage(Msg); end; end; FreeLibrary(LibMod); end; end. Edit: Hab das jetzt nur unter Windowx XP SP2 getestet. |
Re: Dialog aus Fremder DLL aufrufen
Was steht da? Unter 2000 liefert CreateDialog 0 zurück? Ein Screenshot wäre ganz nett.
|
Re: Dialog aus Fremder DLL aufrufen
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
|
Re: Dialog aus Fremder DLL aufrufen
:shock: Was ist denn das für ein Mist? :gruebel:
|
Re: Dialog aus Fremder DLL aufrufen
Ja, wie geil - Ist das nen Easteregg von MS? :mrgreen:
Den Dialog kenne ich sonst nur von Windows 2003 Server, wo man den Grund für den Herunterfahren des Rechners angeben kann :) mfG mirage228 |
Re: Dialog aus Fremder DLL aufrufen
Wenn es den beim 2003 Server gibt, warum sollte es dann ein Easter Egg sein? Die haben einfach die gleiche DLL genommen, nur das Feature bei XP nicht implementiert oder offen zu gänglich gemacht.
|
Re: Dialog aus Fremder DLL aufrufen
Zitat:
mfG mirage228 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:25 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