2012-12-06 56 views
0

我正在創建一個用戶程序(CreateProcessAsUser()),以在用戶屏幕上啓動應用程序。我需要以某種方式獲得一個函數在應用程序啓動之前在用戶的屏幕上運行。我的想法是CreateRemoteThread(),並把我的功能在這裏,但這將發生CreateProcessAsUser()已經啓動應用程序後。任何人建議?謝謝想在線程執行前完成線程

+0

我認爲這是WinAPI? – dutt

+0

是的。我在createprocessasuser調用之前調用了該函數,但該函數在隱藏的會話0中調用。我認爲通過使用一個線程我可以在用戶會話中調用該函數。 – user1881918

回答

0

創建一個新的應用程序來執行您的功能,然後執行目標應用程序(可以使用CreateProcess()作爲新應用程序通過CreateProcessAsUser()啓動)。

+0

有沒有繞過創建另一個新應用程序的方法。我可以執行以下操作:使用CreateProcessAsUser創建一個不啓動應用程序的進程,然後爲此進程分配一個線程來調用我的函數,然後用我的原始應用程序創建另一個進程(CreateProcessAsUser)? – user1881918

+0

@ user1881918:「創建一個不啓動應用程序的進程」 - 一個進程是一個應用程序,你的意思是界面?我會避免'CreateRemoteThread' - 如果你想要啓動的應用程序是64位,而你的應用程序是32位呢?你不能注入一個線程。您應該在調用應用程序上使用'CreateProcessAsUser'(即使用'GetModuleFileName'),並使用一個命令行參數來告訴它執行您的'函數',這樣您只需要一個應用程序,但它有兩件事。 – parrowdice

+0

是的,我的意思是接口,但會運行一些exe不會有任何用處。謝謝,這清理了一些東西 – user1881918

相關問題