| |
|
|
| Guten soir...
Ist es possible chez anderen Prozessen den letzten aufgetretenen API-faute (GetLastError) auszulesen?
Hab grad une Anruf bekommen => doit juste travailler. Alles weitere c'est pourquoi demain .
Salut
Andreas |
|
|
| |
|
|
|
| So, ensuite la fois à l'attaque... und dir um folgenden Voir le texte source: KompilierenMarqueSéparationDef @GetLastError(0) !"KERNEL32","GetLastError"
Def @SetLastError(1) !"KERNEL32","SetLastError"
DEF @GetDlgCtrlID(1) !"USER32","GetDlgCtrlID"
DEF @ButtonClicked(1) @GetDlgCtrlID(@&(1))=-%MENUITEM
Def @FreeLibrary(1) !"kernel32","FreeLibrary"
Declare Error&,Zurück&,Prod&
WindowStyle 31
WindowTitle "SetLastError"
Window 0,0-640,440
LET Zurück&=@CreateButton(%HWND,"Fehler setzen",20,20,300,30)
LET Prod&=@CreateButton(%HWND,"Fehler produzieren",20,80,300,30)
While 0=0
Waitinput
IF @ButtonClicked(Zurück&)
CLS
Locate 15,0
@SetLastError($0ABC1234)
Print "$"+@HEX$(@GetLastError())," "+@str$(@GetLastError())
ElseIF @ButtonClicked(Prod&)
CLS
Locate 15,0
@FreeLibrary(0)
Print @GetLastError()
endif
Wend
Pour dem Starten des Quelltextes wird d'abord qui Button faute mettons angeklickt. maintenant starten wir la fois [...] et markieren den Prozess PROFANE.EXE. Im menu wird ensuite Programme/Optionen et numéro dans Bytefolge ausgewählt et dans den ensuite erscheinenden Dialog $ABC1234 eingegeben. eh bien Klicken wir à droite ins Treeview sur PROFANE.EXE, choisir grenier fouiller aus et klicken après (sans im Dialog irgendetwas trop changement) sur den Button grenier fouiller. TNT cherchez eh bien im grenier de PROFANE.EXE pour qui numéro $ABC1234, qui dem Wert de GetLastError entspricht. assez am Ende des pour den User zugänglichen virtuellen Prozessspeichers wird [...] fündig: Windows2000 (SP2 et SP4) => Adresse 2147344436
Changement wir eh bien par Vous pouvez des Buttons faute produzieren la valeur de GetLastError, ändert sich aussi qui Wert, qui im grenier à cette Stelle steht.
cet Adresse bezieht sich mais scheinbar pas seulement sur cette une Prozess, sonder à cette Adresse scheint dans chaque Prozess qui Wert de GetLastError trop stehen. quoi mich maintenant encore intéressé: comment lautet qui gefundene Adresse sous XP? peux mir là quelqu'un aider?? |
|
|
| |
|
|
|
| sous pas NT-basierenden Systemen sieht qui l'affaire dagegen anders aus. là qui virtuelle grenier, dans dem qui Wert de GetLastError gespeichert wird, à cette Stelle komplett anders verwaltet wird comme sous NT, hat là chacun Prozess une autre Errorcodeadresse. |
|
|
| |
|
|