Minimieren eines Fensters(extern) verhindern?
-
Hi, gibt es eine Möglichkeit das Minimieren von einem Externen Fenster zu verhindern. D.h. dass es immer im Vordergrund bleibt?
Würde mich über ein paar Antworten freuen.
Gruß kf
-
So hab nun mal versucht, per SetWindowLong mal die Nachrichten des WndProc abzufangen.
problem: Access Denied beim setzen von SetWindowLong (Jemand ne Ahnung?
)WNDPROC OldProc; LRESULT NewProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ); int main(){ HWND hWnd = FindWindow(NULL,"External Window"); if( hWnd ) { printf("\nWindow found, try to inject Window"); if( (OldProc=(WNDPROC) SetWindowLong( hWnd, GWL_WNDPROC, (LONG)NewProc ))) { } else { char buffer[512]; sprintf( buffer, "\nERROR: %d", ::GetLastError() ); printf( buffer ); } while( true ){ Sleep(1000); } } else { printf("\nERROR: window not found"); } printf("\nFinished"); getchar(); return 1; } LRESULT NewProc( HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam ) { //return CallWindowProc( OldProc, hWnd, Msg, wParam, lParam ); //lpPrevWndFunc printf("\nTest"); return CallWindowProc( OldProc, hWnd, Msg, wParam, lParam ); }ERROR: #5 für GetLastError() - Access Denied
-
Versuchs doch mal mitm Hook:
SetWindowsHookEx http://msdn2.microsoft.com/en-us/library/ms644990.aspx
CBTProc http://msdn2.microsoft.com/en-us/library/ms644990.aspx
The CBTProc hook procedure is an application-defined or library-defined callback function used with the SetWindowsHookEx function. The system calls this function before activating, creating, destroying, minimizing, maximizing, moving, or sizing a window;
-
du kannst ein fenster, das nicht zu deinem thread gehört, subclassen.
-
Hm, okay und wie kann ich das evt. andersweitig bewerkstelligen?
-
dann schau mal einen Beitrag unter dir

--> einen hook setzen

ggf. vorher mit DLL erstellung auseinander setzen, bei google findest du aber gute beispiele, die den umgang mit DLLs und dem exportieren von funktionen erklären
-
Ah okay, Hooks funktionieren, danke für die Info
Werd das mal ausprobieren.