我的email:  [email protected]  我给你源代码

解决方案 »

  1.   

    BOOL EnumWindows(
      WNDENUMPROC lpEnumFunc,  // pointer to callback function
      LPARAM lParam            // application-defined value
    );
      

  2.   

    HWND hWnd = NULL;
    hWnd = ::GetDesktopWindow();
    if(!hWnd) return;
    char str[1024] = {{0}};
    while( hWnd = ::GetNextWindow(hWnd, GW_HWNDNEXT))//轮寻子窗口
    {GetWindowText(hWnd, str, 1024);}
      

  3.   

    源代码也给我好不好?[email protected]
      

  4.   

    sup_free():
    thank you very much
    mail to:[email protected]
      

  5.   

    : luckyegg(幸运蛋) 说的有点合拍
      

  6.   

    sup_free():
    我使用::GetNextWindow(hWnd, GW_HWNDNEXT)时,它总是返回NULL。用这个办法我是不行了。
    还是用EnumWindows函数?看了一下MSDN,这个函数使用好象有点麻烦?请教
      

  7.   

    ENUMWINDOW
    FINDWINDOW
    FINDWINDOWFROMPOINT
    GETWINDOW
    ENUMCHILDWINDOW
    这些api组合起来用让你自由控制任何定层窗口和它们的子窗口或者控件窗口
      

  8.   

    EnumWindows(
      WNDENUMPROC EnumWindowsProc,
      LPARAM lParam)

    BOOL CALLBACK EnumWindowsProc(HWND hwnd, LPARAM lParam)
    {
      String str;
      ::GetWindowText(hwnd,str);
    }            
      

  9.   

    #include <windows.h>
    #include <stdio.h>BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam);int main()
    {
    EnumWindows((WNDENUMPROC)EnumWindowsProc, 0); return 0;
    }BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam)
    {
    char buf[255];
    SendMessage(hwnd,WM_GETTEXT,254,(LPARAM)buf);
    printf("%s\n",buf);
    return TRUE;
      

  10.   

    我使用了这三个API函数BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam),GetWindowText,EnumWindows((WNDENUMPROC)EnumWindowsProc,(LPARAM)this);把所有的本机运行的程序和窗口都列出来了,好多呀,包括在系统后台的程序都列出来了!
    用什么方法可以只列出有窗口的程序,后台程序不列出,怎么控制?
    请教大家。
      

  11.   

    EnumWindow is the right way
      

  12.   

    fengfeng1_1(郁闷啊郁闷):怎么加条件限制,你能够具体一点吗?
      

  13.   

    cwgxz(剑竹)兄,要学的东西太多了,自己摸索要10天的东西,可能问别人1分钟就搞定了,你会选择什么方法呢?
    不懂就问,没有什么错吧?事必躬亲是很累的,呵呵!
    我认为程序员最需要的就是多学习点,谦虚点,踏实点。你说我的时候表现出你比较浮躁哦。嘿嘿!
      

  14.   

    看 hydnoahark(诺亚方舟) 的. 可以加一些條件.比如:
    BOOL CALLBACK EnumWindowsProc(HWND hwnd,DWORD lParam)
    {
    char buf[255];
    SendMessage(hwnd,WM_GETTEXT,254,(LPARAM)buf);
    if(!GetParent(hwnd)&&IsWindowVisible(hwnd)&&strcmp(buf, "")!=0)
    printf("%s\n",buf);
    return TRUE;
      

  15.   

    大家看来都是高手…!
    我还是先回去学API吧!
      

  16.   

    #include "stdio.h"
    #include "windows.h"BOOL _stdcall EnumWindowsProc(HWND hwnd, LPARAM lParam)
    {
    char win_name[100];
     
    if(IsWindowVisible(hwnd) && (GetParent(hwnd)==NULL) && GetWindow(hwnd,GW_OWNER)==NULL) 
    {
    GetWindowText(hwnd,win_name,100);
    if(win_name[0]!=0x0)
    printf("The window is %s\n",win_name);

    return TRUE;
    }            
    void main ()
    {
    DWORD ThreadID=GetCurrentThreadId();
    HDESK hDesk=GetThreadDesktop(ThreadID);
    int result=EnumDesktopWindows(hDesk,&EnumWindowsProc,NULL);
    }