el 05-20-2010 06:14 AM
Hola a todos,
se puede usar la funcion FindWindow() en LabWindows?
Uso el LabWindows 8.5
Gracias por toda respuesta.
Abel
el 05-20-2010 10:23 AM
Hi Abel, puedes usar FindWindow en tus programas para obtener los window handles, simplemente tienes que incluir el windows.h en él.
Estas líneas muestran el uso del FindWindow para obtener el handle al programa sea por class name sea pro título de la ventana. El nombre de la clase del CVI lo he obtenido desde el programa mismo: deberías obtener el mismo handle en todas las instrucciones.
int hWnd, hWnd2, hWnd3;
char msg[512];
// Esto me sirve para obtener la clase del programa, pasando por su identificativo en el sistema
// int GetClassName (
// HWND hWnd, // handle to window
// LPTSTR lpClassName, // class name
// int nMaxCount // size of class name buffer
// );
hWnd = GetCVIWindowHandle ();
GetClassName ((HWND)hWnd, msg, 511);
// Aquí obtengo el handle desde el class name
// HWND FindWindow (
// LPCTSTR lpClassName, // class name
// LPCTSTR lpWindowName // window name
// );
if (!(hWnd2 = (int)FindWindow (msg, NULL))) {
// Ejemplo de muestra de un error
// DWORD GetLastError(VOID);
// DWORD FormatMessage(
// DWORD dwFlags, // source and processing options
// LPCVOID lpSource, // message source
// DWORD dwMessageId, // message identifier
// DWORD dwLanguageId, // language identifier
// LPTSTR lpBuffer, // message buffer
// DWORD nSize, // maximum size of message buffer
// va_list *Arguments // array of message inserts
// );
FormatMessage (
FORMAT_MESSAGE_FROM_SYSTEM, // source and processing options
NULL, // message source
GetLastError (), // message identifier
0, // language identifier
msg, // message buffer
511, // maximum size of message buffer
0 // array of message inserts
);
}
// Aquí obtengo el handle desde el título de la ventana
hWnd3 = (int)FindWindow (NULL, "Nombre programa");
// Vamos a ver si los tres son iguales
sprintf (msg, "GetCVIWindowHandle: %d\n\n", hWnd);
sprintf (msg, "%sFindWindow from handle: %d\n", msg, hWnd2);
sprintf (msg, "%sFindWindow from name: %d\n", msg, hWnd3);
MessagePopup ("FindWindow", msg);