![]() |
no encuentra mi aplicacion FindWindow
se que algo debo estar haciendo mal estoy probando un teclado virtual y empece con el notepad
Var manejador : THandle; h: HWND; Begin h := FindWindow('Notepad', nil); if h = 0 then ShowMessage('No se encontro la Aplicacion') else begin SetForegroundWindow(h); y me funciono bien pero cuando en Findwindow cambie 'Notepad' por el nombre de mi aplicacion no funciona, inmediatamente me indica que no encontro la aplicacion, alguien sabra que estoy haciendo mal? de antemano les agradezco su tiempo, saludos! |
Intentas hacer una aplicación que solo pueda ejecutarse en una sola instancia? Si es así, esa no es la forma recomendada de hacerlo. Los componentes Jedi incluyen un componente para hacer evitar que tu aplicación se ejecute más de una vez al mismo tiempo. El componente se llama JvgSingleInstance y sólo necesitas colocarlo en algún formulario de tu aplicación.
Saludos. |
Prueba con esta función:
Llámala en el evento OnCreate del MainForm de tu aplicación, detectará si ya hay ejecutándose otra aplicación con el mismo título y te devolverá ese valor. Suerte. |
Checa la ayuda Windows SDK
Ey amigo, checa la ayuda de Windows SDK (menú Help-> Windows SDK) y busca FindWindow.
Aqui nos dice: The FindWindow function retrieves the handle to the top-level window whose class name and window name match the specified strings. This function does not search child windows.
El primer parámetro de FindWindow es el nombre de la clase de la ventana que buscas y el segundo parámetro es el nombre o el caption de la ventana que buscas. |
Hay dos formas de llamar a la función findWindows, como ya te han dicho.
* Utilizando Título de la ventana * Utilizando el nombre de la clase. Para el notepad has utilizado el nombre de la clase y te ha funcionado, ya que la ventana del Notepad tiene como nombre de clase "notepad". Si quieres utilizarlo con tu aplicación debes saber cual es el nombre de la clase del form que estás llamando; Para saberlo puedes utilizar varias utilizades (yo uso WinExplorer, aunque seguro que hay más). Si no puedes encontrar el nombre de la clase, siempre te queda utilizar el otro parámetro y llamar a la función FindWindows utilizando el título de la ventana, aunque esa forma creo que es menos segura. |
|
La franja horaria es GMT +2. Ahora son las 12:16:49. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi