|
リストビューは、ダイアログに貼り付けてあります
|
case WM_INITDIALOG:
CenterWindow( hDlg );
hList = GetDlgItem(hDlg,IDC_LISTVIEW);
ListView_AddTitle( hList, LVCFMT_LEFT, 120, "ウインドウハンドル" );
ListView_AddTitle( hList, LVCFMT_LEFT, 200, "タイトル" );
ListView_AddTitle( hList, LVCFMT_LEFT, 200, "クラス" );
ListView_AddTitle( hList, LVCFMT_LEFT, 100, "プロセスID" );
EnumWindows( EnumWindowsProc, (LPARAM)(hList) );
return TRUE;
| |
|
|
|
ListView_DeleteAllItems はマクロです
|
|
|
if ( LOWORD(wParam) == IDC_NOTEPAD ) {
ProcessId = LoadAndGetProcessId("notepad.exe");
wsprintf( buffer, "%ld", ProcessId );
SetWindowText(GetDlgItem( hDlg, IDC_PROCESSID),buffer);
ListView_DeleteAllItems( hList );
EnumWindows( EnumWindowsProc, (LPARAM)(hList) );
nRow = ListView_GetItemCount( hList );
for( i = 0; i < nRow; i++ ) {
ListView_GetItemText(
hList,
i,
3,
buffer,
512
);
if ( (int)ProcessId == atoi( buffer ) ) {
ListView_GetItemText(
hList,
i,
0,
buffer,
512
);
SetWindowText(GetDlgItem( hDlg, IDC_HWND),buffer);
}
}
}
| |
|
|
|
33 というID は、「SPY++」で調べています。メモ帳のメニューにある処理は全てこの方法でアクセス可能なはずです
起動側でクリップボードにデータを転送しておいて、メモ帳の「貼り付け」を実行させれば、データをメモ帳で表示する
事もできます
この方法は、メモ帳以外のアプリケーションにも利用可能です
また、PostMessage を使用してメモリのハンドルを受け渡し、アプリケーション間で簡単な通信を行なう事も可能です
|
|