2009-06-23 27 views

答えて

5

EnumWindows()です。コールしてコールバックを提供します。見つかったウィンドウごとにコールバックを呼び出し、そのウィンドウにハンドルを渡します。

次に、ハンドルを使用してウィンドウパラメーターを照会し、それが関心のあるものかそれとも何らかの操作を行うかどうかを判断できます。

+0

は私が*その*名前を推測している必要がありますね。ありがとう! – JustJeff

3

あなたはUSER32.DLLでEnumDesktopWindows機能を使用したいと思います。

正しいAPIコールを指し示すためのC#コードがいくつかあります。私はこれがC言語でどのように見えるかはわかりませんが、あなたはそのアイディアを得ています。

[DllImport("user32.dll")] 
private static extern int EnumDesktopWindows(IntPtr hDesktop, EnumWindowsProc ewp, int lParam); 
0

私は例を考え出しは、プロセス上のより多くの光を当てることができ

#include <windows.h> 

BOOL CALLBACK printVisibleWindows(HWND wnd, LPARAM lParam) 
{ 
    if(!IsWindowVisible(wnd))return 1; 
    int length = GetWindowTextLength(wnd); 
    if(!length)return 1; 
    length++; 
    TCHAR *buffer = (TCHAR*)malloc(length); 
    GetWindowText(wnd, buffer, length); 
    printf("%p %s\n", wnd, buffer); 
    free(buffer); 
    return 1; 
} 

int main() 
{ 
    DWORD dwThreadId = GetCurrentThreadId(); 
    HDESK hDesktop = GetThreadDesktop(dwThreadId); 
    EnumDesktopWindows(hDesktop, printVisibleWindows, 0); 
    return 0; 
} 
関連する問題