Hallo Denis,
Das Programm Phyloboite.exe startet beim Ausführen den Prozess _Phylo00.exe. Ich kann beide Prozesse beenden, indem ich den Kindprozess _Phylo00.exe entweder über die Eingabeaufforderung oder im PyScripter-Befehlszeileninterpreter mit dem Befehl `killalltasks` beende. (Dazu muss ich jedoch den Task-Manager öffnen, den Prozess minimieren, da er nach dem Start den gesamten Bildschirm und nicht nur ein Fenster einnimmt, und anschließend die Eingabeaufforderung oder PyScripter öffnen.).
Das Hauptproblem besteht darin, dass die portable Anwendung, die ich bereitstellen möchte (Phyloboite.exe), Administratorrechte benötigt. Um dies zu beheben, habe ich in der install()-Funktion einen Registrierungsschlüssel erstellt, sodass alle Benutzer die Anwendung mit Administratorrechten und im Kompatibilitätsmodus mit Windows XP SP3 ausführen können
Code: Alle auswählen
registry_setstring(HKEY_LOCAL_MACHINE,"Software\\Microsoft\\Windows NT\\CurrentVersion\\AppCompatFlags\\Layers","C:\AppsPortables\Phyloboite\Phyloboite.exe","~ RUNASADMIN WINXPSP3 RUNASINVOKER", type=REG_SZ)
Das Problem besteht darin, dass trotz dieser Vorgehensweise, sobald die Anwendung auf den Arbeitsstationen bereitgestellt ist, die Anwendung tatsächlich einmal mit einem Administratorkonto geöffnet werden muss, bevor die Benutzer die Anwendung selbst mit Administratorrechten starten können.
Um das UAC-Problem zu umgehen, wollte ich die Anwendung während der Installation öffnen und wieder schließen. Nach mehreren Versuchen und da `killalltasks` in `install()` nicht funktionierte, erstellte ich eine ausführbare Datei (aus einer .bat-Datei), die dies tut und während der Installation (innerhalb der `install()`-Funktion) gestartet wird. Installations-/Deinstallationstests mit PyScripter zeigen keine Probleme; die Anwendung öffnet sich für einige Sekunden (3), schließt sich dann und die Installation wird abgeschlossen. Nach einem Praxistest mit heruntergefahrenen Rechnern schlägt die Installation der Anwendung jedoch fehl und scheint endlos zu laufen.
Haben Sie eine Lösung für das Problem, dass eine portable Anwendung Administratorrechte zum Starten benötigt?
PS1: Zur Information: Die .bat-Datei, aus der die .exe-Datei erstellt wird, enthält die folgenden Befehle:
Code: Alle auswählen
start C:\AppsPortables\Phyloboite\Phyloboite.exe && timeout /t 3 && taskkill /f /im "_Phylo00.exe"
(PS2: Eine weitere interessante Tatsache ist, dass die Funktion killalltasks tatsächlich den Prozess _Phylo00.exe beendet, der während der Deinstallation läuft, wenn die Funktion uninstall() aufgerufen wird).
Vielen Dank im Voraus