我發現在Windows環境下運行的程序的命令行參數存儲在Process Environment block中。我發現在PEB內部有一個稱爲RTL_USER_PROCESS_PARAMETERS的結構,它包含一個名爲UNICODE_STRING CommandLine的成員變量; 我可以通過編寫c代碼來訪問這個變量嗎?請協助 有關PEB的更多信息,請參閱此鏈接 http://msdn.microsoft.com/en-us/library/aa813706%28VS.85%29.aspx如何訪問UNICODE_STRING的CommandLine變量?
回答
您需要GetCommandLine
函數。即使你的程序是ANSI,你仍然可以明確地調用寬版本GetCommandLineW
。
此功能是documented on MSDN。查看Requirements部分,您會看到它在WinBase.h
中定義,但您應該包含Windows.h
。它只能用於自Windows XP,所以這取決於SDK的版本,您正在使用,您可能需要定義_WIN32_WINNT
第一:
#define _WIN32_WINNT 0x0502
#include <windows.h>
實際上,GetCommandLine自Windows NT 3.1以來一直可用,但MSDN文檔只能回溯到XP。 –
@RaymondChen:謝謝。我認爲這有點奇怪。 –
我害怕現在搞PEB,我想過其他的方式。現在我的觀點是......假設有一個調用程序的主體(我知道main被調用的地方可以說它的_START),那麼是否有可能說參數存儲在x地址空間中在main被調用之前。例如在地址5000處調用main ...我們可以說每次參數的地址都在內存的位置4500。 ? – archies50
- 1. 如何訪問的變量
- 2. 如何訪問此變量?
- 3. 如何訪問變量
- 4. 如何訪問ExceptionNotifier變量
- 5. 如何訪問變量,點
- 6. 如何訪問dataLayer變量
- 7. 如何訪問變量
- 8. 如何訪問此變量?
- 9. 如何通過變量變量訪問預定義的變量
- 10. 如何訪問類常量和變量
- 11. 如何訪問JSON中的變量
- 12. 如何訪問塊外的變量?
- 13. 如何訪問ipython中的shell變量
- 14. JSRender如何訪問塊外的變量
- 15. 如何訪問模型中的變量
- 16. 如何訪問JavaScript中的Global.asax變量
- 17. 如何訪問PHP的jQuery變量
- 18. 如何訪問preg_replace_callback中的變量?
- 19. 如何訪問函數內的變量?
- 20. 如何訪問setInterval中的變量
- 21. 如何訪問JButton ActionListener中的變量?
- 22. 如何訪問app.get中的變量
- 23. 如何訪問方法的變量
- 24. 如何訪問循環外的變量?
- 25. 如何訪問MATLAB中的類變量?
- 26. 如何訪問Mongo中的變量值?
- 27. 如何訪問NodeJS中的變量
- 28. 如何訪問數組中的變量
- 29. 如何訪問Smalltalk中的類變量
- 30. 如何訪問父類中的變量
就叫GetCommandLineW。 –
我們是否需要這個>的哪個頭文件? – archies50