Crear una ventana y enviar resultados

Esta sección es para preguntas sobre programación/scripting usando AutoHotkey.

Moderator: Flipeador

alfema
Posts: 32
Joined: 04 Sep 2015, 11:04

Crear una ventana y enviar resultados

Post by alfema » 11 Oct 2015, 12:54

Hola compañeros:

Tengo una rutina que busca datos en el portapapeles, quiero crear una ventana en la que ir mostrando los datos que busco y opcionalmente al final con un botón de aceptar, supongo que tengo que usar el comando GUI, pero estoy un poco perdido.

--
Saludos.

User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Crear una ventana y enviar resultados

Post by Flipeador » 11 Oct 2015, 18:23

Hola!
No entiendo bíen lo que quieres hacer, en el título indicas que quieres enviar resultados, pero no mencionas eso en el tema (¿de que?, ¿a [...]?).
¿que clase de datos?.
con un boton de aceptar, ¿que haga que?.
deja un script como ejemplo de lo que quieres hacer (no necesariamente que trabaje)...

Saludos!

alfema
Posts: 32
Joined: 04 Sep 2015, 11:04

Re: Crear una ventana y enviar resultados

Post by alfema » 12 Oct 2015, 14:01

Siento no haberme expresado bien Flipeador, te dejo parte de la rutina:

Code: Select all

pNomCli 	:= ""	; Nombre del Cliente
vTCSC := clipboard											       ; Copia el contenido de la consola
pNomCli 	:= BuscaTexto("Nombre cliente", vTCSC, 2)

BuscaTexto(wQue, wDonde, wCual) {
	wResultado := ""
	wCR        := "`r"
	StringLen, wLong, wQue										; Obtiene la longitud de lo buscado
	wLong++													; Le suma 1
	wPos       := 0
	wPosI      := 0

	StringGetPos, wPos, wDonde, %wQue%, L%wCual%				; Busca
	If (wPos != -1)												; Si la encuentra
		{
		wPosI := wPos + wLong									; Suma a la posición la longitud de lo buscado
		StringGetPos, wPos, wDonde, %wCR%,, wPosI				; Busca el salto de línea posterior
		If (wPos != -1)											; Si lo encuentra, que debería
			{
			StringMid, wResultado, wDonde, wPosI, wPos - wPosI		; Obtiene el resultado
			wResultado :=  Trim(wResultado)						; Quita espacios en blanco y tabulaciones
			}
		}

	SendInput %wQue% %wResultado%{enter}
	Sleep 250
	return wResultado
}
Esto es un ejemplo, la rutina busca muchos más datos, mientras los busca quiero que el SendInput vaya mostrando el resultado en una ventana, cuando termine de buscar todo en la ventana muestre un botón de Aceptar para cerrarla.

Un ejemplo del portapeles:
Identificación del cliente AGK578340
Nombre cliente Perico de los palotes
Dirección cliente la de su casa
Supongo que una opción sería abrir un bloc de notas en blanco, modificar su posición en pantalla y tamaño, ponerlo en primer plano y enviarlo el resultado, pero creo que se puede hacer con GUI.

--
Saludos

User avatar
Flipeador
Posts: 1204
Joined: 15 Nov 2014, 21:31
Location: Argentina
Contact:

Re: Crear una ventana y enviar resultados

Post by Flipeador » 12 Oct 2015, 18:00

No entiendo bién como deben obtenerse los datos (que parte exactamente del texto), pero aquí tienes un ejemplo:

Code: Select all

;Contenido de la consola
vTCSC := "
(LTrim
Identificación del cliente AGK578340
Nombre cliente Perico de los palotes
Dirección cliente la de su casa
)"

Gui, +AlwaysOnTop +HWND_G +LastFound
Gui, Add, Edit, x10 y10 w610 h215 vMiEdit
Gui, Add, Button, x505 y230 w115 h25 gAceptar vMiButton, Aceptar
Gui, Show, w628 h260
WinWait, ahk_id %_G%
WinActivate
WinWaitActive

GuiControl, Disable, MiButton
Loop, Parse, % vTCSC, `n, `r
{
	GuiControlGet, MiEdit
	GuiControl,, MiEdit, % Trim(Trim(MiEdit, A_Space A_Tab "`n`r") "`n" A_LoopField "`n", A_Space A_Tab "`n`r")
	Sleep 750
} GuiControl, Enable, MiButton
return
 
 GuiEscape:
 GuiClose:
Aceptar:
ExitApp
return
usas GuiControl para obtener y establecer el texto, o tambien puedes usar ControlGetText, ControlSetText, ControlSend...

Slds.

Post Reply

Return to “Pedir Ayuda”