AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Anwendung starten mit eingeschalteter UAC

Anwendung starten mit eingeschalteter UAC

Ein Thema von musicman56 · begonnen am 3. Jul 2010 · letzter Beitrag vom 4. Jul 2010
Antwort Antwort
musicman56
(Gast)

n/a Beiträge
 
#1

Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 14:23
Hallo,

ich habe ein Programm, das dazugehörige Module aus meiner Hauptanwendung heraus startet. Eines dieser Module ist meine eigene "Systemeinstellung" mit der Bezeichnung "xxxSetup" im EXE-Dateinamen.

Das Problem: Ist die UAC ausgeschaltet, funktioniert alles bestens. Bei eingeschalteter UAC aber passiert gar nichts. Das Problem ist ja wahrscheinlich, dass mein Hauptprogramm ohne Administrator-Rechte keine Anwendung starten kann, die aufgrund der Bezeichnung "Setup" im Dateinamen aus Sicht von Windows wohl Administrator-Rechte braucht.

Wenn der angemeldete User keine Administrator-Rechte hat, ist das Verhalten auch ok. Aber wie bekomme ich es hin, dass zumindest der UAC-Dialog angezeigt wird, wenn der angemeldete User Admin-Rechte hat? Oder kann/muss man sich die Admin-Rechte irgendwie von Windows holen?

Ich verwende "CreateProcess(...)" und denke, dass das Problem im 3.Parameter liegt, dem Pointer auf die "security attributes".

Viele Grüße
Otto
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 14:24
Benenne die Exe einfach um
Markus Kinzler
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#3

AW: Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 14:34
Hallo,

das wäre das naheliegendste, geht aber leider nicht, weil in dieser Exe unter Anderem Einstellungen mit meinem Datenbank-Server bewerkstelligt werden müssen. Hierzu sind Admin-Rechte erforderlich, und darum auch das "xxxSetup" im Dateinamen. Ich hab eine integrierte Benutzerverwaltung, und damit wird dann auch VOR dem EXE-Aufruf kontrolliert, ob der User Admin-Rechte hat.

Gruss Otto
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 14:45
Das die Meldung kommt ist aber as-designed, wenn Setup im Namen ist
Markus Kinzler
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#5

AW: Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 14:55
Hallo Markus,

mann bist du fix und das kurz vor dem Spiel... die Nationalhymne läuft gerade...

Du hast vollkommen recht, das ist "as designed". Gerade deswegen ist der Dateiname ja so. Aber, das ist nicht mein Problem:

Zitat:
Aber wie bekomme ich es hin, dass zumindest der UAC-Dialog angezeigt wird, wenn der angemeldete User Admin-Rechte hat?
Mir ist schon klar, dass eine "Heraufstufung" der Benutzerrechte Probleme bereiten kann, aber das ist ja nicht der Fall: Der unter Windows angemeldete User hat natürlich Administrator-Rechte.

Gruss Otto
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Anwendung starten mit eingeschalteter UAC

  Alt 3. Jul 2010, 15:32
Bei aktivierte UAC hat keiner direkte Adminrechte, sondern nur das Recht heraufgestuft zu werden
Markus Kinzler
  Mit Zitat antworten Zitat
Dezipaitor

Registriert seit: 14. Apr 2003
Ort: Stuttgart
1.701 Beiträge
 
Delphi 7 Professional
 
#7

AW: Anwendung starten mit eingeschalteter UAC

  Alt 4. Jul 2010, 17:46
CreateProcess kann keine Binärdateien ausführen, die ein Adminmanifest besitzen. Der Rückgabefehler ist dann ERROR_ELEVATION_REQUIRED afaik.
Du musst dann ShellExecute mit "runas" als Verb verwenden.
Christian
Windows, Tokens, Access Control List, Dateisicherheit, Desktop, Vista Elevation?
Goto: JEDI API LIB & Windows Security Code Library (JWSCL)
  Mit Zitat antworten Zitat
musicman56
(Gast)

n/a Beiträge
 
#8

AW: Anwendung starten mit eingeschalteter UAC

  Alt 4. Jul 2010, 21:59
Hallo,

@Dezipaitor : Vielen Dank für den Tipp!!! Mit ShellExecute und "runas" als 2.Parameter ( LPCTSTR lpOperation) funzt es einwandfrei, d.h. der UAC-Dialog wird angezeigt und alles ist gut. Und auch mit XP funktioniert es. Also alles bestens!

Kleine Zusatzfrage: In meiner Hilfe (RAD Studio 2007) ist der Parameter "runas" gar nicht beschrieben. Muss ich wohl irgendwie mal meine Hilfe updaten, aber woher nehmen? Die RAD-Studio-Aktualisierung meldet "Keine Aktualisierungen vorhanden".

Mit Delphi-2007 möchte ich schon noch etwas arbeiten, weil einige meiner Bibliotheken nicht mit Delphi-2010 kompatibel sind.

Gruss Otto
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:32 Uhr.
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