![]() |
Beim ersten Aufruf von GetWindowText -> Fehler 126
Servus,
habe eine funktion geschrieben wo ich GetWindowText verwende. Wenn ich meine Funktion das erste mal aufrufe kommt, nach GetWindowText, von GetLastError der Code 126. Wenn ich meine Funktion nochmal aufrufe kommt von GetLastError 0. Die DLL PSApi.dll ist bei beiden System gleich, einmal wo es funktioniert und einnmal wo es nicht funktioniert. Der Fehler kommt erst immer wenn ich das Programm zum ersten mal aufrufe. Danach kann ich ohne Probleme die Funktion mehrmals aufrufen. Wenn ihr noch den Code meiner Funktion braucht werde ich diesen noch hier angeben, habe an meinem Arbeitsrechner kein Inet, daher muss ich die Sourcen erst auf einen Stick kopieren :( .... Mfg |
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
Hm, komisch. Fehler 126 bedeutet "Das angegebene Modul wurde nicht gefunden." Das ist in so fern komisch, weil die in user32.dll implementiert ist und diese DLL wird standardmäßig immer geladen. Man braucht sie also nicht explizit zu laden. Hast du das Problem auch auf anderen Rechnern? Wenn nicht, das wäre gut, denn dann stimmt was mit deinem System nicht.
|
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
Hallo,
Die Frage ist, ob der Error-Code überhaupt von GetWindowText kommt? Könnte es vllt. sein, dass das noch ein Fehler von irgendeinem anderen Vorgang ist? im Zweifelsfall vllt. mal SetLastError(0) vor den Aufruf von GetWindowText schreiben? Obwohl der Code ja eigentlich überschrieben werden müsste oder so... Naja ein Versuch ist es sicher wert. Ansonsten wäre der Code wahrscheinlich schon hilfreich. |
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
Zitat:
Zitat:
Wenn es nichts gebracht hat werde ich die Funktion mal auf ein Stick kopieren... Mfg |
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
Funktionieren wirds durch das SetLastError nicht :mrgreen:
Aber vielleicht bekommst du einen anderen Fehlercode, der vielleicht sinnvoller ist. Ansonsten wäre der Code echt nicht schlecht. Ich bin mir fast sicher, dass man den Fehler dort irgendwo finden wird :P |
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
Doch es funktioniert jetzt :P
Dann kam der Fehler von wo anders und da wurde nur getlasterror abgefragt. Jetzt muss ich nur schauen woher der fehler gekommen ist.... gruß |
AW: Beim ersten Aufruf von GetWindowText -> Fehler 126
hallo,
ich verwende auch die Funktion GetWindowText, und zwar mit folgender Fehlerabfrage...
Delphi-Quellcode:
dabei hat es nie einen Fehler gegeben :){-} function TPTest_SRDD._windowFound(myCaption: string): boolean; type PFindWindowStruct = ^TFindWindowStruct; TFindWindowStruct = record fwsCaption, fwsClassName : string; fwsWindowHandle : THandle; end; {record} {-} function _EnumWindowsProc(hWindow: hWnd; lParam: DWORD): boolean; stdcall var lpBuffer : PChar; boolWindowCaptionFound, boolClassNameFound : boolean; begin GetMem(lpBuffer, 255); FillChar(lpBuffer^, sizeof(lpBuffer^), #32); result:=True; boolWindowCaptionFound:=False; boolClassNameFound:=False; try if (GetWindowText(hWindow, lpBuffer, 255) > 0) then if (Pos(PFindWindowStruct(lParam).fwsCaption, StrPas(lpBuffer)) = 1) then boolWindowCaptionFound:=True; {-} if (PFindWindowStruct(lParam).fwsClassName = '') then begin boolClassNameFound:=True; end else begin if (GetClassName(hWindow, lpBuffer, 255) > 0) then if (Pos(PFindWindowStruct(lParam).fwsClassName, StrPas(lpBuffer)) > 0) then boolClassNameFound:=True; end; {-} if (boolWindowCaptionFound and boolClassNameFound) then begin PFindWindowStruct(lParam).fwsWindowHandle:=hWindow; result:=False; end; finally FreeMem(lpBuffer, sizeof(lpBuffer^)); end; {finally} end; {-} function _FindAWindow(myWinCaption, myWinClassName: string): THandle; var fws: TFindWindowStruct; begin result:=0; with fws do begin fwsCaption:=myWinCaption; fwsClassName:=myWinClassName; fwsWindowHandle:=0; if not(BOOL(EnumWindows(@_EnumWindowsProc, DWORD(@fws)))) then begin result:=fwsWindowHandle; end; end; {with} end; {-} {-} begin // prvWindowHandle:=0; prvWindowHandle:=_FindAWindow(myCaption, ''); //'Formatieren', ''); {-} result:=(prvWindowHandle > 0); {-} {-} end; OS: WinVista 32bit DV: Delphi2005 MfG, terence |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:05 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