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

这是为何?

2013-01-09 
这是为什么??我用shellexecute启动cmd.exe后,用FindWindow找不到cmd窗口的句柄,但是点击 开始---运行---

这是为什么??
我用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,到窗口的创建,确实需要一些时间(和机器的性能有关),适当的延时是非常有必要的。

热点排行