我編寫一個C++ windows應用程序(A),它使用LogonUser,LoadUserProfile和ImpersonateLoggedOnUser獲取另一個用戶(Y)的權限。 含義A開始使用在工作站(X)上登錄的用戶。如果用戶想提升他的權利,他只需按下一個按鈕並以另一個用戶身份登錄,而不必自行註銷窗口並返回。ImpersonateLoggedOnUser並啓動一個使用ocx的新進程失敗
現在的情況是(根據函數的返回值): LogonUser的工作原理,LoadUserProfile的作品和ImpersonateLoggedOnUser的作品。
模仿之後,我開始另一個過程。這個過程是一個需要OCX控制的應用程序(B)。 這會失敗,應用程序告訴我.oxc文件沒有正確安裝。
問題是,如果我直接以登錄到機器(X)的用戶身份啓動B,它就會起作用。 如果我以用戶(Y)的身份直接開始B,而我想使用A提升我的權限,則它可以工作。
如果我以(X)身份登錄並在資源管理器中選擇「運行方式」(Y),它就可以工作!
你知道我需要做哪些步驟來執行與Windows上的「運行方式」對話框相同的操作嗎?
可能是環境瓦爾特別是如果COM註冊使用%COMMONPROGRAMFILES%\ SomeDirHere \ MyLib.OCX爲InProc服務器位置。轉儲產生的進程的環境。 – wqw 2009-09-01 19:39:43