![](/img/trans.png)
[英]Why does MessageBox show the window in my created desktop, but AllocConsole show it in the previous?
[英]AllocConsole() doesnt show up
我正在嘗試將 dll 注入測試程序並使用 AllocConsole() 進行調試。
AllocConsole();
但是,控制台不會出現,我意識到我試圖注入的程序是在 SYSTEM 下運行的,而且我使用的是管理員帳戶,所以控制台不會出現在我的桌面上。 僅創建了 conhost 進程。
那么...如何使 AllocConsole() 的控制台顯示在每個帳戶桌面上?
該程序作為SYSTEM
運行,因此它很可能是在服務 session(會話 0)中運行的服務。 無法分配控制台並在另一個 session(例如控制台會話)中顯示它。 進程不可能擁有在所有會話甚至多個桌面上都可見的 window(或控制台)。
如果您不知道 Session 隔離最好從這里開始閱讀: 應用程序兼容性 - Session 0 隔離
如果您想對 output 進行簡單調試,一個簡單的方法是使用OutputDebugString (並使用DbgView之類的工具讀取輸出)或寫入事件日志。 有關更詳細的 output 您可以設置一個名為 pipe 或其他一些進程間通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.