如何在用户登录时启动应用程序

如何在用户登录时启动应用程序

我有一个 .net 应用程序,我想让它在用户登录计算机时自动启动。现在,这个应用程序需要在用户登录时启动。我知道我可以把它放入启动文件夹,但这不是一个选项,因为用户可以通过删除该应用程序“轻松”阻止它。

是否有任何方法可以在用户登录时启动应用程序,而“普通用户”很难阻止。我明白高级用户可能能够编辑注册表,但我想阻止大多数人这样做。

我看到像 Steam 这样的应用程序在登录时启动,并且不在启动文件夹中,所以我想如果你知道如何做的话,这并不难。我想这都是我将以某种方式制作的安装套件的一部分。

编辑:让我澄清一些事情。这个应用程序的问题在于,一些机构依法需要提供一些用户操作信息,因此这个应用程序将记录这些操作。他们还必须尽最大努力防止用户绕过数据记录。尽最大努力意味着它必须阻止对计算机知之甚少的用户。由于这是高度机密的,我无法真正说明细节,但将要启动的应用程序对用户是不可见的,但由于服务的一些限制,它不能成为一项服务。到目前为止,所有这些问题都已得到解决。

我们唯一需要解决的问题是,这个应用程序可能必须安装在业务服务器上,但这其实不是什么大问题,因为我们可以控制这些服务器,也可以控制家用计算机,以便用户请求访问工作场所之外的某些资源。他们必须安装一些工具包才能访问所述资源,其中一个工具包就是记录应用程序。

我完全清楚高级用户将能够绕过它,并且有些人会进入任务管理器来停止该过程,但我们正在尽最大努力,如果注意到这一点,他们将是遇到问题的人。

谢谢,

答案1

您可以将其放在普通用户无法修改的StartUp文件夹中。AllUsers

您也可以使用HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run注册表项。

答案2

有一个简单的方法,甚至许多“高级用户”都不知道。
除此方法外,所有其他方法都可能需要不同的用户权限!

只需将程序的快捷方式放到用户的启动文件夹中即可把它藏起来
它会不是在 MSConfig 中列出。如果您希望它对“普通用户”来说“足够困难”,请将快捷方式的属性更改为系统和隐藏。

如果你想让它在任务管理器中“不可见”,请将文件重命名为svchost.exe或 smtg 之类的。

所有这些都将阻止“普通用户”查看和结束您的应用程序。
如果您想为“高级用户”隐藏它,可以使用 .NET 从另一个窗口(包括 TaskMgr、ProcMon 等)删除 ListBox/ListView 的项目……我想您明白我想说什么,但这是另一个主题;)

祝你好运!

答案3

如果是为了“隐蔽的安全”,那么安排一个任务如何登录时运行

在您的安装工具包中运行:

schtasks /create /tn AccProv /tr c:\yourpath\yourlogger.exe /sc onlogon /ru System

答案4

组策略

组策略

如果您在域中则可以通过 Active Directory 强制执行。

Home 支持组策略,但不支持组策略的域(Active Directory)端。

或者可以使用本地组策略。

编辑的工具是gpedit.msc

将程序设置为在启动时运行

如何修改用户登录时运行的程序的组策略

相关内容