[WIN32API]別プロセスのウィンドウハンドル取得について
Posted: 2013年3月23日(土) 21:26
Fooです。
WIN32API ChildWindowFromPoint WindowFromPoint についての質問です。
WIN32APIを用い、一定時間ごとに現在のマウス座標を含むウィンドウを最小化するプログラムを書こうと考えたのですが、
ユーザーが立ち上げた応用アプリケーションのウィンドウと、システムが立ち上げたウィンドウとの区別がつけられずに困っています。
具体的には、スタートメニュー(窓ロゴのやつ)や、デスクトップ上のアイコンなどの ウィンドウハンドルを取得し、最小化しようとしてしまいます。
void contact(){
POINT pt;
GetCursorPos(&pt);
auto hWnd1 = WindowFromPoint(pt);
if(hWnd1){
ScreenToClient(hWnd1,&pt);
auto hWnd2 = ChildWindowFromPoint(hWnd1,pt);
if(hWnd2){
hWnd1 = hWnd2;
}
}
ShowWindow(hWnd1,SW_MINIMIZE);
}
取得したウィンドウハンドルが、ユーザーによって起動されたソフトのウィンドウのものなのか、
OSが起動したものなのかを区別する方法があればご教授お願いできませんでしょうか。
WIN32API ChildWindowFromPoint WindowFromPoint についての質問です。
WIN32APIを用い、一定時間ごとに現在のマウス座標を含むウィンドウを最小化するプログラムを書こうと考えたのですが、
ユーザーが立ち上げた応用アプリケーションのウィンドウと、システムが立ち上げたウィンドウとの区別がつけられずに困っています。
具体的には、スタートメニュー(窓ロゴのやつ)や、デスクトップ上のアイコンなどの ウィンドウハンドルを取得し、最小化しようとしてしまいます。
void contact(){
POINT pt;
GetCursorPos(&pt);
auto hWnd1 = WindowFromPoint(pt);
if(hWnd1){
ScreenToClient(hWnd1,&pt);
auto hWnd2 = ChildWindowFromPoint(hWnd1,pt);
if(hWnd2){
hWnd1 = hWnd2;
}
}
ShowWindow(hWnd1,SW_MINIMIZE);
}
取得したウィンドウハンドルが、ユーザーによって起動されたソフトのウィンドウのものなのか、
OSが起動したものなのかを区別する方法があればご教授お願いできませんでしょうか。