2010-08-03 1708 views
2

在我的Win32應用程序中,我有能力運行具有重定向輸入和輸出的子進程到我創建和管理的匿名管道 - 這全部與CreateProcess()函數一起使用。 但是在Win7上(假設Vista)如果該進程需要以管理員身份運行,那麼這將失敗。因此,我正在尋找的是一種在explorer中執行相當於「以管理員身份運行」命令的方式,該命令將引發標準的UAC提示,然後使用提升的權限創建該進程。 我已經看到文章談論使用ShellExecute的「runas」選項來做到這一點,但後來我看到它,我沒有控制我需要重定向標準輸入和輸出到我的管道。 有什麼建議嗎?CreateProcess以管理員身份運行

+0

這可能是不可能的。你能修改孩子的應用程序嗎? – adf88 2010-08-03 10:01:30

回答

2

如果你在子應用上放置了一個清單,並且如果你使用ShellExecute來啓動,它將使用清單並且會有一個UAC提示。 (在大多數情況下,我更喜歡這種「runas」方法)。這可能允許您以您喜歡的方式啓動應用程序,而不用擔心UAC,並從清單中獲取提升權。

但是,如果您所指的「管理」部分涉及與較高權限應用程序通信的較低權限應用程序,則可能會出現問題。 UAC禁止這種情況。

相關問題