別のプロセスのウィンドウのタイトルを取得

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

別のプロセスのウィンドウのタイトルを取得

#1

投稿記事 by みけCAT » 9年前

Dev-Cpp4.9.9.2、gcc3.4.2です。
Windows Vista SP2 32ビットです。
コンパイルオプションは
-Werror-implicit-function-declaration -Wformat -Wshadow -mwindows
です。
他のプロセスのウィンドウのタイトルを取得したいです。
しかし、このコードでは、空欄になってしまいます。
Shiftキーを押さずに「ウィンドウを選択」ボタンを押すと、
メインウィンドウを一瞬隠してからフォアグラウンドウィンドウを取得します。
Shiftキーを押しながら「ウィンドウを選択」ボタンを押すと、
メインウィンドウの左上にあるウィンドウを取得します。
「ウィンドウを選択」ボタンの下のエディットボックスに選択したウィンドウのタイトルが表示されれば成功です。
どうすればうまくいくか教えてください。
Vistaでは無理なら、そう書き込んでください。
よろしくお願いします。
添付ファイル
getwindowtexttest.zip
プログラムです。
(8.4 KiB) ダウンロード数: 19 回
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

アバター
Cir
記事: 32
登録日時: 9年前
住所: 近畿地方

Re: 別のプロセスのウィンドウのタイトルを取得

#2

投稿記事 by Cir » 9年前

以下のコードで取得できました。ただ、実行環境がWindowXPなので、Vistaでは取得可能か確認できていません。

コード:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
	char TitleStr[512] = "";
	HWND hTargetWindow;

	POINT p = {0, 0};
	
	hTargetWindow = WindowFromPoint(p);
	
	if(hTargetWindow)
	{
		GetWindowText(hTargetWindow, TitleStr, sizeof(TitleStr));
		
		MessageBox(NULL, TitleStr, "", MB_OK);
	}
	
	return 0;
}

アバター
Ciel
記事: 252
登録日時: 9年前

Re: 別のプロセスのウィンドウのタイトルを取得

#3

投稿記事 by Ciel » 9年前

私もCirさんの方法でできました。

WIndows7 32bitです。
oui C'est la Vie♪

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: 別のプロセスのウィンドウのタイトルを取得

#4

投稿記事 by みけCAT » 9年前

提示していただいたコードでうまくいきました。
自分のプログラムに組み込んでもうまくいきました。
ありがとうございました。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

閉鎖

“C言語何でも質問掲示板” へ戻る