0

我想在用户登录时使用管理员权限自动启动我的应用程序。我发现了这个问题:如何在 Windows 启动时以管理员身份自动运行程序?但这并不能解决我的问题。如果我使用 schtasks 有两个问题:第一个是它不会在 vista、xp 的用户桌面上运行...(参见第二个答案的评论)。第二个问题是onlogon参数的这个描述

只要用户(任何用户)登录,该任务就会运行。您可以指定日期,或在用户下次登录时运行任务。

请参阅http://technet.microsoft.com/en-us/library/bb490996.aspx。我想创建一个设置界面,允许每个用户打开和关闭登录。

那么有没有更好的解决方案也可以在 windows xp 上运行?

4

1 回答 1

0

Schtasks /Create /TN admin /RU SYSTEM /SC ONLOGON /TR C:\admin\admin.bat
正在接近计划任务本身可以完成的最佳状态。以用户管理员身份而不是 SYSTEM 身份运行任务可能会显示 UI,如下所示Schtasks /Create /TN admin /RU "<administrator username>" /SC ONLOGON /TR C:\admin\admin.bat

任务启动的任何批处理文件都具有很大的灵活性。

如果“C:\admin\admin.bat”是

set there=0
for /F %%G in ('find "%username%" C:\access\users.txt') do if ("%%G") EQU ("%username%") set there=1
if ("%there%") EQU ("1") start "real" "cmd" "/C "C:\admin\real.bat""

并且“C:\admin\real.bat”包含您真正想要执行的任何内容(因此得名),这个脚本应该解决让用户选择程序是否启动的问题,方法是在“C: \访问\用户.txt”。

解释一下,for /F 行解析当前用户名的“users.txt”文件,如果用户的用户名逐字逐行列出,则将“there”设置为 1。接下来,“if”行检测用户名是否确实在文件中,如果是,则仅启动第二个批处理文件。

于 2013-12-08T12:47:09.823 回答