我遇到这样的问题,我需要我的程序在用户密码询问时运行(当计算机开机时)。我知道在C ++和C#中都有一个类RegistryKey,但它们会在用户登录时启动程序。有什么我能做到的吗?
答案 0 :(得分:1)
您可能需要查看函数CreateService in the MSDN:
SC_HANDLE WINAPI CreateService(
_In_ SC_HANDLE hSCManager,
_In_ LPCTSTR lpServiceName,
_In_opt_ LPCTSTR lpDisplayName,
_In_ DWORD dwDesiredAccess,
_In_ DWORD dwServiceType,
_In_ DWORD dwStartType,
_In_ DWORD dwErrorControl,
_In_opt_ LPCTSTR lpBinaryPathName,
_In_opt_ LPCTSTR lpLoadOrderGroup,
_Out_opt_ LPDWORD lpdwTagId,
_In_opt_ LPCTSTR lpDependencies,
_In_opt_ LPCTSTR lpServiceStartName,
_In_opt_ LPCTSTR lpPassword
);
对于 dwStartType ,请使用 SERVICE_AUTO_START
对于 lpServiceStartName ,您可以使用 NULL 使其使用LocalSystem帐户或以下任何一种帐户: NT AUTHORITY \ LocalService 或 NT AUTHORITY \ NetworkService 。要了解有关不同帐户可提供的内容的更多信息,请阅读Service User Accounts in the MSDN。
对于 lpPassword ,如果您使用了上述任何值,则可以使用 NULL 。
对于 lpBinaryPathName ,您必须将文件路径放入您的服务。
如果您不确定另一个,请查看示例代码 "A basic Windows service in C++ (CppWindowsService)" in the MSDN。示例代码可能是一个很好的起点。
答案 1 :(得分:1)
谢谢大家,我已经使用过Windows服务。