在一个系统中(并没有自己的编写的程序运行),双击某个文件后,运行自己编写的程序,在自己的程序中如何得到刚刚双击的那个文件名?(50分)

  • 主题发起人 主题发起人 mike1031
  • 开始时间 开始时间
M

mike1031

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个系统中(并没有自己的编写的程序运行),双击某个文件后,运行自己编写的程序,在自己的程序中如何得到刚刚双击的那个文件名?就像点.doc文件可以调用word文件一样 <br>我用GetCurrentDir能取得文件所在目录,也能通过系统关联启动程序,但是无法得到文件名
 
1.对自己程序注册<br>2.在自己程序中加入如下代码取运行参数, 怎样运行, 就看你自己的程序了<br>procedure TForm1.FormCreate(Sender: TObject);<br>var<br>sFileName: string;<br>begin<br>if ParamCount &gt; 0 then begin (* 有执行参数传入 *)<br>sFileName := ParamStr(0); (* 取得参数内容 *)
 
谢谢yuzk2005的回答.<br>但是我没做过这方面的东西,能说具体点吗?<br>1 注册是什么意思?是在安装时使程序和和特定文件后缀名相关联,还是在程序里写代码?<br>2 ParamStr(0)取得的参数具体是什么东西啊?
 
怎么感觉 问题和内容不大一样啊
 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1778903<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=2010905<br>http://www.delphibbs.com/delphibbs/dispq.asp?lid=1665906
 
回mike1031:<br>ParamStr(0) 是你的应用程序的全名(包含路径名,但好象是 DOS 的 8.3 格式的)
 
我能得到文件名了,谢谢大家<br>但是我取得文件名后要写程序进行处理,出现错误时,如何进行断点调试呢?<br>因为这时程序是通过点击文件启动的,而不是在开发环境里直接启动的.
 
调试阶段不用这样做啊,可以直接在程序中打开一个文件然后调试运行不就可以了吗
 
yuzk2005 正解
 
楼主 要的是不是 像打开TXT文件一样,双击之后 Nodepad.exe 就将其自动载入?<br>如果是这个目的的话<br>yuzk2005 的做法是对的
 
文件名我已经取到了,谢谢<br>但是如何进行断点调试呢?这时程序是通过点击文件启动的,而不是在开发环境里直接启动的. &nbsp;<br>lyg的意思我明白,但是这个程序比较特殊,并不想word,notepad那样可以先启动程序再打开文件.所以如果通过先点击文件启动程序这种方式能进行断点调试嘛?
 
双击打开不就是在程序加个参数而已。<br>注册表是这样写的 ?:/程序路径/程序名称 %1<br>那个%1就表示你双击打开的文件名。<br>你给你的程序加个文件路径参数是一样的。
 
to qqjm<br>如何在调试时加参数?
 
从菜单Rum-&gt;Parameters打开 Run Parameters 在Parameters那里加入启动时的参数
 
多人接受答案了。
 
后退
顶部