Eingelogger benutzerwenn Programm als Admin läuft
-
Wenn ich meine Anwendung mit einem Admin-Account starte, wie erhalte ich dann den Benutzernamen und den User-Pfad zum angemeldeten Benutzer?
-
Was meinst Du mit User Pfad?
Ansonsten gibt es keinen Unterschied ob Admin oder nicht
SHGetKnownFolderPathAnsonsten GetUserName(Ex)
https://msdn.microsoft.com/de-de/library/windows/desktop/ms724432(v=vs.85).aspx
https://msdn.microsoft.com/en-us/library/windows/desktop/ms724435(v=vs.85).aspx
-
Mit User Pfad meine ich z.B.
C:\Users\<angemelder_Benutzer>
oder auch
C:\Benutzer\<angemelder_Benutzer>
GetUserName funktioniert nicht, in der MSDN steht dazu auch: Retrieves the name of the user associated with the current thread.
Wenn ich also als User XY angemeldet bin und das Programm als Admin mit einem andern Namen eben als Admin ausführe, dann liefert mir die Funktion als Namen wie erwartet: Admin
Ich will aber XY herausfinden.
-
Wenn du dein Programm unter einem bestimmten Benutzer ausführst kann das Programm auch nur dessen Namen wissen.
-
roflo schrieb:
Wenn du dein Programm unter einem bestimmten Benutzer ausführst kann das Programm auch nur dessen Namen wissen.
Drücke ich so unverständlich aus oder was?
Benutzer XY ist eingeloggt. Er führt das Programm per rechte Maustaste als "als Administator ausführen" aus und weil der Benutzer keine Adminrechte hat, nimmt er eben dem ihn bekannten Namen und Passwort eines Admin Accounts.
Jetzt soll das Programm herausfinden welche Benutzer gerade auf diesem Desktop angemeldet ist. Dass es mit den beschriebenen Funktionen nicht geht habe ich vorher schon gewusst und auch überprüft!
roflo schrieb:
Wenn du dein Programm unter einem bestimmten Benutzer ausführst kann das Programm auch nur dessen Namen wissen.
Ach ja, unter Windows gibt es meistens einen Weg an ein bestimmtes Ziel zu kommen. Ich bin sicher für das von mir beschriebene Problem gibt es eine Lösung.
-
Du kannst dir die aktuelle Window Station besorgen (oder ein anderes Objekt, welches dem ursprünglichen User gehört), dessen SID abgreifen und dann den Username für diese SID holen.
-
Ich hatte schon geschrieben: SHGetKnownFolderPath
-
Martin Richter schrieb:
Ich hatte schon geschrieben: SHGetKnownFolderPath
Mein VS2005 kennt das noch nicht.
Ich glaube irgendwann sollte ich doch mal eine höhere Version nutzen. Aber ich finde die Menüleiste von den neuen Versionen so hässlich.
-
roflo schrieb:
Du kannst dir die aktuelle Window Station besorgen (oder ein anderes Objekt, welches dem ursprünglichen User gehört), dessen SID abgreifen und dann den Username für diese SID holen.
-
Tu dir einen Gefallen und klopp dein vs2005 in die tonne. Vs2008 geht ja vlt noch, mit Vs2015 bist du aber definitiv besser dran. C++11 möchte ich jedenfalls nicht mehr missen.
-
Meine Güte, dann eben SHGetFolderPath....
Du hast doch Internet oder? Also einfach mal etwas Googlen. Ich habe Dir die aktuelle Funktion genannt. Das Du mit 10 Jahre alter Software arbeitest kann ich nicht wissen.Und selbst dann könntest Du Dir das aktuelle SDK besorgen...
-
roflo schrieb:
Du kannst dir die aktuelle Window Station besorgen (oder ein anderes Objekt, welches dem ursprünglichen User gehört), dessen SID abgreifen und dann den Username für diese SID holen.
Das hat schon mal geklappt danke.
Martin Richter schrieb:
Meine Güte, dann eben SHGetFolderPath....
Du hast doch Internet oder? Also einfach mal etwas Googlen. Ich habe Dir die aktuelle Funktion genannt. Das Du mit 10 Jahre alter Software arbeitest kann ich nicht wissen.Und selbst dann könntest Du Dir das aktuelle SDK besorgen...
Guter Tip, nur weiss ich nicht was ich da downloaden muss? Welches SDK ist das passende?
-
Das für das Du entwickeln willst... Technisch kannst Du immer das neueste nehmen.
Wobei ich hoffe, dass Du XP nicht mehr unterstützen willst.
-
Martin Richter schrieb:
Das für das Du entwickeln willst... Technisch kannst Du immer das neueste nehmen.
Wobei ich hoffe, dass Du XP nicht mehr unterstützen willst.Wenn ich dich richtig verstehe kann ich das
https://msdn.microsoft.com/de-de/windows/desktop/bg162891.aspx
oder das
https://dev.windows.com/en-us/downloads/windows-10-sdk
nehmen und es wird mit meinem VS2005 laufen?
Muss man sich eine bestimmte Sprachversion laden? Ich habe nur die englishce Version gefunden.
-
Martin Richter schrieb:
Das für das Du entwickeln willst... Technisch kannst Du immer das neueste nehmen.
Wobei ich hoffe, dass Du XP nicht mehr unterstützen willst.Win Vista oder höher