Entwickler-Ecke
Windows API - Eigenes Programm unter einem anderen Benutzer starten
Nico80 - Fr 17.04.09 11:13
Titel: Eigenes Programm unter einem anderen Benutzer starten
Hallo,
wie kann ich ein Delphi-Programm schreiben, das unter einem anderen bzw. bestimmten Benutzer startet.
Mit "Run as" kann ich andere Programme starten, aber ich möchte ja mein eigenes beeinflussen.
Beispielsweise ein Benutzer mit Administrationsrechten.
Vielen Dank für die Hilfe
Hidden - Fr 17.04.09 11:27
Hi :)
(als Halblaie): Kannst du nicht einfach dein eigenes Programm mit RunAs noch einmal starten und dann die erste Version beenden?
mfG,
Nico80 - Fr 17.04.09 11:31
Geht das überhaupt und wenn ja wie?
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
Nico80 - Fr 17.04.09 12:02
Ich möchte das Programm ja nicht mit Hilfe eines anderen starten.
Moderiert von
Narses: Komplett-Zitat des letzten Beitrags entfernt.
GTA-Place - Fr 17.04.09 12:12
Deshalb ja auch der Vorschlag mit dem Manifest:
http://www.vb-magazin.de/forums/blogs/janm/archive/2006/10/28/6330.aspx hat folgendes geschrieben: |
2. Manifestdatei
Um das starten mit Admin Rechten zu erzwingen, kann man der Anwendung ein Manifest hinzufügen, das Informationen über die benötigten Rechte enthält.
Die Manifestdatei muss sich im Verzeichnis der Anwendung befinden und den Namen Anwendungsname.exe.manifest tragen. Für notepad.exe wäre das Manifest demnach notepad.exe.manifest.
Inhalt der Manifestdatei
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="*" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> <v3:trustInfo xmlns:v3="urn:schemas-microsoft-com:asm.v3"> <v3:security> <v3:requestedPrivileges> <!-- level can be "asInvoker", "highestAvailable", or "requireAdministrator" --> <v3:requestedExecutionLevel level="highestAvailable" /> </v3:requestedPrivileges> </v3:security> </v3:trustInfo> </assembly> |
PS: Bitte nicht immer den vorherigen Beitrag zitieren, einfach unten auf "Antworten" klicken.
jaenicke - Fr 17.04.09 12:19
Nico80 hat folgendes geschrieben : |
Ich möchte das Programm ja nicht mit Hilfe eines anderen starten. |
Eben noch hast du gefragt wie das geht, sich selbst noch einmal so zu starten... :gruebel:
Nico80 hat folgendes geschrieben : |
Geht das überhaupt und wenn ja wie? |
Wie dem auch sei, jedenfalls kannst du mit einem Manifest sagen, dass Adminrechte gebraucht werden, ich weiß nicht so genau, ob man auch einen simplen Benutzerauswahldialog anzeigen lassen kann.
Nico80 - Fr 17.04.09 13:55
Vielleicht erkläre ich kurz mal was ich machen möchte.
Ein bestimmtes Verzeichnis kann ich nur mit Administrationrechten lesen/öffen.
Angemeldet bin ich als User ohne diese Zugriffsrechte.
Nun möchte ich ein Programm unter dem Admin-Account (antürlich passwort-geschützt) starten um auf das bestimmte Verzeichnis zuzugreifen.
Das geht doch wohl nicht über ein Manifest, oder?
Hidden - Fr 17.04.09 14:09
Ein Manifest ist soviel ich weiß nichts anderes als ein Flag für Windows, der bestimmte Einstellungen oder Designs bestimmt. In sofern: Doch, dieses Manifest scheint Windows zu sagen: "Starte mich mit Administratorrechten oder gar nicht. Biete em User dazu an, mit einem anderen Benutzer zu starten(RunAs)".
mfG,
bis11 - Fr 17.04.09 14:10
jaenicke hat folgendes geschrieben : |
Wie dem auch sei, jedenfalls kannst du mit einem Manifest sagen, dass Adminrechte gebraucht werden, ich weiß nicht so genau, ob man auch einen simplen Benutzerauswahldialog anzeigen lassen kann. |
Das starten eine Programms mit Adminrechten über ein Manifest geht nur unter Windows VISTA. Unter Windows XP greift das Manifest nicht.
Nico80 hat folgendes geschrieben : |
Angemeldet bin ich als User ohne diese Zugriffsrechte.
Nun möchte ich ein Programm unter dem Admin-Account (antürlich passwort-geschützt) starten um auf das bestimmte Verzeichnis zuzugreifen.
Das geht doch wohl nicht über ein Manifest, oder? |
Dazu bietet sich der folgende
Link [
http://www.michael-puff.de/Developer/Delphi/Code-Snippets/Impersonate.shtml] an.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!