Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Enviar teclas a otras aplicaciones (https://www.clubdelphi.com/foros/showthread.php?t=53086)

cmm07 09-02-2008 22:10:25

Enviar teclas a otras aplicaciones
 
Hola, disculpen por molestar nuevamente pero necesito de vuestra ayuda:


mi problema es que necesito urgenete enviar la tecla ALT+ENTER a una aplicacion del exterior, por ejemplo, ejecuto una aplicacion bajo MSDOS, y quiero que mi app envie dicha tecla para ponerla a pantalla completa (yo se que se puede hacer de varias formas, pero necesito por modo de instruccion y por modo de teclas...)..


Gracias denuevo por su ayuda

SALU2

QUE EL EQUIPO CLUBDELPHI SIGA CRECIENDO..:D:D:D:D

PepeLolo 11-02-2008 00:15:16

Si la aplicación destino es en delphi, lo tienes facil, tu apliación delphi puede recibir parámetros y es en este parámetro donde le debe llegar la secuencia que necesitas. Después compruebas si te ha llegado un valor en el parámetro y si este corresponde con el que deseas, poner la ventana de la aplicación delphi a pantalla completa. TuPantalla.WindowState := wsMaximized;

cmm07 11-02-2008 14:33:14

Gracias, pero necesito enviar tecla ALT+ENTER....

SLU2

ixMike 11-02-2008 14:37:50

Cita:

Empezado por cmm07 (Mensaje 264867)
Gracias, pero necesito enviar tecla ALT+ENTER....

SLU2

¿Eso no son dos teclas? :D

Necesitarás obtener el Handle de la ventana a la que se la quieres mandar con FindWindow y/o FindWindowEx, y después mandarle la combinación con un SendMessage.

Pero no estoy muy puesto en el tema, esperemos que se pase por aquí cHackAll y te (nos) diga exactamente cómo se hace. ;)


Salu2.

cHackAll 11-02-2008 23:41:53

Cita:

Empezado por ixMike (Mensaje 264870)
¿Eso no son dos teclas? :D

Necesitarás obtener el Handle de la ventana a la que se la quieres mandar con FindWindow y/o FindWindowEx, y después mandarle la combinación con un SendMessage.

Pero no estoy muy puesto en el tema, esperemos que se pase por aquí cHackAll y te (nos) diga exactamente cómo se hace. ;)


Salu2.

Encontré lo que comentaban aquí, sin embargo y para variar hice este code que me parece un poco mas adecuado;
Código Delphi [-]
function AttachConsole(dwProcessId: Cardinal): LongBool; stdcall; external 'kernel32.dll';
function SetConsoleDisplayMode(hOutputHandle, dwFlags: Cardinal; lpNewScreenBufferDimensions: PCOORD): LongBool; stdcall; external 'kernel32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var hWnd, dwProcessId: Cardinal;
begin
 hWnd := FindWindow('ConsoleWindowClass', nil); // si la consola tiene un 'Caption', ponganlo en el segundo parámetro 
 GetWindowThreadProcessId(hWnd, dwProcessId);
 AttachConsole(dwProcessId);
 SetConsoleDisplayMode(GetStdHandle(STD_OUTPUT_HANDLE), 1, nil);
 FreeConsole;
 SetForegroundWindow(hWnd);
 keybd_event(VK_RETURN, $1C, 0, 0);
end;

PD: Escuché los llamados de auxilio :)

Saludos

cmm07 12-02-2008 01:33:46

[cHackAll] gracias, muchas gracias, el codigo me anduvo de maravilla

como siempre, agradezco personalmente a él y a clubdelphi que me aclara mis dudas

gracias
y
SALU2


La franja horaria es GMT +2. Ahora son las 05:44:32.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi