[HKEY_CLASSES_ROOT\CLSID\{2559a1f6-21d7-11d4-bdaf-00c04f60b9f0}\Instance\InitPropertyBag]
"CLSID"="{13709620-C279-11CE-A49E-444553540000}"
"method"="ShellExecute"
"Command"="关闭计算机"
"Param1"="shutdown.exe"以上为一段注册表代码,点作用为点击开始菜单上一个自定义的按钮时运行"Param1"中的命令,可是如果我想给这命令加个参数,比如shutdown.exe /s,就会提示:“找不到文件shutdown.exe /s”请各位指教怎么把参数/s加到里面,谢谢!五一快乐!

解决方案 »

  1.   

    你直接用ShellExecute调用shutdown.exe /s不就行了吗,和注册表有什么关系
      

  2.   

    是啊 可以直接运行 cmd 命令的
      

  3.   

    "Param1"="shutdown.exe"+str;
    然后判断str是否为 空/s/t……等
      

  4.   


       "Param1"="shutdown.exe"+str;
       然后判断str是否为 空/s/t……等
    不是判断,是要写进去啊。
      

  5.   

    用cmd 可以的话,写注册表一样的字符串应该可以才是。
    或者运行时
    ShellExecute("shutdown.exe","/s");试试
      

  6.   

    "method"="ShellExecute"
    "Command"="关闭计算机"
    "Param1"="shutdown.exe"是不要是加param2呢?我加了也不行,哪位知道啊
      

  7.   

    变通下,弄个*.bat在里面shutdown /s 。param1赋bat文件的路径算了。
      

  8.   

    楼上说得对,我现在是这样解决的,可是运行时出来个cmd界面
      

  9.   

    winexec('*.bat',SW_Hide);运行是隐藏窗口SW_Hide
      

  10.   

    是呀,可以隐藏起來!
    Winexec('Bat文件',sw_hide)
      

  11.   

    winexec('*.bat',SW_Hide);
    那第二个参数还是一样传不进注册表啊
      

  12.   

    楼主是写注册表,并非用delphi编程."Param1"="shutdown.exe /s"  不行吗, 诸多注册表项都如此
      

  13.   

    更正一下, 应该是"Param1"="shutdown.exe" /s引号在前
      

  14.   

    楼上说得清楚,可是用"Param1"="shutdown.exe" /s的话,根本没有作用