我在做一个模仿任务管理器的程序,其中遇到了一些问题,现请教下大家:1.我们操作系统自带的任务管理器中,怎样做到的实时更新信息的呢?不会是处理WM_TIME吧,那样效率太低了
   显示进程的ListCtrl怎样刷新的呢?每当有新进程都会更新,难道是拦截CreateProcess?
2.怎么样打开一个程序的属性对话框呢?就是在右击程序,点属性后弹出来的信息对话框
3.怎么样才能从窗口句柄到进程句柄?
问题可能有点难度,分就高些,希望知道的各位麻烦花一两分钟告诉我吧,感激不尽!

解决方案 »

  1.   

    1、系统的任务管理器就是定义刷新的,以为程序的各种信息随时都在变化,不可能实时更新。
    2、添加一个菜单资源,初始化的时候Load菜单并GetSubMenu,响应ListCtrl的右键消息,用TrackPopupMenu弹出菜单,响应菜单命令弹出对话框,可以用Create、ShowWindow显示非模态对话框。
    3、GetWindowThreadProcessId得到进程ID,再OpenProcess打开进程,等到句柄。
      

  2.   

    2.怎么样打开一个程序的属性对话框呢?就是在右击程序,点属性后弹出来的信息对话框
    SHELLEXECUTEINFO   sei;   
    sei.hwnd   =   hDlg;   
    sei.lpVerb   =   "properties";   
    sei.lpFile   =   "f:\\1.txt";   
    sei.lpDirectory   =   NULL;   
    sei.lpParameters   =   NULL;   
    sei.nShow   =   SW_SHOWNORMAL;   
    sei.fMask   =   SEE_MASK_INVOKEIDLIST;   
    sei.lpIDList   =   NULL;   
    sei.cbSize   =   sizeof(SHELLEXECUTEINFO);   
    ShellExecuteEx(&sei);
    3.怎么样才能从窗口句柄到进程句柄? 
      GetWindowThreadProcessId