![]() |
Delphi Programm, das AdminRechte braucht unter Vista
Hallo Leute,
also ich habe mich jetzt schon durch die Suche "gecrawlt" aber leider nichts wirklich passendes gefunden :? Also folgendes Problem: Ich habe eine Applikation die Adminrechte braucht. Unter XP kein Problem. Unter Vista allerdings dank UAC schon. Das Programm aus dem Installer laufen lassen funtioniert ohne Probleme, beim zweiten Start funktioniert es nicht mehr richtig. Starte ich das Programm dann über das Kontextmenü als Admin, läuft es wieder wunderbar. Also war meine Idee dem programm fix mitzugeben das es mit Adminrechten startet, sollte ja über eine Manifestdatei nicht das Problem sein. Also habe ich (wie im Forum beschrieben) der Exe per Installer eine Manifestdatei (die heisst wie die .EXE plus .manifest) dazukopiert. Sie sieht folgendermassen aus:
Delphi-Quellcode:
Im Projekt selber ist keine Manifest-Komponente eingebunden.
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft.com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="Meine Programname" type="win32"/> <description>Meine Programmbeschreibung</description> <trustInfo xmlns="urn:schemas-microsoft.com:asm.v3"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/> </requestedPrivileges> </security> </trustInfo> </assembly> Tja und was passiert? Gar nichts. Das Programm startet unter Vista beim zweiten Start wieder mit Userrechten (sprich es kommt keine UAC-Abfrage) und geht nicht. Was mache ich falsch? Ich habe im Forum gelesen, das man solche Manifestdateien auch in die .Exe einbinden kann, aber wie? Theoretisch wäre mir lieber die Datei extra dazuzuliefern. Wer kann helfen?? |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Versuch mal das Manifest als Ressource in die Exe einzubinden. Wie das geht, sollte hier im Forum zu finden sein.
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Leider nichts gefunden, oder bin ich zu blöd?? :gruebel:
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Sorry, man sollte nich nach "Manifest einbinden" suchen :wall:
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Also leider wieder kein Erfolg. Ich bin wie folgt vorgegangen:
1. Manifest als Textfile im gleichen Folder wie die Exe abspeichern. 2. Mit einem Texteditor einen xyz.rc-File erstellen. Inhalt: Manifest RT_MANIFEST "Demo.exe.manifest" 3. Eine xyz.bat-Datei erstellet. Inhalt: brcc32 xyz.rc 4. Einen Doppelklick auf diese .bat-Datei. 5. Diese xyz.Res-Datei wie folgt in der .dpr vor begin eingetragen. {$R xyz.res} Ergebnis: Gar keines, es ist wie vorher. Sieht jemand meinen Fehler?? |
Re: Delphi Programm, das AdminRechte braucht unter Vista
So kleines Update: Habe mal mit dem PE Builder in die Exe reibgeschaut und das Manifest File wird eingebunden, nur leider ohne jegliches Ergebnis?! :gruebel:
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Ich hatte vor einer Weile auch mal damit rumgetestet, bin aber grad nicht an einem Vista-Rechner.
Lass mal probehalber uiAccess weg, damit der Defaultwert genommen wird (der ist, glaub ich aber false) Ich schau dann noch mal nach. |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Schau mal in die
![]() |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Ich habe jetzt auch mit diesem Thema zu kämpfen ... bisher erfolglos.
Ich habe die Anleitung von CodeGear (aus der im Post vorher verlinkten PP Präsentation) Schritt für Schritt befolgt. Leider bekomme ich beim Ausführen der Exe die Meldung "Diese Anwendung konnte nicht gestartet werden, weil die Anwendungskonfiguration nicht korrekt ist. Zur Problembehandlung sollten Sie die Anwendung neu installieren." Der Inhalt der ExecutionLevelAdmin.manifest (abgetippt, aber mehrmals kontrolliert. Vllt ist ja trotzdem ein Typo drin)
XML-Code:
Inhalt der ExecutionLevelAdmin.rc:
<?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" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="x86" /> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPriviledges> <requestedExecutionLevel level="requireAdministrator"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Code:
Die Automatische Umwandlung hat mit nachfolgender Zeile leider nicht funktioniert (es kam immer die Meldung beim Kompilieren "ExecutionLevelAdmin.res nicht gefunden")
1 24 "ExecutionLevelAdmin.manifest"
Delphi-Quellcode:
Deshalb habe ich diese manuell mit
{$R 'ExecutionLevelAdmin.res' 'ExecutionLevelAdmin.rc'}
Code:
umgewandelt.
brcc32 ExecutionLevelAdmin.rc
So und nun stehe ich mit ganz oben angemerkter Fehlermeldung da und weiß nicht weiter. Kann mir da jetzt helfen? EDIT: So ein Mist! Warum sieht man die Fehler erst nachdem man nachfragt, weil man zuvor Stunden damit verbracht hat, vergeblich rumzuprobieren? Bei "requestedPriviledges" ist natürlich ein "d" zuviel. Und schon geht das ganze ... Aber glücklich bin ich mit der Lösung dann doch nicht wirklich. Es kommt ja jetzt beim Start immer eine UAC Meldung, die man bestätigen muss. Geht das nicht irgendwie noch anders? Also eine einmalige Abfrage wäre ja noch OK, aber bei JEDEM Programmstart?? |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Schalt UAc ab. Könnte man es mit einem Programm umgehen, wäre es nutzlos.
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Es geht ja nicht um mich, sondern um die Leute, die meine Software verwenden sollen. Ich kann schlecht darauf bestehen, dass Sie deswegen auf UAC verzichten sollen.
"Umgehen" würde ich das ganze nicht nennen. Ich hätte es auch nicht ganz abwegig gefunden, wenn es eine Möglichkeit geben würde, seine Entscheidung ("Ja, erlauben") dauerhaft zu speichern (sofern sich die Datei nicht ändert). Wenn sich der User entschließt, dies zu tun, wurde ja nichts umgangen. Nun gut, sollte es eine solche Funktion nicht geben, ist das eine andere Sache. Kann man hier etwas mit einem Service machen? Ich kenne mich mit dem Thema leider nicht aus, könnte mir aber vorstellen, dass man hier eventuell etwas machen könnte. |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Du kannst höchstens den Vertrauensgrad deiner Anwendung erhöhen, in dem du eine Signatur anforderst oder diesen
![]() |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Gerade gefunden:
![]() |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
Der "Trick" macht die Meldung ja auch nicht wirklich weg. Umfärben ist ja keine Lösung. Zitat:
Zitat:
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
![]() [/wahrscheinlich_doch_aber_nicht_so_ganz_ot] |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
Und um meine Idee mit dem Service nochmal aufzugreifen: Wäre die folgende Vorgehensweise möglich? Bei der Installation wird nebst dem Programm noch ein Service installiert. Beim Starten des Programms wird geprüft, ob Administrator-Rechte vorhanden sind. Ist dies nicht der Fall, wird das dem Service mitgeteilt und das Programm beendet sich selbst. Der Service startet nun das Programm wieder. Das Programm hat nun die gleichen Rechte wie der Service. Es erfolgt keine UAC Abfrage. Meine Überlegungen setzen voraus, dass der Service bereits mit Administratorrechten läuft. Wäre das so realisierbar? |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
![]() |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
2. Lauft der Service unter dem SYSTEM konto (ist bei XP zumindest so und ich glaub nicht das sich das verändert hat) und wenn du jetzt aus einem service heraus das Programm startest dann läuft des auch unter dem SYSTEM konto und niemand würde deine Exe dann sehen da dein Programm dann keinen Zugriff auf den Desktop hat. Du müsstest den Benutzernamen und das Passwort vom Benutzer kennen um ein Programm aus dem Service starten zu können das es der benutzer dann sieht und wenn du des auch noch beim setup fragst dann installier ich dein Prog gar nicht erst :zwinker: |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
Starte ich die Applikation bspw. über den Explorer, kommt das Fenster mit der Zustimmung des Administrators. Starte ich sie jedoch aus Delphi heraus, scheint Delphi anscheinend ein Problem mit dem sicheren Desktop zu haben, der für die Admin-Abfrage von Vista über den regulären Desktop geblendet wird. Delphi wartet demzufolge auf die Abfrage von sicheren Desktop, den ich aber nirgens erreichen kann. Kann das jemand nachvollziehen ? Tritt das Problem bei Delphi 2006 auch auf ? Falls ich keine Lösung finde, hilft wohl nur Delphi 2007 mit Vista Support weiter. |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Ich entwickle unter XP und habe keine Probleme mit der neu eingebundenen manifest Datei. Läuft auch aus Delphi heraus ohne Probleme. Wenn ich Deinen Text aber richtig gedeutet habe, Läuft Dein Delphi aber direkt unter Vista.
Trotzdem noch zwei Hinweise von mir zum Thema "Vista-Manifest". 1. Irgendwo weiter oben stand eine Anleitung mit einer "Programm.exe.manifest" Datei. Diese Lösung ist nicht praktikabel, da diese Datei ja dann nicht eingebunden wird, sondern extra mitgeliefert werden muss. 2. Der Code aus der PP-Präsentation beinhaltet nicht das "Aussehen" des OS. Ich habe die WindowsXP Manifest-Datei deshalb als grundlage genommen und hier nur noch den Teil mit den Rechtezuweisungen ergänzt. Damit sieht das Programm immer entsprechend des Betriebssystems (2000, XP, Vista) aus und erfüllt die notwendigen Voraussetzungen für Vista. |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
Zitat:
Besteht vielleicht die Möglichkeit, dass Du Deine funktionierende Manifest-Datei hier nochmal komplett reinsetzt bzw. sie mir per EMail bzw. PN schickst. Das wäre wirklich eine große Hilfe. Danke schonmal im voraus, Devid |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Aber sicher doch.
ExecutionLevelAdmin.manifest
XML-Code:
ExecutionLevelAdmin.rc
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity name="PROGRAMMNAME" processorArchitecture="*" version="1.0.0.0" type="win32"/> <description>Windows Shell</description> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="x86" publicKeyToken="6595b64144ccf1df" language="*" /> </dependentAssembly> </dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="requireAdministrator"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Code:
Da das Einbinden als
1 24 "ExecutionLevelAdmin.manifest"
Delphi-Quellcode:
nicht zwingend funktionieren muss (tut es zumindest bei mir nicht),
{$R 'ExecutionLevelAdmin.res' 'ExecutionLevelAdmin.rc'}
einfach umwandeln in ExecutionLevelAdmin.res mit der Kommandozeile
Code:
brcc32 ExecutionLevelAdmin.rc
|
Re: Delphi Programm, das AdminRechte braucht unter Vista
Hallo,
eine prinzipielle Frage, wozu braucht dein Programm Admin-Rechte ? Per Service geht es auf jeden Fall. Ich schlage mich auch gerade damit rum (automatische Programmupdate) Willkommen im Club. Heiko |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Zitat:
Hm, oben wurde geschrieben, dass das mit dem Service so nicht geht; Du schreibst, dass das funktioniert. Also mein Gefühl sagte mir ja auch, dass das nur so gehen könnte. Ich werde es wohl einfach mal selbst ausprobieren. Ich hoffe das ist nicht allzu schwer zu realisieren. Bin momentan leider mit anderen Dingen voll ausgelastet und weiß nicht, wann ich endlich Zeit dafür finden werde. Wenn Du (positive) Erfahrungen gemacht hast, kannst Du gerne Bescheid geben, was Du genau getan hast. Code(schnippsel) wären natürlich ideal. Ansonsten Good Luck bei dem Thema :) |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Liste der Anhänge anzeigen (Anzahl: 2)
Zitat:
Vielleicht liegts an Delphi 2005, kann ich mir aber nicht vorstellen. da Deine Signatur aussagt, dass Du Delphi 2006 einsetzt, wäre es eine große Hilfe, wenn Du das unter XP mal bestätigen könntest. Danke schonmal für Deine Hilfe, Devid |
Re: Delphi Programm, das AdminRechte braucht unter Vista
Hi, habe ebenfalls versucht es in meine Anwendung einzubinden. Das tut er auch, nur wird es nicht als Admin gestartet. Kann mir wer helfen?
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz