Como automatizar a renomeação dentro de uma janela pop-up da área de transferência?

1

Eu vou fazer a seguinte tarefa literalmente milhares de vezes nos próximos dias. Faz parte de uma série de tarefas que são subjetivas e não podem ser automatizadas, mas esta pode ser a mais exaustiva.

Posso automatizar o seguinte e como:

  • Sempre que a janela pop-up 'Fazer download de informações do arquivo' do IDM aparecer, altere o texto entre o texto formatado (.mp3) e a primeira barra da direita com o texto da área de transferência (veja a figura). Obrigado.

    
por EasternRiver 28.02.2018 / 11:21

1 resposta

1

Então, em Windows , você deseja alguma automação. . .

  1. Detectar quando uma janela específica é gerada
  2. Tornar uma janela específica detectada ativa
  3. Insira um caminho de arquivo completo em um campo específico dentro de uma janela específica com o nome do arquivo menos a extensão desse caminho sendo a atual

Considere usar o aplicativo gratuito AutoIT e algumas funções e métodos de chamada em loop para isso.

AutoIT Logic

Este método requer a configuração de duas variáveis: o caminho completo do arquivo  como $SavePath e a extensão do arquivo como $SaveExt , onde o campo Salvar como da janela Baixar informações do arquivo salvará arquivos.

Este método define uma Local variável dentro do função definida pelo usuário identificada como IDM_DFI() e copia a atual o valor da área de transferência como seu valor, então é assumido aqui que você provavelmente terá algo que copie um valor exclusivo para a área de transferência antes que a janela Baixar Informações do Arquivo seja iniciada .

Este processo selecionará e excluirá tudo do campo Salvar como , substituindo-o pelos valores de $SavePath , $Clip e $SaveExt concatenados nessa ordem, tornando-se a sequência para o caminho de arquivo completo e nome de arquivo do arquivo baixado salvo e, em seguida, pressione Iniciar Download .

Esse processo começa com uma chamada de função CheckWin() definida pelo usuário e, dentro dela, o WinWait a função é usada para esperar que uma janela apareça que tenha um título que corresponda ao valor do $WinTitle Global variable . Quando ele detecta essa janela, ele executará os processos mencionados anteriormente e, em seguida, chamará a função CheckWin() novamente e aguardará a geração de outra janela $WinTitle .

Global $WinTitle = "Download File Info"
Global $SavePath = "F:\German lge\Audio database\"
Global $SaveExt = ".mp3"

CheckWin()

Func CheckWin()
   WinWait($WinTitle)
   IDM_DFI()
EndFunc

Func IDM_DFI()
   Local $Clip = ClipGet()
   WinActivate($WinTitle)
   Sleep(200)
   ControlSend($WinTitle, "", "[CLASSNN:Edit3]", "^a{DELETE}"&$SavePath&$Clip&$SaveExt) ; "^a" --> CTRL+a to select all
   Sleep(200)
   ControlClick($WinTitle, "", "[CLASSNN:Button1]", "left")
   Sleep(500)
   CheckWin()
EndFunc

É possível tornar essa lógica mais dinâmica para aceitar três parâmetros de entrada e depois passá-los para o executável depois de compilado para o Título da janela , Caminho completo da pasta Salvar como , e o Salvar como extensão de arquivo que você deseja processar (por exemplo, IDM_DFI.exe "Download File Info" "F:\German lge\Audio database\" ".mp3" ).

Mais recursos

  • Variáveis - usando Global, Local, Estático e ByRef
  • Func
  • WinWait
  • ClipGet
  • WinActivate
  • Sono
  • ControlSend
  • ControlClick
por 01.03.2018 / 07:08

Tags