如何判斷用戶是否通過雙擊EXE(或快捷方式)啓動了我的控制檯應用程序,或者是否已經打開了命令行窗口並在該會話中執行了我的控制檯應用程序?如何確定如何啓動控制檯應用程序?
回答
您可能可以通過P /調用Win32 GetStartupInfo()函數來計算出結果。
[DllImport("kernel32", CharSet=CharSet.Auto)]
internal static extern void GetStartupInfo([In, Out] STARTUPINFO lpStartupInfo);
棒在你的「Program
」類此靜態字段,以確保它運行的任何輸出前:
static bool StartedFromGui =
!Console.IsOutputRedirected
&& !Console.IsInputRedirected
&& !Console.IsErrorRedirected
&& Environment.UserInteractive
&& Environment.CurrentDirectory == System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location)
&& Console.CursorTop == 0 && Console.CursorLeft == 0
&& Console.Title == Environment.GetCommandLineArgs()[0]
&& Environment.GetCommandLineArgs()[0] == System.Reflection.Assembly.GetEntryAssembly().Location;
這是一個有點矯枉過正/偏執,而是拿起從資源管理器正在啓動,而不是對cls && app.exe
(通過檢查完整路徑)或甚至cls && "f:\ull\path\to\app.exe"
(通過查看標題)做出響應。
我從win32 version of this question得到了主意。
我加入了第二場'靜態布爾startedFromVisualStudio = \t \t \t \t!Console.IsOutputRedirected \t \t \t \t &&!Console.IsInputRedirected \t \t \t \t &&!Console.IsErrorRedirected \t \t \t \t && Environment.UserInteractive \t \t \t \t && Environment.CurrentDirectory == System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly()位置) \t \t \t \t && Console.CursorTop == 0 && Console.CursorLeft == 0 \t \t \t \t && Environment.GetCommandLineArgs()[0] .Contains(「vshost」);'當從VS啓動時也等待按鍵 – JCH2k 2016-08-03 09:33:20
- 1. .Net無法啓動控制檯的控制檯應用程序
- 2. 如何從Eclipse啓動應用程序時啓動java控制檯?
- 3. 如何啓動控制檯進程
- 4. 如何在控制檯應用程序
- 5. 如何啓用可滾動控制檯?
- 6. 如何:自動重新啓動控制檯應用程序。在.NET
- 7. 如何調用主要方法或重新啓動應用程序控制臺?
- 8. 如何使用參數從終端啓動控制檯應用程序?
- 9. 啓動後臺Win32控制檯應用程序
- 10. 在後臺啓動我的控制檯應用程序
- 11. 如何從gui啓動控制檯程序?
- 12. 如何在作爲控制檯啓動的應用程序中創建窗口?
- 13. 如何在ASP.NET MVC解決方案中啓動控制檯應用程序
- 14. 如何在控制檯應用程序中啓動dbmonitor的mysqlmonitor實例
- 15. 如何啓動控制檯應用程序並防止在最後關閉?
- 16. 如何在Linux中從終端啓動控制檯應用程序?
- 17. 如何重新啓動在Windows中編寫的控制檯c應用程序?
- 18. 如何爲部署在Tomcat上的應用程序啓動rails控制檯?
- 19. 如何阻止C#控制檯應用程序自動關閉?
- 20. 如何啓動tarantool控制檯?
- 21. 如何自定義控制檯的應用程序?
- 22. 如何獲得控制檯的進程id在C#控制檯應用程序
- 23. 如何確定從ruby程序控制臺字符寬度?
- 24. 終端如何控制自己啓動的應用程序
- 25. 如何在Windows啓動時控制Kiosk應用程序?
- 26. 如何從控制檯應用程序運行程序?
- 27. 如何在後臺運行.NET控制檯應用程序
- 28. 如何在後臺運行控制檯應用程序(無UI)?
- 29. 在用戶登錄之前啓動控制檯應用程序
- 30. 無法使用xCode 4.4啓動控制檯應用程序
[Win32控制檯應用程序是否可以檢測是否已從資源管理器運行?](http://stackoverflow.com/questions/510805/can-a-win32-console-application-detect-如果-IT-過氣 - 運行 - 從 - - 探險家或否) – joshuapoehls 2010-08-20 01:25:16