检测系统重启并启动应用程序
Detect System reboot and start an App
我们有一个exe,它实际上检查文件夹的内容,然后启动windows服务对该文件夹中的文件进行一些处理。所以,我们把这个exe作为系统启动程序的一部分,所以每次系统重启/启动时它都会运行。
现在用户非常恼火,因为他每次重启都会弹出UAC。但是我们需要有这个exe的管理员权限,因为它启动了一个windows服务。因此,我研究并找到了一些解决这个问题的方法。这个和这个但无法决定哪一个更好,更不容易受到安全影响。另一个潜在的解决方案可以在。exe本身的代码中检测系统启动,如果我们在目标文件夹中有任何内容,那么只要求用户提供UAC并启动windows服务。否则就不要运行exe。我不确定如何在c++中做到这一点。任何提示都会很有帮助。如果有更好的解决方案,请随时欢迎。
您可能想在这里使用任务调度程序。
只需在安装过程中创建一个任务,将"当计算机启动时"作为触发器,并设置"以最高权限运行"安全选项。
问题是您混淆了系统和用户会话。
如果这些文件的处理是代表用户完成的,那么它可能不应该由服务完成。如果两个用户想要处理他们的文件怎么办?服务应该为此使用什么安全上下文?显然,你不需要管理员权限来处理一些用户文件。
如果服务正在执行一些系统级任务,它不应该依赖于用户。事实上,在启动时运行表明你想要这种模式。(用户小程序在登录时启动,而不是在重启后启动)。因此,您设计中的主要问题似乎是您试图在错误的时刻运行应用程序(带有UI),这需要太多的权限(导致UAC)。重新设计服务,使其完成所有需要管理员权限的任务,并在安装服务时将其设置为自动启动。这仍然需要在安装时使用UAC,但这是期望使用UAC的时候。
- QSerialPort 在应用程序启动之前正在使用中
- C++ - 从 MFC 应用程序启动记事本,并将其默认标题从 "Untitled - Notepad" 更改为其他内容
- 在应用程序启动时停靠 QDockWidget?
- 在应用程序启动时读取文件
- osX - 如何从我的 QT 应用程序启动另一个程序
- 如何跟踪 C++14 中的控制台应用程序启动的次数?
- 调试从 Linux 中的另一个C++应用程序启动的 python 脚本
- 添加新对话框后,MFC 应用程序启动失败并"DLL Initialization Failed"
- 在应用程序启动之前做某事
- 基于CDialog的应用程序启动时,如何将我的辅助对话框窗口带到顶部
- 在Qt和C++中从另一个应用程序启动一个应用软件会产生问题
- 在 C++/STL/MFC 应用程序启动早期发生的致命异常中,是否可以信任堆栈回溯符号名称?
- 从控制台应用程序启动窗口应用程序
- 如何从另一个C++控制台应用程序启动/结束C++控制台应用程序
- 从 MFC(c++) 应用程序启动的可执行 jar 中获取返回值
- 从 MFC 应用程序启动 Java 时,在 MFC 应用程序中显示等待光标,直到它完成其进程
- 从控制台应用程序启动控制台应用程序
- Windows应用程序启动我的控制台
- 从应用程序启动 Linux 服务时避免套接字继承C++
- 如何在应用程序启动后隐藏其命令提示符