有沒有某種方式可以從一個進程中以非提升的方式啓動進程。我的安裝程序啓動時升級,當它完成時,它將啓動主應用程序。由於設置被提升,主流程也將被提升,這是不可取的。什麼是最好的解決方案?正常情況下從一個進程中執行進程
2
A
回答
2
這是一個問題,Vista/Win7似乎沒有API來獲取您需要調用CreateProcessAsUser()的非特權用戶令牌。我發現的唯一解決方案是使用任務計劃程序啓動程序。這並不意味着我很實際。
一個簡單的解決方案,跳轉到頭腦是使用一個小的非高架輔助進程。它可以反過來啓動提升的設置過程,並等待來自該設備的確認,以啓動未升高的設置。握手很簡單,可以通過命名互斥鎖來完成。
0
這樣做沒有破解的唯一方法是有兩個進程(可在同一個.exe文件來實現)
實例A用ShellExecute API和運行方式開始動詞實例B。 B在安裝過程中,當它在「完成頁面」上啓動應用程序時,它使用某種形式的進程間通信(RPC,共享內存+事件等),告訴它以其名義啓動進程。
0
這似乎是一個很好的方式來做到這一點,只要你不關心殼牌沒有運行的情況(例如可能一些終端服務應用程序的設置,雖然我不確定):
http://brandonlive.com/2008/04/27/getting-the-shell-to-run-an-application-for-you-part-2-how/
它得到一個接口,Explorer.exe的,應在用戶的正常範圍內運行,並詢問Explorer在代表其執行的命令。這隻需使用簡單的文檔化的COM接口即可完成,而不必混淆過程令牌或代碼/ DLL注入。
相關問題
- 1. 在沒有創建新進程的情況下在另一個進程中運行可執行文件
- 2. 如何在這種情況下繼續執行後臺進程
- 3. 等待一個進程完成並執行另一個進程
- 4. C#在不阻塞進程的情況下停止線程語法執行
- 5. 如何在無中斷的情況下中斷一個進程make過程
- 6. Linux在不產生新進程的情況下運行重定向子進程
- 7. 從.NET執行Cygwin進程?
- 8. 在多行的情況下使用WITH子句進行執行
- 9. 如何監視新的根進程的執行情況?
- 10. 在某些情況下執行管道中的第二個/最後一個命令後,進程掛起
- 11. 當一個MPI進程執行MPI_Barrier()時,其他進程掛起
- 12. 進行切換的情況下執行以往的案例
- 13. 如何在沒有System.Web dll的情況下進行UrlDecode編程#
- 14. 在什麼情況下會從父進程獲取Ruby $ LOAD_PATH?
- 15. WiseScript:獲取用戶執行一個正在運行的進程
- 16. 在調用EXE的同一進程下執行另一個EXE
- 17. 退出應用程序時,一個進程正在進行
- 18. 如何在一定的情況下在python終止進程
- 19. 如何將pid從一個PHP進程與另一個進程進行通信?
- 20. 執行多線程進程
- 21. 遠程進程執行
- 22. 哪個進程最適合在這種情況下使用
- 23. 我可以在沒有啓動並行進程的情況下在Django中運行後臺進程嗎?
- 24. 如何設置一個進程以便在另一個進程之後執行?
- 25. 中止進一步的程序執行
- 26. 從進程ID獲取進程可執行文件名稱
- 27. 我如何在不阻止iPhone應用程序中的用戶界面的情況下運行一個進程
- 28. MPI_Finalize行爲不正常,孤立進程
- 29. 在不知道進程啓動順序的情況下在另一個進程上觸發事件
- 30. C#:如何在不停止程序執行的情況下執行線程
這是http://stackoverflow.com/questions/2206646/create-a-process-with-ordinary-rights-from-an-administrator-process的副本。 – 2010-02-16 03:52:08