○他のプログラムのウインドウを列挙--------------------------------------------------

#include <stdio.h>
#include <windows.h>

BOOL  CALLBACK  EnumWndProc( HWND hWnd, LPARAM lParam )
{
	char buff[256]="";
	GetWindowText( hWnd,buff, sizeof(buff));//ウィンドウ名を取得
	printf("%s\n",buff);
	return true;
}

int main(int argc, char* argv[])
{
	EnumWindows( EnumWndProc, (LPARAM)NULL );
	return 0;
}


○他のプログラムのウインドウサイズを変更-------------------------------------------

#include <stdio.h>
#include <windows.h>

BOOL  CALLBACK  EnumWndProc( HWND hWnd, LPARAM lParam )
{
	char buff[256]="";
	GetWindowText( hWnd,buff, sizeof(buff));
	if(strcmp(buff,(char*)lParam)==0){//名前が一致したら、
		SetWindowPos(hWnd,HWND_TOP,0 ,0 ,100,100,SWP_SHOWWINDOW);//ウインドウの位置とサイズを変更
	}
	return true;
}

int main(int argc, char* argv[])
{
	LPARAM lParam=(LPARAM)"無題 - メモ帳";//検索するウィンドウの名前
	EnumWindows( EnumWndProc, (LPARAM)lParam);
	return 0;
}

○他のプログラムのウインドウハンドルを取得する----------------------------------------

#include <stdio.h>
#include <string.h>
#include <windows.h>

struct  cell{
	HWND hWnd;
	char WindowName[256];
};

BOOL  CALLBACK  EnumWndProc( HWND hWnd, LPARAM lParam )
{
	char buff[256]="";
	GetWindowText( hWnd,buff, sizeof(buff));//ウインドウの文字を取得して、
	if(strcmp(buff,((cell*)lParam)->WindowName)==0){//名前が一致したら、
		((cell*)lParam)->hWnd = hWnd;//ウィンドウハンドルを渡す
	}
	return true;
}

int main(int argc, char* argv[])
{
	cell c;
	c.hWnd =NULL;
	strcpy(c.WindowName,"無題 - メモ帳");//検索するウィンドウの名前

	EnumWindows( EnumWndProc, (LPARAM)&c);

	if(c.hWnd != NULL){
		//目的のウインドウハンドルが取得できました
		SetWindowPos(c.hWnd,HWND_TOP,0 ,0 ,100,100,SWP_SHOWWINDOW);//ウインドウのサイズを変更
	}
	return 0;
}



▲トップページ > Windows と C++