So, Chakotay: 23,5k ist das Ergebnis. Das hier ist von den Units übrig:
Delphi-Quellcode:
uses
Windows, Messages, JwaLm, CommCtrl;
Dadurch musst du natürlich auf typische SysUtils-Funktionen verzichten, etwa
Code:
[b]function[/b] IntToStr([b]const[/b] i: integer): [b]string[/b];
[b]begin[/b]
Str(i,Result);
[b]end[/b];
[b]function[/b] StrLen([b]const[/b] Str: PChar): Cardinal; [b]assembler[/b];
[b]
asm[/b]
MOV EDX,EDI
MOV EDI,EAX
MOV ECX,0FFFFFFFFH
XOR AL,AL
REPNE SCASB
MOV EAX,0FFFFFFFEH
SUB EAX,ECX
MOV EDI,EDX
[b]end[/b];
Für die Zeitanzeige des Logins habe ich mich im Code von Luckie bedient. Frag ihn mal, ob er dir den entsprechenden Part zukommen lässt. (@Luckie: "Int32x32To64" und "SecsToDateTime".) Dafür fiel die "UnixToDateTime" komplett raus, und die entsprechende Anweisung sähe mit Luckies Code dann so aus:
Delphi-Quellcode:
if aCurUserBuffer.usri11_last_logon = 0 then
TempS := 'Letzer LogIn: (nie)'
else
TempS := SecsToDateTime(aCurUserBuffer.usri11_last_logon);
Dann -anfangs!- konnte ich dein Programm nicht mal kompilieren. Der Fehler lag hier:
Code:
[b]if[/b] NetUserEnum([b]nil[/b], 11, FILTER_NORMAL_ACCOUNT, [color=#ff0000]@aUserBuffer[/color],
MAX_PREFERRED_LENGTH, dwEntriesRead, dwEntriesRead, ...
Nachdem ich das rot markierte durch "pointer(aUserBuffer)" ersetzt habe (an anderer Stelle wird das noch mal bemängelt!), ging´s dann. Vielleicht solltest du deinen diesbezüglichen FAQ-Eintrag ausbessern?!
Tja, und zu guter Letzt ein kleiner Bugfix, weil der untere Teil des Treeview nicht zu sehen ist, wenn man ein paar Knoten aufklappt. Also, dies hier steckt im "WM_CREATE":
Delphi-Quellcode:
{ ... }
GetWindowRect(hwndTitleLab,r1);
GetClientRect(hWnd,r2);
hWndTV := CreateWindowEx(WS_EX_CLIENTEDGE, 'SysTreeView32', 'Tree View',
WS_VISIBLE or WS_CHILD or TVS_HASBUTTONS or TVS_HASLINES or TVS_LINESATROOT,
0, 50, { --> } r2.Right - r2.Left,
{ --> } (r2.Bottom - r2.Top) - (r1.Bottom - r1.Top),
hwnd, IDC_LISTVIEW, hInstance,
nil);
{ ... }
"r1" und "r2" sind zwei TRect-Variablen. Die holen die Größe des Fensters und des Banners und setzen abhängig davon die korrekte TV-Größe, so dass der horizontale Scrollbalken dann auch komplett zu sehen ist.
So, wenn ich jetzt nichts vergessen habe, dann solltest du dein Programm auch "klein kriegen".

Und dann kann man´s als
NonVCL durchgehen lassen.
Gruß.
PS: Als humorvoller Mensch, dessen Interesse insbesondere den kleinen Doppeldeutigkeiten des Alltags gilt, vergebe ich hiermit den Preis für den Variablennamen des Monats: