Alle Rechner im Netzwerk anzeigen und den derzeit angemeldeten User herausfinden.
-
Hey
Wie der Titel schon sagt, versuche ich alle Rechner im Netzwerk und den dazu gehörigen, derzeit angemeldeten Benutzer anzeigen zu lassen.
Alle Rechner im Netzwerk mit Rechnername habe ich bereits mit lm.h hinbekommen.Gibt es denn in C++ überhaupt eine Möglichlkeit den aktuell angemeldeten Benutzer eines Rechners im Netzwerk heraus zu finden?
Ich habe bereits ein Programm in Delphi gefunden, das dies kann, wodurch es rein technisch möglich ist.Hat jemand eine Idee?
-
Hallo
Hat mit C++ oder der VCL des Builders nichts zu tun. Wenn dann eine Bestriebssystemspezifische Funktion, also WinAPI.
Und wenn du schon ein Delphi-Quellcode dafür hast, dann sollte es doch nicht schwer sein den Code in den Builder zu übernehmen oder nach C++ zu übersetzen.bis bald
akari
-
Da ich jedoch noch nie Delphi gesehen habe, wird das bisschen dauern.
Hab halt gehofft, dass jemand direkt weiterhelfen kann, denn groß ist der Delphi-Quellcode wirklich nicht.Ich denke die richtige Stelle gefunden zu haben:
index := 0; subKeyNameSize := SizeOf(subKeyName); WHILE (RegEnumKeyEx(usersKey, index, subKeyName, subKeyNameSize, NIL, NIL, NIL, @lastWriteTime) = ERROR_SUCCESS) DO BEGIN IF (lstrcmpi(subKeyName, '.default') <> 0) AND (Pos('Classes', STRING(subKeyName)) = 0) THEN BEGIN subAuthorityCount := getvals(subKeyName); IF (subAuthorityCount >= 3) THEN BEGIN subAuthorityCount := subAuthorityCount - 2; IF (subAuthorityCount < 2) THEN subAuthorityCount := 2; authority.Value[5] := PByte(@authorityVal)^; authority.Value[4] := PByte(DWORD(@authorityVal) + 1)^; authority.Value[3] := PByte(DWORD(@authorityVal) + 2)^; authority.Value[2] := PByte(DWORD(@authorityVal) + 3)^; authority.Value[1] := 0; authority.Value[0] := 0; sid := NIL; userNameSize := MAX_NAME_STRING; domainNameSize := MAX_NAME_STRING; IF AllocateAndInitializeSid(authority, subAuthorityCount, subAuthorityVal[0], subAuthorityVal[1], subAuthorityVal[2], subAuthorityVal[3], subAuthorityVal[4], subAuthorityVal[5], subAuthorityVal[6], subAuthorityVal[7], sid) THEN BEGIN IF LookupAccountSid(Pchar(ServerName), sid, userName, userNameSize, domainName, domainNameSize, sidType) THEN BEGIN setlength(result, length(result) + 1); result[length(result) - 1] := STRING(domainName) + '\' + STRING(userName); END; END; IF Assigned(sid) THEN FreeSid(sid); END; END; subKeyNameSize := SizeOf(subKeyName); Inc(index); END;
Wen es interessiert und eventuell von Delphi nen Plan hat, der kann sich ja mal mit beschäftigen.
Ich komme selbst leider erst nächste Woche dazu... -.-