[gelöst] Auto Updater Vista UAC Problem

Alles rund um die Programmierung mit Qt
Antworten
WeeZer
Beiträge: 19
Registriert: 8. März 2006 16:44
Kontaktdaten:

[gelöst] Auto Updater Vista UAC Problem

Beitrag von WeeZer »

Hallo,
habe ein einfaches Programm welches sich selbst aktualisiert in dem es eine neue Version als Datei "update" in den Programm Ordner lädt und dann mit QProcess ein Updater Programm startet, welches nichts weiter macht als mit QFile die alte ausführbare Datei zu löschen und die "update" Datei umzubenennen.

Unter Vista passiert jedoch gar nichts. Die "update" Datei kann nicht in dem Programm Ordner erstellt werden und die Ausführbare Datei der alten Version kann von meinem Updater nicht gelöscht werden.

Leider habe ich kein Vista und weiß nicht wie ich dem Problem weiter nach gehen soll. Scheinbar ist es unter Vista nicht ohne weiteres möglich Dateien im Programm Verzeichnis zu verändern.
Mit Visual Studio ist es möglich mithilfe einer manifest Datei festzulegen das ein Programm Administrator Rechte benötigt.
Wie mache ich das mit qmake und MinGW?

Felix
Zuletzt geändert von WeeZer am 18. Mai 2008 18:02, insgesamt 1-mal geändert.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Eine manifest-Datei hat nichts mit irgendwelchen Rechten zu tun.
Vista -> UAC deaktivieren :D - ich mein wer patch.exe als bösartig einstuft und deshalb die Ausführung verhindert (aber ptch.exe geht...) der hat nichts anderes verdient...
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
WeeZer
Beiträge: 19
Registriert: 8. März 2006 16:44
Kontaktdaten:

Beitrag von WeeZer »

Ich kenne mich mit manifest Dateien nicht aus. Habe das nur bei meiner Google Suche aufgeschnappt. Hier der link How To: Tell Vista's UAC What Privelege Level Your App Requires

Die UAC abzuschalten würde das Problem lösen. Allerdings kann und möchte ich nicht von allen Anwendern verlangen das machen zu müssen.

Habe keine Erfahrung mit Vista. Aber die UAC wird (hoffentlich) ihre Daseinsberechtigung haben. Grade weil es sich bei den Benutzern des Programms um eher unerfahrene Anwender handelt.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Wow - was die da alles zusammenwürfeln ... *grml*
Ich glaube aber nicht dass es einfach reicht dem Program das da mitzuteilen - was hätte das für einen Sinn? Naja egal. Schau mal auf sf.net/projects/mingw nach - imho war in der Mailingliste eine Diskussion darüber, bin mir aber nicht mehr ganz sicher.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
WeeZer
Beiträge: 19
Registriert: 8. März 2006 16:44
Kontaktdaten:

Beitrag von WeeZer »

Ich möchte mich mit meinem Halbwissen über Vista nicht zu weit aus dem Fenster lehnen, aber Programme werden mit eingeschränkten Rechten ausgeführt. Es ist nicht mal einfach so möglich Dateien in dem eigenen Programm Ordner abzulegen. Selbst wenn es nur eine harmlose Log Datei ist. Um das zu tun muss das Programm bei aktivierter UAC mit Administrator Rechten gestartet werden.

Genau darin läge dann der Sinn. Wenn mein Updater mit Admin Rechten gestartet wird erscheint eine Warnung der UAC und ich darf in meinem Programmverzeichnis beliebig Dateien runterladen und austauschen.
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Das kann ja sein - aber was nützt irgend ein Flag wenn es jeder setzen kann? :)

Mal auf mingw-users nachgeschaut?
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
WeeZer
Beiträge: 19
Registriert: 8. März 2006 16:44
Kontaktdaten:

Beitrag von WeeZer »

Naja, setzt jemand dieses Flag in seinem Programm kommt natürlich gleich eine weitere Meldung der UAC das ein Programm mit Administrator Rechten starten will.

Über was genau war in der Mailingliste eine Diskussion? Habe nichts dazu gefunden wie ich eine manifest Datei verwenden kann.
Hab gehofft das Problem könnte ich einfach mit ein paar Einträgen in meinem qmake Profile lösen. Naja, schade :?
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Als ob die Meldung jemanden stört :D

Das ist das einzigste was ich gefunden habe: http://lists-archives.org/mingw-users/0 ... -file.html
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
pfid
Beiträge: 535
Registriert: 22. Februar 2008 16:59

Re: Auto Updater Vista UAC Problem

Beitrag von pfid »

WeeZer hat geschrieben:Hallo,
habe ein einfaches Programm welches sich selbst aktualisiert in dem es eine neue Version als Datei "update" in den Programm Ordner lädt und dann mit QProcess ein Updater Programm startet, welches nichts weiter macht als mit QFile die alte ausführbare Datei zu löschen und die "update" Datei umzubenennen.

Unter Vista passiert jedoch gar nichts. Die "update" Datei kann nicht in dem Programm Ordner erstellt werden und die Ausführbare Datei der alten Version kann von meinem Updater nicht gelöscht werden.

Leider habe ich kein Vista und weiß nicht wie ich dem Problem weiter nach gehen soll. Scheinbar ist es unter Vista nicht ohne weiteres möglich Dateien im Programm Verzeichnis zu verändern.
Mit Visual Studio ist es möglich mithilfe einer manifest Datei festzulegen das ein Programm Administrator Rechte benötigt.
Wie mache ich das mit qmake und MinGW?

Felix
Ich weiß nicht ob das hilft, aber versuch mal nicht das Wort "update" zu verwenden. Unter Vista werden Programme blockiert bzw. mit einer Admin-Abfrage versehen, welche "update", "installer" o. ä. im Dateinamen haben. Lässt sich recht leicht prüfen indem du dein normales Programm in "updater.exe" umbenennst. (Das Problem hat übrigens auch das Spiel 'City of Heroes': der Launcher bei denen heißt cohupdater.exe, und wird dementsprechend von Vista geblockt, bzw kann nur vom Admin gestartet werden)

Also probier mal das Update nicht "update", sondern "up_meinprog" oder halt irgendwas beliebiges zu Testzwecken zu nennen.
WeeZer
Beiträge: 19
Registriert: 8. März 2006 16:44
Kontaktdaten:

Re: Auto Updater Vista UAC Problem

Beitrag von WeeZer »

pfid hat geschrieben: Ich weiß nicht ob das hilft, aber versuch mal nicht das Wort "update" zu verwenden. Unter Vista werden Programme blockiert bzw. mit einer Admin-Abfrage versehen, welche "update", "installer" o. ä. im Dateinamen haben. Lässt sich recht leicht prüfen indem du dein normales Programm in "updater.exe" umbenennst. (Das Problem hat übrigens auch das Spiel 'City of Heroes': der Launcher bei denen heißt cohupdater.exe, und wird dementsprechend von Vista geblockt, bzw kann nur vom Admin gestartet werden)

Also probier mal das Update nicht "update", sondern "up_meinprog" oder halt irgendwas beliebiges zu Testzwecken zu nennen.
Das war es, Problem gelöst :) Mein Setup achtet nun darauf das der Benutzer in meinem Programmverzeichnis die Rechte hat Dateien zu verändern und der Updater heißt nun nicht mehr Updater. Funktioniert jetzt alles wie es soll. Ich danke euch.
Antworten