社区
进程/线程/DLL
帖子详情
通过双击文件,怎样使windows调用我自己编的程序打开这个文件?
phisherr
2005-09-30 05:16:09
我是这样做的:
先生成了一个自己已知格式的文件xxx.xyz,然后将该类.xyz文件的打开方式设我的程序my.exe。
这样双击xxx.xyz,系统就会调用my.exe。
但是my.exe 中怎样处理才能得到我需要打开的文件名?
我试过用获取命令行的方式:
通过AfxGetApp()->m_lpCmdLine来获取这个文件名。
系统提示了一个很怪的消息框“未发生错误!”
没有找到xxx.xyz文件。
...全文
744
30
打赏
收藏
通过双击文件,怎样使windows调用我自己编的程序打开这个文件?
我是这样做的: 先生成了一个自己已知格式的文件xxx.xyz,然后将该类.xyz文件的打开方式设我的程序my.exe。 这样双击xxx.xyz,系统就会调用my.exe。 但是my.exe 中怎样处理才能得到我需要打开的文件名? 我试过用获取命令行的方式: 通过AfxGetApp()->m_lpCmdLine来获取这个文件名。 系统提示了一个很怪的消息框“未发生错误!” 没有找到xxx.xyz文件。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
30 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
phisherr
2005-10-09
打赏
举报
回复
豁然开朗,茅塞顿开!
phisherr
2005-10-09
打赏
举报
回复
多谢,楼上这位仁兄,很有启发性啊!
phisherr
2005-10-08
打赏
举报
回复
up
phisherr
2005-10-08
打赏
举报
回复
up
phisherr
2005-10-08
打赏
举报
回复
奇怪的是:
我通过工程属性添加的命令行
和通过双击文件得到的命令行是完全相同的都是"C:\Documents and Settings\Administrator\桌面\测试包\xxx.xyz"
但是前者能打开文件,
后者却提示“未发现错误!”没有打开文件。
CString st = AfxGetApp()->m_lpCmdLine;
AfxMessageBox(st);
CFile file( st, CFile::modeRead );
Featured
2005-10-08
打赏
举报
回复
楼上这么多仁兄,竟然没几人好好看清楼主问题,
导致分数被我这个菜鸟抢到,惜之……
Featured
2005-10-08
打赏
举报
回复
因为传递命令行参数时,
有个小细节:
如果全路径中含有空格,那么传递的命令行参数将加上引号。
不信你试一下c:\a.txt这样的文件肯定不会出错
因此,你要做的就是去掉这个引号,
CString st = AfxGetApp()->m_lpCmdLine;
if(st.Left(1)=="\"")//如果第一个字符是引号,那么去掉之
{
st=st.Mid(1,st.GetLength()-2);
}
AfxMessageBox(st);
CFile file( st, CFile::modeRead );
Featured
2005-10-08
打赏
举报
回复
其实是引号在作怪
我在几年前搞VB的时候就遇到过这种问题
nf3
2005-10-08
打赏
举报
回复
ding
gohappy_1999
2005-10-07
打赏
举报
回复
mark
erzichang_
2005-10-07
打赏
举报
回复
用这个取得传递exe后传递的参数:AfxGetApp()->m_lpCmdLine
如果是双击,就是传递的被双击的文件名。
自己想怎么处理怎么处理。
rzjkl1980
2005-10-07
打赏
举报
回复
文件关联
qybao
2005-10-06
打赏
举报
回复
兄弟们啊!谢谢了,可是你们没有理解我的意思
我问题中已经说明了,系统已经调用了my.exe 只是my.exe不知到我双击的那个文件!
关键是在my.exe中怎么处理,才能将获得这个文件名(绝对不是用鼠标单击打开文件按钮弹出CFileDialg这样的手动操作).
我想知道,双击xxx.xyz文件后系统做了什么操作,向my.exe传了些什么参数,怎样才能利用这些参数自动的打开xxx.xyz文件?
-------------------------------------------------------------
首先,在编写my.exe时,要传入一个文件名作为参数给主程序,取到参数后判断,如果参数为空就不打开任何文件,如果非空,判断文件是否存在,不存在则提示文件无效,最后就是打开由参数传进来的文件名,然后编译生成你的exe
然后在做上述的文件关联,这样你双击关联文件就能调用你的exe打开了
蒋晟
2005-10-06
打赏
举报
回复
File-type associations is stored in registry.
see
http://www.codeproject.com/shell/cgfiletype.asp
蒋晟
2005-10-06
打赏
举报
回复
file-type associations
long_xing
2005-10-05
打赏
举报
回复
按2,3,4楼兄弟的方法去做,如果还是提示找不到文件,就应该是你程序中处理AfxGetApp()->m_lpCmdLine的问题了。
兄弟不妨贴出代码看看啊
phisherr
2005-10-01
打赏
举报
回复
up
phisherr
2005-10-01
打赏
举报
回复
不是文档视图结构,是基本对话框。
newegg2002
2005-10-01
打赏
举报
回复
向Windows注册你文件的扩展名就行了........
文档视图结构就是这样的.
phisherr
2005-10-01
打赏
举报
回复
up
加载更多回复(10)
Windows
系统默认
程序
设置指南:设置
双击
文件
默认
打开
程序
本文介绍了
Windows
系统设置
双击
文件
默认
打开
程序
的方法。涵盖通过
文件
属性、控制面板、设置应用修改默认
程序
的步骤,还包括特殊情况处理,如快捷方式和注册表配置问题。同时阐述了默认
程序
设置对工作效率和
文件
安全的影响,以及定期更新设置的理由和实践。
window10无法
打开
.exe可执行
文件
(也就是鼠标
双击
不能
打开
电脑的各种软件)
本文提供了解决
Windows
10系统下
双击
无法
打开
桌面应用
程序
或.exe
文件
的方法。通过
编
辑注册表,可以修复
双击
不响应的问题,并使
程序
能够以管理员身份运行。
Windows
双击
打开
ipynb
文件
本文介绍如何在
Windows
环境下,通过安装Anaconda或WinPython,配置环境变量,以及使用nbopen工具,实现
双击
直接
打开
并运行ipynb
文件
,简化Jupyter Notebook的启动流程。
在
Windows
上
双击
运行Python
程序
不会自动退出的方法
本文介绍了在
Windows
上
双击
运行Python
程序
时,如何避免
程序
因错误自动退出的方法。通过添加Python到环境变量,创建
Windows
Command
文件
运行Python,以及在Python
程序
中处理错误,可以确保
程序
在出错时仍能显示错误信息并保持窗口
打开
。
解决
Windows
7 下不能
双击
打开
jar
文件
本文介绍了如何在
Windows
7环境下解决
双击
无法
打开
Java打包成的可执行GUI应用
程序
的问题。主要通过修改注册表来重新关联
打开
方式,以确保能够正确执行jar
文件
。
进程/线程/DLL
15,465
社区成员
49,169
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章