首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

这是为什么?解决办法

2012-03-06 
这是为什么?? - C++ Builder / Windows SDK/API我用shellexecute启动cmd.exe后,用FindWindow找不到cmd窗口

这是为什么?? - C++ Builder / Windows SDK/API
我用shellexecute启动cmd.exe后,用FindWindow找不到cmd窗口的句柄,但是点击 开始--->运行--->cmd.exe,用这种方式启动cmd.exe却可以用FindWindow找到其句柄,两种方式启动的cmd窗口的标题是一样的。这是为啥呢?求高人指点。。。

[解决办法]
ShellExecute(NULL,NULL,"cmd.exe",NULL,NULL,SW_SHOW);
Sleep(200); //加一延时,启动进程要时间
HWND hd=FindWindow(NULL,"C:\\WINDOWS\\SYSTEM32\\CMD.EXE");
if (hd)
ShowMessage("OK");
[解决办法]
我这里测试的不加那个延时也是可以的,呵呵.难道是rp问题??
[解决办法]
每道理的,按句柄查试试
[解决办法]

探讨

ShellExecute(NULL,NULL,"cmd.exe",NULL,NULL,SW_SHOW);
Sleep(200); //加一延时,启动进程要时间
HWND hd=FindWindow(NULL,"C:\\WINDOWS\\SYSTEM32\\CMD.EXE");
if (hd)
ShowMessage("OK");

[解决办法]
4楼说的在理,启动cmd.exe,到窗口的创建,确实需要一些时间(和机器的性能有关),适当的延时是非常有必要的。

热点排行