GELÖST C++ Überprüfung, ob Programm mit Adminrechten gestartet wurde

Diskutiere C++ Überprüfung, ob Programm mit Adminrechten gestartet wurde im Programmierung Forum im Bereich Software Forum; Hi, ich bins wieder ^^ Jedenfalls suche ich nach einer Möglichkeit, wie man in C++ abfrägt, ob das Programm Adminrechte besitzt (also mit...
sanandreasWB

sanandreasWB

Threadstarter
Mitglied seit
13.05.2008
Beiträge
692
Standort
getarnt mit Störsendern...
Hi, ich bins wieder ^^

Jedenfalls suche ich nach einer Möglichkeit, wie man in C++ abfrägt, ob das Programm Adminrechte besitzt (also mit Rechtsklick -> "Als Administrator ausführen" gestartet wurde).
Wenn Nein, soll sich das Programm mit der Meldung "Sie haben das Programm nicht mit Administratorrechten gestartet..." beenden.

Habe schon Google befragt, doch ich habe nichts gefunden!

Als IDE verwende ich wxDevC++ in der Version 7.3.1.3.

zum Programm:
- Es soll unter Windows XP, Vista und 7 laufen.
- es ist ein C++ GUI-Programm


Wäre Dankbar für jede Antwort! ;)
 
H

HWFlo

Mitglied seit
04.09.2005
Beiträge
5.271
Alter
31
Im Visual Studio kann man Anwendungen (VB.net, C#, C++) eine sogenannte Manifest-Datei hinzufügen und dort z.b. festlegen das Adminrechte benötigt werden um das Programm auszuführen.
Beim Starten kommt dann ein entsprechender Hinweis via UAC.
Denke mal sowas müsste auch ohne Visual Studio gehen.
 
sanandreasWB

sanandreasWB

Threadstarter
Mitglied seit
13.05.2008
Beiträge
692
Standort
getarnt mit Störsendern...
Das Problem ist, dass ich nicht weiß, wie ich die Manifest in das Programm mit wxDev-C++ einbinde und im I-Net auch nichts zu finden ist, wie ich das mache.
Außerdem weiß ich nicht, wie eine Manifest aufgebaut sein soll und meine IDE keine Funktion besitzt solch eine zu erstellen :/
 
D

Dambo

Mitglied seit
06.11.2009
Beiträge
223
Standort
links von Linz (OÖ)
Das Problem ist nicht-trivial, weil alles zu prüfen nicht möglich und die Umkehrung "keine Adminrechte" dehnbar ist. Im Standardfall dürfen eingeschränkte Benutzer z.B. nicht die Systemzeit umstellen (darauf könnte geprüft werden) - aber viele dieser Einschränkungen sind durch Systemeinstellungen modifizierbar.
Bei MS gibt es einen quasi-offiziellen Weg: "To determine whether a thread is running under a local administrator account, you have to [...]. This article [KB118626] describes how to do this."

Der Artikel einthält kompletten Sourcecode zum Kopieren & Einfügen:
Code:
BOOL IsCurrentUserLocalAdministrator(void);
Benötigt kein .NET oder Ähnliches.

Funktioniert bei mir in einem selbstgestrickten Mini-Programm in Visual C++ 6 im Autostart, damit ich nach Systemwartung nicht vergesse;), im eingeschränkten Benutzer zu arbeiten.
 
sanandreasWB

sanandreasWB

Threadstarter
Mitglied seit
13.05.2008
Beiträge
692
Standort
getarnt mit Störsendern...
JA, Es klappt!

@Dambo: Der Sourcecode funktionierte leider nicht. Mein Compiler gab Errors aus. Danke trotzdem ^^

@DiableNoir: Du hast mich auf den richtigen Ansatz gebracht! Hab das gefunden:
http://www.codeproject.com/KB/vista-security/VistaElevator.aspx

unter "Starting an elevated process".

Das war die Lösung, reicht mir völlig. Wenn ich jetzt auf einen Button klicke, kommt die UAC ^^

nochmal THX @ all! ;)
 
Thema:

C++ Überprüfung, ob Programm mit Adminrechten gestartet wurde

C++ Überprüfung, ob Programm mit Adminrechten gestartet wurde - Ähnliche Themen

  • Speicherplatz auf C freigeben

    Speicherplatz auf C freigeben: Hallo Community, ich brauche einmal eure Hilfe. Ich benötige mindesten 8 GB für das neue Windows 10 Upgrade auf C. 7er ist installiert. Was...
  • der überwachte ordnertzugriff hat c:\windows wmiprvse.exe daran gehindert änderungen für den arbeitsspeicher durchzuführen

    der überwachte ordnertzugriff hat c:\windows wmiprvse.exe daran gehindert änderungen für den arbeitsspeicher durchzuführen: nach nem update und neustart heute bekomme ich viele solche Meldungen. ich habe geschaut bei details, die datei ist von microsoft. also kein virus...
  • Laufwerk C formatieren

    Laufwerk C formatieren: Laufwerk C- formatieren
  • Datenträger C

    Datenträger C: Moin, innerhalb von ca. 2 Wochen ist mein Speicherplatz von 680 frei auf 167 frei gestiegen. Wer kann mir da weiter helfen um das Problem zu...
  • Win7-Backup unvollständig, Dateien aus c:\esupport nicht gesichert

    Win7-Backup unvollständig, Dateien aus c:\esupport nicht gesichert: Hallo zusammen, auf dem TransformerBook meiner Frau habe ich kürzlich die neue Windows 10 Home-Version installiert, Version 1903, Build...
  • Ähnliche Themen

    Oben