我的目标是更改应用程序重新启动的路径。我无法访问main
,但我可以通过ctypes自由运行C代码。
我能够用getexecname()
更改Solarios中的argv [0],这给了我指向它的指针,我做了memcpy
。
我想知道在winapi中是否有一个方法允许我找到argv[0]
指针,或者是一个改变它的API函数?
由于
答案 0 :(得分:2)
在Windows上,您的命令行位于PEB(进程环境块)中。你可能不应该修改它,但你可以找到它并采取行动。
您可以使用GetCommandLine():https://msdn.microsoft.com/en-us/library/windows/desktop/ms683156(v=vs.85).aspx
找到它并自己或使用CommandLineToArgvW https://msdn.microsoft.com/en-us/library/windows/desktop/bb776391(v=vs.85).aspx解析它 - 然后启动自己的新实例(使用CreateProcess或ShellExecute,无论适用的是什么),然后终止。你的新实例将有正确的参数。