如何以編程方式知道(win api)在程序啓動時通過命令行給出的參數列表?如何知道啓動的程序(進程)的參數?
回答
要想從使用WinAPI的外部進程的命令行,你必須訪問應用程序的PEB (Process Environment Block)。要獲得PEB,您可以使用NtQueryInformationProcess
函數,也可以使用Win32_Process
WMI類和CommandLine
屬性。你可以在這篇文章"Two ways to get the command line of another process"上找到這兩種方法的樣本。同時請查看Raymond Chen的文章"How do I get the command line of another process?",該文章提供了有關命令行緩衝區可靠性的非常重要的信息。
謝謝。嗯,NtQueryInformationProcess是不公開的,所以他們[微軟]說使用另一個公共職能。但是沒有獲取流程信息的功能。 – cybersoft
你是什麼意思「NtQueryInformationProcess不公開」?是的。它從ntdll.dll中導出,使用'LoadLibrary()'和'GetProcAddress()'來訪問它,就像[documentation]一樣(http://msdn.microsoft.com/en-us/library/windows/desktop/ ms684280.aspx)說。 –
- 1. android:如何知道設備中啓動的新進程?
- 2. 如何知道應用程序池是否已遠程啓動?
- 3. Node.JS知道從哪裏啓動程序
- 4. 啓動應用程序知道包名
- 5. 如何知道CreateProcess何時實際啓動了一個進程?
- 6. 程序如何知道它是從xcode啓動的?
- 7. 如何讓程序知道它已啓動的位置?
- 8. 如何知道應用程序何時啓動?
- 9. 如何知道何時啓動並銷燬Android應用程序?
- 10. 你如何運行你不知道參數開始的程序?
- 11. 如何知道在Windows中啓動應用程序?
- 12. 不知道如何啓動程序功能
- 13. Android:如何知道應用程序是否可以啓動
- 14. 如何知道我的應用程序的活動計數?
- 15. 如何用命令行參數啓動遠程進程?
- 16. 我如何用使用Win32 API的參數啓動進程?
- 17. 如何用帶引號的參數在powershell中啓動進程?
- 18. 知道程序
- 19. 如何知道我的程序是否啓用了ARC?
- 20. 如何在運行MPI程序時知道錯誤進程號?
- 21. 如何知道進程是否是應用程序 - Windows
- 22. 如何知道進程何時退出?
- 23. 如何啓動與許多參數的程序在Python/Linux的
- 24. 如何在Raspbian的OS啓動程序中啓動Mono程序?
- 25. Web驅動程序:如何知道當前幀的活動性?
- 26. 有沒有辦法知道我的主要Java程序啓動的所有進程何時完成執行?
- 27. 在Unix中,我如何註冊才能知道進程何時啓動?
- 28. 如何用C#中的參數編寫應用程序啓動應用程序?
- 29. 如何知道進程是否死亡
- 30. 如何知道nodejs進程完成?
取決於應用程序的啓動方式。但是'GetCommandLine'應該可以使用 – cHao
當然,我沒有說。它將獲得系統中的進程參數 – cybersoft
您的意思是,*其他*程序? – cHao