| |
|
|
| Bueno Abend...
¿Es posible en otro Prozessen el letzten aufgetretenen API-Fehler (GetLastError) auszulesen?
Hab grad una Anruf bekommen => muß igual trabajo. Alles weitere deshalb morgen .
Saludo
Andreas |
|
|
| |
|
|
|
| So, entonces veces los... Lo va en folgenden Ver código fuente: KompilierenMarcaSeparaciónDef @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
Nach el Starten des Quelltextes se zuerst el Button Fehler conjunto angeklickt. Jetzt starten wir veces [...] y marca el Prozess PROFAN.EXE. Im Menü se entonces Programa/Optionen y Zahl en Bytefolge ausgewählt y el entonces erscheinenden Diálogo $ABC1234 eingegeben. Nun Klicken wir rechts en el Treeview en PROFAN.EXE, wählen Speicher durchsuchen de y clic danach (sin en el Diálogo irgendetwas a ändern) en el Button Speicher durchsuchen. TNT sucht nun en el Speicher de PROFAN.EXE después de el Zahl $ABC1234, el el Valor de GetLastError entspricht. Ziemlich al Ende des para el User zugänglichen virtuellen Prozessspeichers se [...] fündig: Windows2000 (SP2 y SP4) => Adresse 2147344436
Cambio wir nun por anklicken des Buttons Fehler produzieren valor de GetLastError, ändert se auch el Valor, el en el Speicher a dieser Punto es.
Diese Adresse bezieht se aber scheinbar no sólo en esta una Prozess, sonder a dieser Adresse scheint en cada Prozess el Valor de GetLastError a posición. Was mich ahora todavía interessiert: Como lautet el gefundene Adresse bajo XP? Kann me como alguien helfen?? |
|
|
| |
|
|
|
| Bajo no NT-basierenden Systemen sieht el Sache dagegen anders de. Como el virtuelle Speicher, en el el Valor de GetLastError gespeichert se, a dieser Punto komplett anders verwaltet se como bajo NT, ha hay cada Prozess una otro Errorcodeadresse. |
|
|
| |
|
|