Automatize a tarefa sem graça

2

Como esta pergunta: Automatizar as tarefas da GUI

Estou pedindo uma maneira de automatizar as tarefas da GUI. Eu entendo que esses dois aplicativos são usados para esse tipo de coisa, mas esses dois aplicativos são difíceis de usar.

OK, aqui está minha tentativa de script usando o escritor de autoscript II:

Primeiramente, abro o aplicativo e, em seguida, abro um arquivo usando o aplicativo. Eu acredito que esta parte está abrindo o arquivo e clicando duas vezes nele:

Clicando no botão de abertura

MouseClick, left,  63,  100
Sleep, 100
WinWait, Open, 
IfWinNotActive, Open, , WinActivate, Open, 
WinWaitActive, Open, 

Clique duas vezes para selecionar o arquivo:

MouseClick, left,  144,  111
MouseClick, left,  144,  111

Eu preciso que a parte acima do script selecione o próximo arquivo para cada iteração.

Em seguida, ele faz as coisas no aplicativo:

WinWait, App Unicode, 
IfWinNotActive, App Unicode, , WinActivate, App Unicode, 
WinWaitActive, App Unicode, 
MouseClick, left,  304,  459
Sleep, 100
MouseClick, left,  405,  467
Sleep, 100
MouseClick, left,  219,  133
Sleep, 100

E depois salva:

WinWait, Save As, 
IfWinNotActive, Save As, , WinActivate, Save As, 
WinWaitActive, Save As, 
MouseClick, left,  527,  366
Sleep, 100

A janela de abertura do aplicativo vai diretamente para uma pasta com todos os meus arquivos nela. Eu só preciso abrir cada arquivo, por sua vez com autohotkey.

Obrigado!

    
por Ben 01.10.2009 / 22:27

3 respostas

2

Sem saber exatamente o que você está fazendo, não consigo escrever nenhum tipo de script, mas supondo que seja uma janela do explorador, você pode usar um loop:

Loop %RepeatCount% {
    ...
}

e use um pouco de matemática para calcular quando descer uma linha, e assim por diante.

Melhor que isso, veja a seção "Loop (arquivos e pastas)" do readme. Parece que você faria o .ahk dentro do diretório, então faça algo como

Loop *.fileWhatIsBoringToManipulate
{
Run p:\ath\to\executable [command line option to load file]
WinWaitActive, Manipulator
//mouseclicks and stuff
}

O último seria muito superior, mas se o seu aplicativo não suporta entrada de linha de comando, então seria melhor colocar os arquivos na exibição de lista e usar um comando {down} {return} em vez de um mouse posicional de fantasia .

    
por 01.10.2009 / 22:51
1

Se o problema que você está tendo é tentar selecionar o próximo arquivo, talvez seja mais simples selecionar sempre o primeiro arquivo da lista, operá-lo e movê-lo para uma pasta diferente. Então o primeiro arquivo na pasta seria o segundo arquivo anterior.

    
por 30.10.2009 / 14:46
1

Apenas um pensamento, mas depois de abrir o diálogo, use um pouco de matemática para descobrir quantas vezes acertar a tecla para baixo ou algo para selecionar o próximo arquivo (em vez de usar os cliques do mouse). Desta forma, pelo menos, a rolagem será resolvida automaticamente. Exceto por isso e pela opção óbvia de argumento de linha de comando, eu estou com onze81 em realmente mover o arquivo depois de ser feito com ele, então o próximo arquivo está no mesmo lugar que o primeiro ...

    
por 13.11.2009 / 20:28