标题: [已结]在开始启动菜单中隐藏运行批处理的怪事
[打印本页]
作者: hackate
时间: 2008-12-4 19:50
标题: [已结]在开始启动菜单中隐藏运行批处理的怪事
if "%1"=="" start mshta vbscript:CreateObject("WScript.Shell").run("%~nx0 h",0)(window.close)&&exit
此代码是隐藏运行批处理的..我写了个批处理..把此批处理放到开始"启动"里面..
然后电脑一开机就提示脚本错误...说找不到文件...
可是我直接手动运行是可以的啊。真的不知道为什么哪里错了.难道加到启动项里,开机运行的形式哪里不相同了吗?/
还请各位高手帮忙解决...
[
Last edited by HAT on 2008-12-5 at 13:57 ]
作者: hackate
时间: 2008-12-4 20:25
怎么没人来看看,郁闷了
作者: tireless
时间: 2008-12-4 20:29
试试把 %~nx0 改成 %0
作者: hackate
时间: 2008-12-4 20:50
回TREE兄,之前已经测试过,没有用,一样的错误..
此问题着实让人郁闷啊。
作者: lxmxn
时间: 2008-12-4 22:49
这样试试呢?
run("""%~0"" h",0)
作者: dato
时间: 2008-12-5 00:00
估计又要用ping进行延时处理
这种情况偶碰到很多的,个人理解为在某某启动时刻不能运行一些命令所以只能用ping进行延时处理直到进入桌面或者某种时刻才能运行.
以前用.cmd运行sc控制服务的批处理可以放置在计算机启动阶段运行.
后来用nsi封装为.exe文件就只能在用户启动阶段运行.
差别一个用cmd.exe运行一个需要用到wscript.exe
作者: hackate
时间: 2008-12-5 13:05
回LXMXN哥哥..没用的,这个方法我也测试过.
回楼上的DATO兄,我也是这么认为的,后来我解决了.用如下方式解决...
@echo off
if not exist "%USERPROFILE%\「开始」菜单\程序\启动\hide.vbs" call :add
:loop
.............................
goto :loop
:add
echo Dim Wsh>"%USERPROFILE%\「开始」菜单\程序\启动\hide.vbs"
echo Set Wsh = WScript.CreateObject("WScript.Shell")>>"%USERPROFILE%\「开始」菜单\程序\启动\hide.vbs"
echo WScript.Sleep(0)>>"%USERPROFILE%\「开始」菜单\程序\启动\hide.vbs"
echo Wsh.Run "C:\windows\chuli.bat",false,false>>"%USERPROFILE%\「开始」菜单\程序\启动\hide.vbs"
copy /y "%~nx0" "c:\windows\">nul
start mshta vbscript:CreateObject("WScript.Shell").Run("%~NX0",0)(window.close)&&exit
goto :eof
[
Last edited by hackate on 2008-12-5 at 13:07 ]
作者: 5551551
时间: 2008-12-5 19:33
这个贴子值得收藏
作者: fjdragon
时间: 2009-2-11 11:05
不错不错呀
作者: netbenton
时间: 2009-2-11 12:59
其实应该直接把:
start mshta vbscript:CreateObject("WScript.Shell").Run("%~NX0",0)(window.close)&&exit
中的Run("%~NX0",0) 改成:
Run("%~f0",0) 或者Run("%~dpnx0",0)
就可以了吧
作者: ddd010
时间: 2009-11-19 18:25
学习。其实DATO的说法很实用。