2013-10-07 17 views
2

我有這樣的問題,我需要我的程序運行時,用戶密碼問(電腦打開時)。我知道在C++和C#中都有一個類RegistryKey,但它們使程序在用戶登錄時啓動。有沒有我能做到的?C#或C++如何讓程序在用戶密碼提示時運行?

+4

編寫** Windows服務**。我會讓你自己研究一下,有大量的文檔。 – syam

+1

如果您未登錄,哪個「上下文」將運行該程序? 某些用戶或其他用戶必須登錄才能運行用戶程序。 – Vandesh

+0

@Vandesh我不希望程序運行任何用戶,我只想在後臺工作... –

回答

1

謝謝大家我已經使用了windows服務。瞭解了很多,並使我的項目在奧林匹克運動會中獲得第三名

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 \ LocalServiceNT AUTHORITY \ NetworkService。要詳細瞭解不同帳戶可以提供什麼,請閱讀Service User Accounts in the MSDN。如果您使用上述任何值,則可以使用NULL

對於lpBinaryPathName您必須將文件路徑放到您的服務中。

如果您不確定其他人,您應該查看示例代碼"A basic Windows service in C++ (CppWindowsService)" in the MSDN。示例代碼可能是一個很好的起點。

相關問題