应用程序的启动和控制 1.如何知道系统中有哪些应用程序可以运行? 也就是说开始菜单的内容如何读取,最好不是简单地搜索"Start Menu"目录 使用SHGetSpecialFolderLocation()函数获得"Start Menu"目录 。 相关头文件: #include "winnetwk.h" #include "shlobj.h" 2.如何自动启动指定的应用程序? 当然,还包括如何指定. 比如用LNK文件实现,启动以后还要获得它的主窗口句柄等信息。 可使用CreateProcess(),WinExeC()或ShellExecute()函数。 获得别的程序主窗口句柄似乎只能用FindWindow()程序中启动的其它程序(进程 )可在启动后调用GetForgroundWnd()获得窗口句柄。 用GetWindow, EnumWindow都只能找到自己程序的路径和文件名但是如果事先不知 道别的应用程序的文件名, 怎么FindWindow呢? 可以用这样的方法: HWND hwndT; for (hwndT = GetFirstChild(GetDesktopWindow()); IsWindow(hwndT); hwndT = GetNextSibling(hwndT)) { // ... } 这是个宏,在里定义,实际就是GetTopWindow。 3. 如何向这些应用程序发送信息, 控制它们运行,还有如果碰到多线程的程序怎么处理 获得程序窗口句柄,SendMessage()或PostMessage().