我是一名受过良好教育的新手计算机爱好者,并且接受过温和的vbscript教育,我需要帮助。这是事件的顺序......
我在我的PC上运行Winaero Tweaker(运行Windows 10 Home),为运行WD Passport Drive解锁程序的虚拟CD创建了一个提升的快捷方式。
通常,我单击驱动器上程序的快捷方式,向UAC说“是”,然后单击生成的结束窗口,告诉我驱动器已解锁。 Winaero高架快捷方式工作得很漂亮,除了它打开了末端窗口。
这是目标:
C:\WINDOWS\system32\cmd.exe /c start "" schtasks.exe /run /tn "WD Drive Unlock.exe_-943894699"
所以,我想我可能会尝试调用快捷方式的VB脚本,然后只需输入{esc}或〜来关闭窗口。简单。不。我不能让窗户关闭,上帝拯救女王。
我试图使用提升的捷径( H-IT.lnk
):
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\USERS\OWNER\DESKTOP\H-IT.lnk" & Chr(34), 0
WScript.Sleep 1500
WshShell.AppActivate "wd drive"
WshShell.SendKeys "{esc}"
Set WshShell = Nothing
这就像快捷方式执行快捷方式一样执行快捷方式,但标题为“WD Drive Unlocked”的结果程序窗口仍保持打开状态(就像快捷方式一样)。
所以,我想,为什么不利用快捷方式的目标并一起绕过快捷方式....对我来说是午夜的噩梦。这是我的尴尬尝试(介绍VB是20年前):
我试图规避捷径:
Set WshShell = WScript.CreateObject("WScript.Shell")
Command = "%WINDIR%\cmd.exe /c start ""schtasks.exe /run /tn ""WD Drive Unlock.exe_-943894699""
WshShell.Run command
WScript.Sleep 1500
WshShell.AppActivate "wd drive"
WshShell.SendKeys "{esc}"
Set WshShell = Nothing:
我不关心编程;我只想在没有UAC且没有对话框残留的情况下一键解锁我的驱动器。
Twisty:我不知道你的问题是开放的还是我的问题。我可以补充的是,简短的回答是“因为这就是Winaero Tweaker生成它的方式”。我缺乏教育来梳理原因。也许直接在脚本中调用schtasks.exe根本不起作用,或者不能像使用cmd.exe一样干净。好问题。也许论坛中有人可以回答。
—
John D Brown MD MPH
问题是针对你的,你的答案是有道理的。尝试将快捷方式指向
—
Twisty Impersonator
schtasks.exe /run /tn "WD Drive Unlock.exe_-943894699"
并查看是否使窗口正常关闭。
唉,没有。但是,快捷方式更有效,同样有效。在Winaero Tweak程序中创建所有提升的快捷方式时,似乎调用命令处理器在某种程度上是一个自动编程过程。我怀疑它有某种捷径的实用程序,对于像我这样的其他人而言,它只是一种无害的冗余。我把它留了出来。谢谢,Twisty。
—
John D Brown MD MPH
cmd.exe
代替schtasks.exe
?