达到这样一个效果:拖动文件到你的可执行文件上,自动运行可执行文件并打开你拖入的这个文件,比如Windows自带的NOTEPAD.EXE,拖动一个.txt文件到它

  • 主题发起人 主题发起人 ISY
  • 开始时间 开始时间
I

ISY

Unregistered / Unconfirmed
GUEST, unregistred user!
达到这样一个效果:拖动文件到你的可执行文件上,自动运行可执行文件并打开你拖入的这个文件,比如Windows自带的NOTEPAD.EXE,拖动一个.txt文件到它上面,就自动运行NOTEPAD.EXE,并打开这个.txt文件。(5分)<br />达到这样一个效果:拖动文件到你的可执行文件上,自动运行可执行文件并打开你拖入的<br>这个文件,比如Windows自带的NOTEPAD.EXE,拖动一个.txt文件到它上面,就自动运行<br>NOTEPAD.EXE,并打开这个.txt文件。<br>实在不好意思,分都用完了,才攒了5分,抱歉抱歉。
 
只有 5 分啊。5555<br>var<br>sFile:string;<br>begin<br>&nbsp; if ParamCount &gt; 0 then<br>&nbsp; begin<br>&nbsp; sFile := ParamStr(1);<br>&nbsp; ShellExecute(0,'open','执行.exe', PChar(sFile),<br>&nbsp; &nbsp; &nbsp;PChar(ExtractFilePath(ParamStr(0))),SW_ShowNormal);<br>&nbsp; end<br>&nbsp; else<br>&nbsp; ShellExecute(0,'open','执行.exe', nil,<br>&nbsp; &nbsp; &nbsp;PChar(ExtractFilePath(ParamStr(0))),SW_ShowNormal);<br>end;
 
多谢小雨哥,5分是太少了,不过这是我现在仅有的5分了,不好意思啊。
 
小雨哥,我的意思是比如我在做一个程序,这个程序要有这样的效果:<br>生成的可执行文件就象Windows自带的NOTEPAD.EXE(或者其他程序),拖动一个.txt文件<br>到它上面,就自动运行NOTEPAD.EXE,并打开这个.txt文件。<br><br>如果答案没变的话,那么你提供的这段程序应该放在什么位置???form.create?
 
可以放在 FormCreate 里。因为文件放到它上面 Windows 就开始启动这个程序,<br>在 FormCreate 里直接接收拖过来的文件名字比较直观。<br>另外你要考虑的是如果拖的不是一个文件怎么办?这样你就需要用一个循环保存每一个文<br>件名字,再逐一打开。不管分数多少,我还是尽量详细吧,没分也是要答的。呵呵。<br>procedure TFrm1.FormCreate(Sender: TObject);<br>Var<br>i:Integer;<br>StrList:TStringList; &nbsp;// 如果需要在其他过程中使用,提高它的可见度<br>begin<br>&nbsp; &nbsp;if ParamCount &gt; 0 then &nbsp; &nbsp; (* 有参数传入 *)<br>&nbsp; &nbsp;begin<br>&nbsp; &nbsp; StrList:=TStringList.Create;<br>&nbsp; &nbsp; for i:=1 to ParamCount do<br>&nbsp; &nbsp; StrList.Add(ParamStr(i));<br>&nbsp; &nbsp;end;<br>.....<br>end;
 
这个“执行.exe”就是这个可执行文件的文件名了,因为文件名可能会改动,可执行文件<br>能不能动态的得到自己的文件名?我记得有个函数的,具体是什么忘了,能告诉我吗?<br>谢谢。
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部