C#或C ++如何在用户密码问题时让程序运行?

时间:2013-10-07 13:37:36

标签: c# c++ winforms startup

我遇到这样的问题,我需要我的程序在用户密码询问时运行(当计算机开机时)。我知道在C ++和C#中都有一个类RegistryKey,但它们会在用户登录时启动程序。有什么我能做到的吗?

2 个答案:

答案 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服务。