求教一个双击文件打开的问题(200)

  • 主题发起人 主题发起人 popogens
  • 开始时间 开始时间
P

popogens

Unregistered / Unconfirmed
GUEST, unregistred user!
前提:用MC.exe可以打开.cwf文件要求:双击一个.cwf文件,在MC.exe中打开了它。现在我又双击了另一个.cwf文件,需要在同一MC.exe进程中打开,而不要新打开一个MC.exe。急,200分求教,谢谢!
 
我的QQ是455192323,知道请加我,谢谢。口令“大富翁”就行
 
哦,有一个很重要的重点忘了说:请不要用BroadcastSystemMessage,因为360会拦截它,现在电脑很多都装360的,没办法。
 
首先,mc.exe是否支持用现有进程打开文件,可以用mc.exe xxx.cwf命令行试验一下如果不行,那可能就要自己写程序来实现,原理就是自己写个exe,关联到cwf,然后再调用mc.exe,如果有,那就通过消息或者OLE让mc打开cwf文件。
 
varlphKey: HKEY;sKeyName: string;sKeyValue: string;beginsKeyName := 'myfile';sKeyValue := '我的文档';RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);RegSetValue(lphKey,'',REG_SZ,pchar(sKeyValue),0);sKeyName :='.xyz';sKeyValue := 'myfile';RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);RegSetValue(lphKey,'',REG_SZ,pchar(sKeyValue),0);sKeyName := 'myfile';sKeyValue :='c:/Windows/NotePad.exe %1';RegCreateKey(HKEY_CLASSES_ROOT,pchar(sKeyName),lphKey);RegSetValue(lphKey,'shell/open/command',REG_SZ,pchar(sKeyValue),MAX_PATH);end;---- 建立一新文件,使其扩展名为.xyz,然后双击它看是否是启动记事簿来打开的。 至于是打开一个还是打开两个要你自己程序支持就OK
 
楼主,怎么开两个标题啊,呵呵1. 既然做好了文件关联,那么双击的时候自然要执行对应的exe2. 执行exe的时候判断一下,是否已经有相同的exe在执行,若没有,照常, 若有了,得到参数(ParamStr(1)或把所有的参数写入一个文件中待读,因为windows的文件或目录允许有空格的,容易被误认为有多个参数),然后向已经执行的先前的exe发送消息请求打开该文件即可(文件名字已经保存了喔),呵呵
 
两个标题,我就两倍给分,呵呵,但前提是我帮我解决,最好能有个简单的例程可以吗?谢谢
 
提提提前!
 
很简单,如果MC.exe是你自己写的话启动时检查有无其他实例在运行,如无,则继续加载;如有,则向该实例局柄(主窗口局柄)发送一个消息(通常可以用 WM_COPYDATA)把 ParamStr(1) 携带过去。主窗口中增加对 WM_COPYDATA 消息的处理程序,从中取得文件名参数...
 
楼上能帮我做一个WM_COPYDATA的例程吗?就是不要用BroadcastSystemMessage谢谢
 
先注册用你的文件打开cwf文件。如果不行。就先检测程序是否已经运行。然后自己给自己发一个消息。让自己的程序打开字他,但是你的wc.exe 是不是多文档程序呀?
 
后退
顶部