AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zu Vista UAC und ShellExecute

Ein Thema von Assertor · begonnen am 14. Mai 2007 · letzter Beitrag vom 15. Mai 2007
Antwort Antwort
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#1

Frage zu Vista UAC und ShellExecute

  Alt 14. Mai 2007, 12:13
Hallo DPler,

ich habe einen Updater für ein Programm geschrieben. Das funktioniert auch alles soweit, UAC und Zugriffsrechte sind berücksichtigt.

Jetzt habe ich nur das Problem, daß das Updater-Setup einen UAC Dialog minimiert auslöst.

Das Updater-Setup wird in das Temp-Verzeichnis des Users geladen und gestartet (verlangt Admin Rechte). Mein Hauptprogramm wird erst nach bestätigung des UAC Dialogs geschlossen.

Gibt es also
  • Eine Möglichkeit, daß Ergebnis des ShellExecuteW abzufragen, damit ich weiß ob der User das Setup wirklich starten konnte
  • Ich den UAC Dialog nach vorne bringe, statt als übersehbarer Taskleisten UAC Ankündigung?

Kennt sonst jemand einen Weg, nicht auf das ShellExecute zu warten und das Hauptprogramm direkt zu beenden? Sozusagen, bevor der UAC Dialog kommt?

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Semmel

Registriert seit: 15. Feb 2006
Ort: Bad Hall
64 Beiträge
 
#2

Re: Frage zu Vista UAC und ShellExecute

  Alt 14. Mai 2007, 13:31
mit ShellExecute weis ich keine Lösung, aber mit CreateMutex an dein Hauptprogramm kann eine Möglichkeit sein
Delphi-Quellcode:
  hMutex := CreateMutex( nil, false, 'meinHauptprogramm VX.XX');
  if WaitForSingleObject( hMutex, 50 ) = WAIT_TIMEOUT then begin
    SendMessage( HWND_BROADCAST, WM_MUTEX, 77501, 999501 );
    Application.Terminate;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Frage zu Vista UAC und ShellExecute

  Alt 14. Mai 2007, 13:42
Und was hat das jetzt mit dem Problem zu tun? Ausser dass du alle alle Fenster zwei Integerwerte schickst?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#4

Re: Frage zu Vista UAC und ShellExecute

  Alt 14. Mai 2007, 13:53
Ja, des mit dem CreateMutex verstehe ich auch nicht ganz in diesem Zusammenhang.

Nach etwas Suchen habe ich das Problem eingrenzen können:
Die UAC prüft, ob das Aufrufende Handle den Focus hat bei ShellExecute. Also übergebe ich jetzt mal statt hInstance das Aktuelle Form.Handle und lege vorher den Focus auf es.

Quelle: MSDN UAC Taskleisten Prompt

Aber schön ist das noch nicht. Geht gerade über Terminalserver z.B. nicht. Und für einen simplen Updater gleich ein COM-Interface mitinstallieren, um Zugriffsrechte auf das Programmverzeichnis zu haben - da fühl ich mich nicht wohl. Nicht das das ein Sicherheitsloch aufreißt.

Besteht denn irgendwie die Möglichkeit, beim ShellExecute nicht zu warten. Oder ist dies die Auswirkung des UAC, daß erstmal alles gestoppt wird?

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#5

Re: Frage zu Vista UAC und ShellExecute

  Alt 14. Mai 2007, 13:58
So, nun hab ichs. Ich danke mir

Das ShellExeute muß als Handle den Wert des GetForegroundWindow erhalten. Dann kommt der UAC Prompt immer maximiert.

Danke auch an die anderen für das Interesse. Ist ja nicht bei all meinen Threads so

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.640 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: Frage zu Vista UAC und ShellExecute

  Alt 15. Mai 2007, 08:25
Zitat von winkel79:
Danke auch an die anderen für das Interesse. Ist ja nicht bei all meinen Threads so
Das ist aber sicherlich nicht persönlich gemeint.
Sven Harazim
--
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#7

Re: Frage zu Vista UAC und ShellExecute

  Alt 15. Mai 2007, 10:13
Zitat von sh17:
Das ist aber sicherlich nicht persönlich gemeint.
Weiß ich doch, vermute das liegt an den zu komplexen Titeln und Texten. Will halt nur nicht so viel hin und her - deswegen ist es halt sehr detailreich

Danke auf jeden Fall!

Gruß winkel79
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort


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 10:31 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