在DOS命令下用 sc create wmdrive binpath= c:\windows\system32\drivers\wmdrive.sys type= kernel 可以启动服务,然后用 net start wmdrive 同样可以显示成功,为了在程序中实现,尝试用如下语句执行上面启动服务的功能:ShellExecute(0,'OPEN','cmd.exe', PChar(' /C '+'sc create wmdrive binpath= c:\windows\system32\drivers\mydevice.sys type= kernel'),'',SW_HIDE);WinExec(pChar('sc create wmdrive binpath= c:\windows\system32\drivers\mydevice.sys type= kernel'),SW_SHOW);
不管用哪种方法执行后,再用net start wmdrive 会提示:“发生系统错误2. 系统找不到指定的文件。”有没有朋友知道原因?或者能给一点解决问题的办法,在此万分感谢。

解决方案 »

  1.   

    加载驱动吗?
    可以参考下我以前的一个帖子
    http://topic.csdn.net/u/20090306/21/42440c64-a5de-4659-85ef-022ebc8b0017.html
      

  2.   

    方法用过了,仍然不行,另外网上很多资料均一一试过,均不能达到手工用命令行启动的效果,只要用程序的方法执行,NET START就不能正确启动服务,提示找不到指定的文件。
      

  3.   

    如果把上面的DOS命令写成批处理,再用winexec/shellexceute去调用呢?
      

  4.   

    winexec(pchar('command.com /C'+ 'sc create wmdrive binpath= c:\windows\system32\drivers\mydevice.sys type= kernel '),sw_hide);
      

  5.   

    三楼的可以试下,如果在dos下输那个指令没问题,那就可以写成bat文件,再用ShellExecute或WinExec调用bat文件就应该可以了
      

  6.   

    启动服务有专门的结口来实现。没有必要用winexec及shellexcute。
      

  7.   

    在DOS下能成功,将其做成BAT文件,然后一定能成功。我发给你一例子你可以一试。