【发布时间】:2012-09-12 08:33:57
【问题描述】:
有这样的行
C:\Program Files\Realtek\Audio\HDA\RAVCpl64.exe -s
在注册表项中
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
现在我想将绝对路径和参数从行中分离出来。
如果该行是
C:\Space Dir\Dot.Dir\Sample Name.Dot.exe param path."C:\Space Dir\Dot.Dir\Sample Name.Dot.exe"
我应该使用哪个分隔符来处理这条线?有没有 Windows API 函数可以解决这个问题?
【问题讨论】:
-
您可以使用 -(破折号)来标记您的字符串吗?
-
@TonyTheLion 但某些应用程序的参数以其他字符开头
-
您的意思是您正在尝试编写代码来从命令行解析程序和参数?这不是很简单,因为在包含空格的路径中存在歧义。查看CreateProcess 的文档,特别是关于
lpApplicationName参数的文档。据我所知,没有封装该逻辑的 Windows API,因此您必须自己编写。 -
第一个路径没有用双引号括起来。
-
@Jay 程序即将解析上面 reg 键中的所有值。用引号括起来实际上使解析更容易,但我想知道 reg 键中是否有这种未封闭的行。
标签: c++ windows winapi registry