O AutoHotkey não pode iniciar aplicativos ClickOnce quando iniciado na inicialização usando o Agendador de Tarefas

4

Eu amo o AutoHotkey (AHK) e o uso para iniciar todos os meus aplicativos usando o AHK Command Picker . Para contornar as restrições impostas pelo UAC do Windows 8, exijo que meus scripts AHK sejam executados como administrador. Agora, executando o script como administrador ou não, se eu iniciar manualmente meu script AHK, ele poderá iniciar meus aplicativos ClickOnce. Este é um exemplo de como estou lançando o aplicativo ClickOnce da AHK:

Executar, C: \ SomeFolder \ MyClickOnceApp.appref-ms

O problema que estou tendo ocorre quando uso o Agendador de tarefas para iniciar automaticamente meu script AHK quando faço logon no Windows . Quando faço isso, se eu tentar iniciar um aplicativo ClickOnce com meu script, nada acontece. Posso fechar o script e executar manualmente a Tarefa agendada para reiniciá-lo, mas ainda não funcionará. Se eu fechar o script e iniciá-lo manualmente (clicando duas vezes no meu arquivo .ahk), tudo funcionará bem e eu posso iniciar meus aplicativos ClickOnce. Se eu fechar o script novamente e executar manualmente a Tarefa agendada para reiniciá-lo novamente, tudo continuará funcionando bem e posso iniciar meus aplicativos ClickOnce.

Portanto, o problema não parece ser causado pelo lançamento do script pelo Agendador de tarefas, mas, por algum motivo, o script precisa ser executado manualmente pelo menos uma vez antes de poder abrir os aplicativos ClickOnce.

Não tenho certeza de qual é a diferença entre eu clicar duas vezes manualmente no arquivo .ahk ou fazer com que uma Tarefa agendada o inicie para mim (a tarefa agendada está definida para ser executada como meu usuário (que é um administrador) e tem "Executar com privilégios mais altos "marcado). Mas, por algum motivo, clicar duas vezes no arquivo manualmente parece alterar algumas configurações, para que o script AHK seja executado de maneira diferente até a próxima vez que o PC for reiniciado. A única diferença que consigo pensar é que, na Tarefa agendada, tenho o campo "Iniciar em (opcional)" definido para a pasta que contém o script AHK (por exemplo, C: \ SomeFolder), enquanto que quando executo manualmente o arquivo .ahk clicando duas vezes nele, não sei se isso está definido.

Todas as sugestões são muito apreciadas. Obrigado.

cão mortal
fonte

Respostas:

1

O problema é que o agendador de tarefas não é executado na mesma sessão do usuário conectado no momento. (Sim, pode estar em execução como o mesmo usuário ... mas o mesmo usuário pode ter várias sessões no Windows, nem todas iniciadas em uma GUI) O que acontece é que quando o agendador de tarefas inicia aplicativos, mas não há local para exibir a GUI. Não está sendo executado na mesma sessão que o usuário conectado.

TheCompWiz
fonte
Hmmm, presumi que, por ter minha tarefa agendada para iniciar "no logon", ela seria executada na mesma sessão. Porém, sua explicação faz sentido e também explicaria por que o TrayIt! não consegue se conectar a nenhuma janela que inicio com o meu script AHK. Então, você tem alguma idéia do que posso fazer para que a Tarefa agendada inicie na MINHA sessão? Obrigado!
deadlydog
Não use tarefas agendadas. Coloque um atalho na pasta de inicialização dos usuários ou especifique uma entrada na HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Runchave no registro.
TheCompWiz #
Inicialmente, tentei usar a pasta de inicialização, mas nenhuma dessas opções funciona para mim porque preciso do meu script AHK para Executar como administrador. Se eu disser o atalho na pasta de inicialização para Executar como administrador, ele simplesmente não será iniciado (o Windows 8 UAC o bloqueia). É por isso que preciso usar o Agendador de tarefas, porque ele tem a opção "Executar com privilégios mais altos". Eu encontrei este post que diz para criar a tarefa agendada a partir da linha de comando usando o parâmetro / TI, mas isso não parece que quer trabalhar
deadlydog
Também tentei remover a opção "Executar como administrador" do link da pasta de inicialização e colocá-la diretamente no executável Autohotkey.exe, mas obtive o mesmo resultado em que o script não é iniciado na inicialização. No momento, parece que minha melhor opção é descobrir como fazer com que o Agendador de tarefas execute a tarefa na minha sessão de usuário atual.
deadlydog
hack-ish ... mas isso pode funcionar para você: shulerent.com/2012/03/07/…
TheCompWiz 8/12/12