| |
|
|
| Da ich bis Ende dieses Jahres hier leider meine Koffer Packen muß, möchte ich die Zeit gerne nutzen, nochmals eine kleine Diskussion anzuregen. Es geht um folgenden Quelltext: KompilierenMarkierenSeparierenDEf @ExitWindowsEx(2) !USER32,ExitWindowsEx
DEF @FormatMessage(7) !KERNEL32,FormatMessageA
DEf @GetLastError(0) !KERNEL32,GetLastError
DEf @SetLastError(1) !KERNEL32,SetLastError
Declare GETERROR_Buffer#,Fehler&
PROC LastError
Parameters Rückgabe&
Declare GETERROR_Buffer$
DIM GETERROR_Buffer#,32000
@FormatMessage($1000,0,Rückgabe&,0,GETERROR_Buffer#,32000,0)
Let GETERROR_Buffer$=@STRING$(GETERROR_Buffer#,0)
Dispose GETERROR_Buffer#
Return GETERROR_Buffer$
Endproc
CLS
@SetLastError(0)
LET FEHLER&=@ExitWindowsEx($2,0)
LastError @GetLastError()
@messagebox(@$(0),Rückmeldung ExitWindowsEx: +@STR$(Fehler&),64)
Wer mit Windows95/98/ME wird festellen, daß der Rechner problemlos herunterfährt. Anders aber unter NT/2000/XP => hier steht die NT-Sicherheitstechnologie der Sache im Weg. Ganz genauso sieht es mit der API SetSystemTime aus. Wenn man aus dem Quelltext aber eine EXE macht und diese über PrivAktivate startet, sieht das schon etwas anders aus (keine Angst, es kommt nicht der Buhman raus und es werden auch keine Systemeinstellungen gesetzt ). Wie man sieht, sind das grundlegende Funktionen - nichts exotisches - für mich ist Security deshalb keinesfalls exotisch, sondern die Grundlage aller Programmierung unter NT. Das zum Anfang, muß jetzt Geburtstag feiern... |
|
|
| |
|
|