d7原来在XP下的代码为:shellexecute(application.Handle ,'open',pchar('www.163.com'),nil,nil,sw_shownormal);
现在在WIN7下测试是无反应的,代码改如何修改呢?

解决方案 »

  1.   

    ShellExecute(0,'open','http://g.cn',NIL,NIL,SW_SHOWNORMAL);
      

  2.   


      执行成功会返回应用程序句柄
      返回的HINSTANCE可以将它转换为一个整数(%d),并比较它的值大于还是小于32或比较它的错误代码
      返回值大于32表示执行成功
      返回值小于32表示执行错误
      返回值可能的错误有: = 0 {内存不足}
      ERROR_FILE_NOT_FOUND = 2; {文件名错误}
      ERROR_PATH_NOT_FOUND = 3; {路径名错误}
      ERROR_BAD_FORMAT = 11; {EXE 文件无效}
      SE_ERR_SHARE = 26; {发生共享错误}
      SE_ERR_ASSOCINCOMPLETE = 27; {文件名不完全或无效}
      SE_ERR_DDETIMEOUT = 28; {超时}
      SE_ERR_DDEFAIL = 29; {DDE 事务失败}
      SE_ERR_DDEBUSY = 30; {正在处理其他 DDE 事务而不能完成该 DDE 事务}
      SE_ERR_NOASSOC = 31; {没有相关联的应用程序}看看你的返回值是多少
      

  3.   

    代码在XP下随便怎么测都是成功的,就是WIN7下不行。
      

  4.   


    shellexecute(application.Handle ,'open',pchar('mailto:xxx'),nil,nil,sw_shownormal);
    在WIN7下启动邮箱是成功的
      

  5.   


    shellexecute(application.Handle ,'open','iExplore.exe',pchar('www.xxx.net'),nil,sw_shownormal);
    用这句就能在WIN7运行了,但奇怪我的IE8是默认的浏览器,为什么还要指定'iExplore.exe'
      

  6.   

    一直这么用,win7 x64从来都是有效滴。