Replicar ação do usuário no Windows?

1

É possível de alguma forma gravar totalmente a ação do usuário e replicá-la em qualquer outra máquina? Não apenas repita a entrada do usuário (pressione a tecla, clique / movimento do mouse), mas capture os "objetos" reais do sistema (por exemplo, elementos da GUI) interagindo com o usuário.

AutoIt / AutHotKey não parece ser capaz de capturar / replicar certas ações. Por exemplo, quero ativar / desativar a barra de ferramentas de endereços na barra de tarefas via shell ou programaticamente, o que geralmente é feito através do menu de contexto na barra de tarefas - > Barras de ferramentas - > Endereço.

Com Auto É possível simular movimentos / cliques exatos do mouse ou pressionamento de tecla, o que não é adequado neste caso, porque falhará em algumas outras máquinas (se a barra de ferramentas estiver auto-ocultada ou localizada lateralmente). Presumo que Process Monitor possa ajudar, mas não consegui descobrir quais eventos filtrar e como para usá-los depois. Qualquer idioma / shell / software é aceitável.

    
por nazikus 22.02.2013 / 02:11

2 respostas

0

Registrar as coordenadas exatas dos cliques do mouse nunca é o jeito certo de fazer algo assim. Há quase sempre sempre uma maneira melhor.

  1. Você pode tentar exportar a seguinte chave do Registro e importar no outro PC:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Streams\Desktop
    
  2. Você pode usar o AutoHotkey para enviar as teclas relevantes que ativariam o Endereço ou outras barras de ferramentas. Por exemplo, o seguinte funciona no meu PC Win7 para alternar a barra de endereços:

    Ctrl + Esc , Esc , ( Deslocamento + Separador ) x3 , Shift + F10 , T , seta para a direita , A

  3. Melhor ainda, algo como o Window Spy do AHK pode ajudá-lo a identificar e obter um tratamento direto para a classe da área de notificação, para que você possa programáticamente clicar com o botão direito do mouse nela. Algo como:

    ControlGet, handle, Hwnd,, TrayClockWClass1,,Notification Area
    

    ou este script:

    #NoTrayIcon
    #include <Array.au3>
    
    Dim $ctrlsize
    
    $ctrlsize=ControlGetPos("[CLASS]","","ReBarWindow321")
    
    ControlClick("[CLASS]","","ReBarWindow321","secondary",1,$ctrlsize[2],$ctrlsize[3]*0.5)
    MouseClick("primary",$ctrlsize[0]+$ctrlsize[2]+50,@DesktopHeight-215,1,1)
    
    Sleep(150)
    Send("t")
    

    O AHK é extremamente poderoso, e o fórum é um bom lugar para fazer perguntas. Na verdade, eu encontrei o script acima depois de uma pesquisa rápida lá, em um tópico que você vai querer ler intitulado Criando a barra de ferramentas na barra de tarefas do Windows .

por 22.02.2013 / 02:36
0

Eu também não consegui fazer algo semelhante automaticamente.

De qualquer forma. Eu fiz uma tarefa semelhante com uma combinação de scripts Autohotkey personalizados e o Criador de macro da Pulover ( link ). Nas opções você também pode optar por gravar o controleClick. De qualquer forma. Haverá problemas com certos controles personalizados e com o aplicativo Java.

    
por 22.02.2013 / 07:14