我想让程序自动打开百度然后自动将剪切板上的东西复制到百度的搜索栏上,我是这样实现的:ShellExecute(NULL, "open", "http://baidu.com/", NULL, NULL, SW_SHOWNORMAL);
Sleep(5000);//Sleep(5000);可以实现 但Sleep(1000);不可以  
keybd_event(VK_CONTROL, 0, 0, 0);  
keybd_event('V', 0, 0, 0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event('V', 0, KEYEVENTF_KEYUP, 0);我发现如果把延时时间调长一点的话可以实现,短一点就不行了。我觉得延时长度可能取决于计算机开启百度页面的时间,必须要等到计算机开启百度页面再进行CTRL+V操作才行。但是如果用户的计算机很慢的话(超过5秒)那我该怎么办啊?把延时调长一点那么在快的机器上运行又感觉很迟钝请问这个问题该如何解决呢?

解决方案 »

  1.   

    用 http://www.baidu.com/s?wd=XXX 带参数的方法吧, 其他方法比较麻烦
      

  2.   

    你这样很不明智,造成了软件工作的不确定性。要么你在CHtmlView里搞,用接口查看到下载完成的documentcomplete,这样比较可控。怕麻烦的话,还不如用LS的方法
      

  3.   

    用这个方法吧如:在百度里搜你的名字可以直接
    ShellExecute(NULL, "open", "http://www.baidu.com/s?wd=%C6%A4%BF%A8%C7%F0%CB%C9", NULL, NULL, SW_SHOWNORMAL);
    只要查下 =%C6%A4%BF%A8%C7%F0%CB%C9 与你的名字之间是咋转换的就行
      

  4.   

    DWebBrowserEvents2 DocumentComplete
      

  5.   

    DWebBrowserEvents2要怎么用呢?谁能举个简单的例子
      

  6.   

    知道网页是否下载完毕
    参考WinINet Functions