AutoHotkey kann keine ClickOnce-Apps starten, wenn diese beim Start mit dem Taskplaner gestartet werden

1481
deadlydog

Ich liebe AutoHotkey (AHK) und verwende es, um alle meine Apps mit AHK Command Picker zu starten . Um die Einschränkungen durch die Windows 8-Benutzerkontensteuerung zu umgehen, muss ich meine AHK-Skripts als Administrator ausführen. Ob nun das Skript als Administrator ausgeführt wird oder nicht. Wenn ich mein AHK-Skript manuell starte, kann es meine ClickOnce-Apps starten. Dies ist ein Beispiel, wie ich die ClickOnce-App von AHK starte:

Führen Sie C: \ SomeFolder \ MyClickOnceApp.appref-ms aus

Ich habe ein Problem, wenn ich den Taskplaner zum automatischen Starten des AHK-Skripts bei der Anmeldung bei Windows verwende . Wenn ich dies versuche und eine ClickOnce-App mit meinem Skript starte, passiert nichts. Ich kann das Skript schließen und die geplante Aufgabe manuell ausführen, um es neu zu starten, aber es funktioniert immer noch nicht. Wenn ich das Skript dann schließe und manuell starte (durch Doppelklicken auf meine .ahk-Datei), funktioniert alles gut und ich kann meine ClickOnce-Apps starten. Wenn ich das Skript dann wieder schließe und die geplante Task manuell erneut ausführen, funktioniert alles weiterhin einwandfrei und ich kann meine ClickOnce-Apps starten.

Das Problem scheint also nicht darauf zurückzuführen zu sein, dass der Taskplaner das Skript startet. Das Skript muss jedoch aus irgendeinem Grund mindestens einmal manuell ausgeführt werden, bevor ClickOnce-Apps geöffnet werden können.

Ich bin nicht sicher, was der Unterschied zwischen mir ist, indem Sie manuell auf die .ahk-Datei doppelklicken, oder indem Sie eine geplante Aufgabe für mich starten lassen (die geplante Aufgabe ist so eingestellt, dass sie als mein Benutzer (der ein Administrator ist) ausgeführt wird und "Ausführen" hat mit höchsten Privilegien "geprüft". Aus irgendeinem Grund scheint das manuelle Doppelklicken auf die Datei einige Einstellungen zu ändern, sodass das AHK-Skript bis zum nächsten Neustart des PCs anders ausgeführt wird. Der einzige Unterschied, den ich mir vorstellen kann, ist, dass ich in der geplanten Task das Feld "Start in (optional)" auf den Ordner gesetzt habe, der das AHK-Skript enthält (z. B. C: \ SomeFolder), während ich die .ahk-Datei manuell ausführte durch Doppelklick weiß ich nicht, ob dies eingestellt ist.

Anregungen werden sehr geschätzt. Vielen Dank.

3

1 Antwort auf die Frage

1
TheCompWiz

Das Problem ist, dass der Aufgabenplaner nicht in derselben Benutzersitzung wie der aktuell angemeldete Benutzer ausgeführt wird. (Ja, es wird möglicherweise derselbe Benutzer ausgeführt ... aber derselbe Benutzer kann mehrere Sitzungen in Windows haben, von denen nicht alle innerhalb einer GUI gestartet werden.) Was passiert, ist, wenn der Taskplaner Anwendungen startet, aber keine Platz für die Anzeige der GUI. Es wird nicht in derselben Sitzung wie der angemeldete Benutzer ausgeführt.

Hmmm, ich ging davon aus, dass meine geplante Aufgabe "at log on" gestartet werden muss, weil sie in meiner Sitzung ausgeführt wird. Ihre Erklärung ist zwar sinnvoll und würde auch erklären, warum [TrayIt!] (Http://www.teamcti.com/trayit/trayit.htm) nicht in ein Fenster einhängen kann, das ich mit meinem AHK-Skript starte. Haben Sie irgendwelche Ideen, wie ich die geplante Aufgabe in meiner Sitzung starten kann? Vielen Dank! deadlydog vor 11 Jahren 0
Verwenden Sie keine geplanten Aufgaben. Fügen Sie im Startordner des Benutzers eine Verknüpfung ein, oder geben Sie in der Registrierung einen Schlüssel im Schlüssel "HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Run" an. TheCompWiz vor 11 Jahren 0
Ich habe ursprünglich versucht, den Startordner zu verwenden, aber keine dieser Optionen funktioniert für mich, da ich mein AHK-Skript für die Ausführung als Administrator benötige. Wenn ich die Verknüpfung im Startordner zu "Ausführen als Admin" sage, wird sie einfach nicht gestartet (Windows 8 UAC blockiert sie). Deshalb muss ich den Taskplaner verwenden, da er die Option "Mit höchsten Berechtigungen ausführen" hat. Ich habe [diesen Beitrag] (http://superuser.com/questions/278233/windows-7-task-scheduler-to-start-application-in-user-session) gefunden, in dem die geplante Task über die Befehlszeile erstellt wird mit dem Parameter / IT, aber dies scheint ebenfalls nicht zu funktionieren deadlydog vor 11 Jahren 0
Ich habe auch gerade versucht, die Option "Als Administrator ausführen" aus dem Startordner zu entfernen und sie stattdessen direkt in die ausführbare Datei "Autohotkey.exe" zu setzen, hatte jedoch dasselbe Ergebnis, dass das Skript beim Start nicht gestartet wird. Im Moment scheint es meine beste Option zu sein, herauszufinden, wie der Taskplaner die Task in meiner aktuellen Benutzersitzung ausführen kann. deadlydog vor 11 Jahren 0
hack-ish ... aber das könnte für Sie funktionieren: http://www.shulerent.com/2012/03/07/getting-apoorly-designed-clickonce-application-to-run-as-administrator/ TheCompWiz vor 11 Jahren 0
Ok, ich habe es mit dem Schalter / IT versucht, als ich die Task erneut von der Kommandozeile aus erstellt hatte, und diesmal hat es funktioniert :) Ich weiß nicht, warum es vorher nicht funktioniert hat. Wenn Sie außerdem den Schalter / V1 verwenden, wird der Task automatisch auf "Mit höchsten Berechtigungen ausführen" und das Verzeichnis "Start In" auf das Verzeichnis gesetzt, in dem sich das ausführende Programm befindet. Hier ist ein Beispiel für den von mir verwendeten Befehl So erstellen Sie die Aufgabe über die Eingabeaufforderung: schtasks / Create / RU "[Domäne] \\ [MeinUsername]" / SC ONLOGON / TN "AHK-Befehlswähler starten" / TR "D: \ AHKStuff \ AHKCommandPicker.ahk" / IT / V1 deadlydog vor 11 Jahren 0
Freut mich zu hören, dass du es funktioniert hast! TheCompWiz vor 11 Jahren 0