读书人

这是为何?

发布时间: 2013-01-09 09:38:15 作者: rapoo

这是为什么??
我用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");

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

读书人网 >C++ Builder

热点推荐