有没有方法能判断自己的程序是双击运行的还是通过注册表启动项运行的?
如题
[解决办法]
你可以用命令行啊。
注册表启动项可以加上/autostart之类的参数。
这样就和双击区分开了。
[解决办法]
同上,注册表启动的加上一个参数。程序中用GetCommandLine获取命令行。
[解决办法]
[解决办法]
marking...
[解决办法]
对应于Windows传递给WinMain的lpCmdLine参数。指向一个以null结尾的字符串,指定了应用程序的命令行。用m_lpCmdLine可以访问当应用程序启动时用户输入的命令行参数。m_lpCmdLine是LPSTR类型的公有变量。
示例:
BOOL CMyApp::InitInstance()
{
// ...
if (m_lpCmdLine[0] == '\0')
{
// 创建一个新(空的)文档
OnFileNew();
}
else
{
// 打开作为第一个命令行参数传递的文件
OpenDocumentFile(m_lpCmdLine);
}
// ...
}
[解决办法]
可以根据程序的创建者(父程序)来判断。
[解决办法]
双击的parentprocess一般是explorer.exe,注册表的不知是不是explorer.exe,不是的话可以用来区别.
[解决办法]
up...........
[解决办法]
你实现自动启动应该是在autorun里创建了注册表项吧
这个项的值应该是程序的全路径吧比如“C:\test.exe”
所谓加参数就是写成“C:\test.exe autorun”
autorun就是参数
你可以试试
这个参数随便写
你也可以自己定义格式