Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Delphi Programm, das AdminRechte braucht unter Vista (https://www.delphipraxis.net/86441-delphi-programm-das-adminrechte-braucht-unter-vista.html)

Tom4321 14. Feb 2007 10:35


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:
<?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>
Im Projekt selber ist keine Manifest-Komponente eingebunden.

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??

Luckie 14. Feb 2007 10:41

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.

Tom4321 14. Feb 2007 10:46

Re: Delphi Programm, das AdminRechte braucht unter Vista
 
Leider nichts gefunden, oder bin ich zu blöd?? :gruebel:

Phoenix 14. Feb 2007 10:49

Re: Delphi Programm, das AdminRechte braucht unter Vista
 
Hier im Forum suchenRessourcen einbinden - liefert z.B. http://www.delphipraxis.net/internal...=478975#478975

Tom4321 14. Feb 2007 10:49

Re: Delphi Programm, das AdminRechte braucht unter Vista
 
Sorry, man sollte nich nach "Manifest einbinden" suchen :wall:

Tom4321 14. Feb 2007 11:07

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??

Tom4321 14. Feb 2007 12:02

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:

sh17 14. Feb 2007 12:07

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.

Phoenix 14. Feb 2007 12:23

Re: Delphi Programm, das AdminRechte braucht unter Vista
 
Schau mal in die PowerPoint-Slides von CodeGear zu dem Thema:

CodeX 23. Feb 2007 13:47

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:
<?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>
Inhalt der ExecutionLevelAdmin.rc:
Code:
1 24 "ExecutionLevelAdmin.manifest"
Die Automatische Umwandlung hat mit nachfolgender Zeile leider nicht funktioniert (es kam immer die Meldung beim Kompilieren "ExecutionLevelAdmin.res nicht gefunden")
Delphi-Quellcode:
{$R 'ExecutionLevelAdmin.res' 'ExecutionLevelAdmin.rc'}
Deshalb habe ich diese manuell mit
Code:
brcc32 ExecutionLevelAdmin.rc
umgewandelt.


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??


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:34 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz