Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 11-10-2019
MaxiDucoli MaxiDucoli is offline
Miembro
 
Registrado: feb 2006
Posts: 134
Poder: 19
MaxiDucoli Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
Debes concretar alguna cosa en tu pregunta y tenes en cuenta que para cerrar una aplicación puede no ser efectivo el envío de WM_CLOSE. Este mensaje cierra una ventana. de forma que eso hará. Puede ser que la ventana en cuestión no sea la principal, o que la aplicación no tenga ventanas. El Mensaje WM_QUIT puede ser mandado al hilo principal mediante PostThreadMessage pero tampoco es seguro que. Finalmente puedes usar TerminateProcess Esta opción acaba con el proceso sobre el que se tiene permisos pero no de forma natural con lo que no podrá tomar las acciones previstas para su cierre.

Por otro lado preguntas como controlar otro proceso mediante la tecla espacio y muestras un código en el que esa tarea la realiza un procedimiento llamado MensajeFmedia pero cuyo código no muestras. Difícil poder analizarlo en esta condiciones ¿no crees? Revisa este tema: ¿Cómo simular de "verdad" las teclas SHIFT+TAB?
seguro que te va a ayudar.


Saludos.
Hola, gracias por la respuesta.
Disculpa, es que ese precedimiento lo tengo en otra unit y por eso no me di cuenta de ponerlo.

No hace más que esto:

Esto es el que manda el espacio a Fmedia.exe
Código Delphi [-]
procedure MensajeFMedia (WindowCaption : String);
var
WindowFmedia : HWND;
begin
WindowFmedia := FindWindowExtd(WindowCaption);
                  if IsWindow(WindowFmedia) then
                  begin
                  PostMessage(WindowFMedia, WM_KEYDOWN, VK_SPACE, 0);
                 // h := 0;
                  end;
end;


Esto es lo que me busca la ventana de Fmedia.exe y obtiene su Handle.
Código Delphi [-]
function FindWindowExtd(partialTitle: string): HWND;
var
  hWndTemp: hWnd;
  iLenText: Integer;
  cTitletemp: array [0..254] of Char;
  sTitleTemp: string;
begin
  hWndTemp := FindWindow(nil, nil);
  while hWndTemp <> 0 do begin
    iLenText := GetWindowText(hWndTemp, cTitletemp, 255);
    sTitleTemp := cTitletemp;
    sTitleTemp := UpperCase(copy( sTitleTemp, 1, iLenText));
    partialTitle := UpperCase(partialTitle);
    if pos( partialTitle, sTitleTemp ) <> 0 then
      Break;
    hWndTemp := GetWindow(hWndTemp, GW_HWNDNEXT);
  end;
  result := hWndTemp;
end;

La verdad es que no entiendo como hacerlo. Hace rato que estoy con esto y de a poco voy aprendiendo cosas nuevas que nunca he usado.

Mi idea es Ejecutar un emulador, que se pause el Fmedia, que al cerrarse el emulador, se quite la pausa del Fmedia y se cierren las ejecuciones de fondo que se largaron con el emulador.

Quizás ni se pueda hacer lo que quiero, pero no pierdo nada con tratar.

Muchas gracias!!!!!
Responder Con Cita
  #2  
Antiguo 11-10-2019
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.198
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Para la simulación del teclado debes poner el foco en la ventana que te interesa (SetFocus) y luego usar SimKey que te describí en el hilo que te recomendé.

Saludos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Usar TServerSocket y TClientSocket para enviar "streams" más o menos "grandes" dec Internet 9 04-08-2015 16:11:50
"Bug" de automatización COM al usar WideChar como parámetro Al González [GH Freebrary] 3 09-01-2014 18:21:46
Error delphi "valor no puede ser nulo nombre del parametro key" nickolas Varios 0 21-08-2012 02:07:45
funcion con parametro "raro" emeceuy Varios 3 26-11-2008 13:41:46
Cómo insertar "NULL" en un parametro de INSERT en SQL Joselito SQL 4 23-10-2005 00:17:35


La franja horaria es GMT +2. Ahora son las 10:27:16.


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
Copyright 1996-2007 Club Delphi