Bom dia Eldorado.
Executar uma série de ações do mouse em uma janela minimizada é algo possível, mas um tanto quanto problemático de deixar bem sincronizado e com boa confiabilidade. Isso acontece por razões de como o próprio Windows gerencia o cursor.
Vejo, no entanto, que você quer
copiar uma parte do texto de uma janela minimizada. Nesse caso, eu sugiro que tente usar o comando WinGetText aliado a uma rotina de manipulação do texto (buscando a parte do texto por palavras-chave ou por posição do caractere no texto). Os comandos que vão te ajudar nisso são os comandos de String (
StringReplace,
StringTrimLeft,
StringTrimRight,
SubStr(),
StringGetPos,
StringSplit, etc) e também, se você quiser ser mais detalhista no filtro do texto, as funções RegEx (
RegExMatch() e
RegExReplace())
Vou te dar um exemplo: O código abaixo abre o notepad, escreve um texto, e depois minimiza ele. Daí vem uma msgbox avisando que vai se preparar para coletar o texto daquela janela e daí, quando você clicar em OK, ele vai pegar o texto da janela minimizada e dele recortar os trechos-chave através de uma rotina de comandos de tratamento de texto que isolam logicamente as informações. Nesse caso, a rotina vai isolar os sabores indicados em cada linha.
Code: Select all
Run, Notepad.exe
WinWaitActive, Sem título - Bloco de notas
Send, Exemplo de Texto a ser escrito. O morcego gosta de: chocolate. `nA cabra gosta de: baunilha.`nO elefante gosta de: morango.
WinMinimize, Sem título - Bloco de notas
Msgbox, 0x1, Vamos começar, Ok, já temos a janela minimizada. Agora vamos coletar e isolar as informações dos sabores diretamente dela!
WinGetText, TEXTO_COMPLETO, Sem título - Bloco de notas
StringGetPos, POSICAO_DOS_DOIS_PONTOS, TEXTO_COMPLETO, :
CARACTERES_A_CORTAR := POSICAO_DOS_DOIS_PONTOS + 1
StringTrimLeft, TEXTO_COMPLETO, TEXTO_COMPLETO, %CARACTERES_A_CORTAR%
StringGetPos, POSICAO_DO_LINEFEED, TEXTO_COMPLETO, `.
PRIMEIRO_SABOR := SubStr(TEXTO_COMPLETO, 1, POSICAO_DO_LINEFEED)
msgbox % "Primeiro sabor: " . PRIMEIRO_SABOR
StringGetPos, POSICAO_DOS_DOIS_PONTOS, TEXTO_COMPLETO, :
CARACTERES_A_CORTAR := POSICAO_DOS_DOIS_PONTOS + 1
StringTrimLeft, TEXTO_COMPLETO, TEXTO_COMPLETO, %CARACTERES_A_CORTAR%
StringGetPos, POSICAO_DO_LINEFEED, TEXTO_COMPLETO, `.
SEGUNDO_SABOR := SubStr(TEXTO_COMPLETO, 1, POSICAO_DO_LINEFEED)
msgbox % "Segundo sabor: " . SEGUNDO_SABOR
StringGetPos, POSICAO_DOS_DOIS_PONTOS, TEXTO_COMPLETO, :
CARACTERES_A_CORTAR := POSICAO_DOS_DOIS_PONTOS + 1
StringTrimLeft, TEXTO_COMPLETO, TEXTO_COMPLETO, %CARACTERES_A_CORTAR%
StringGetPos, POSICAO_DO_LINEFEED, TEXTO_COMPLETO, `.
TERCEIRO_SABOR := SubStr(TEXTO_COMPLETO, 1, POSICAO_DO_LINEFEED)
msgbox % "Terceiro sabor: " . TERCEIRO_SABOR
O funcionamento da rotina acima é o seguinte: analisando o texto em questão, vi que os nomes dos sabores veem sempre antes de dois pontos. Vi também que o sabor está sempre antes de um ponto final. Assim, uso o comando StringGetPos para encontrar a primeira posição de caractere de dois pontos no texto. Depois, recorto tudo que estiver à esquerda dessa posição + 1 (para recortar o dois pontos juntos) e depois, do texto que sobrar, pego tudo do início (ou seja, de depois dos dois pontos) até a posição do linefeed, que é o marcador de término da linha
`n.
Depois disso é só repetir a rotina que o próximo sabor já vai ser coletado também. Dava até para fazer uma função e chamar ela 3x com o restantes da string após cada corte e coleta.
Quando quiser isolar informações de textos, procure por palavras ou acentuação chaves na hora de planejar rotinas de tratamento de texto para isolamento de informações. Para fazer isso, basta ler o texto a ser trabalhado e perceber o que muda e o que não muda nele. Use o que não muda para isolar o que muda. Dificilmente uma determinada janela terá um texto totalmente randômico, mas se tiver, você ainda poderá elaborar uma lista com as possíveis palavras chaves para determinar onde começam e onde terminam os trechos importantes e assim conseguir efetuar a rotina.
Espero que tenha ficado claro o que quiz dizer, mas se ainda tiver dúvida, basta postar aí embaixo