打开外部文件(70分)

  • 主题发起人 主题发起人 Zythum
  • 开始时间 开始时间
Z

Zythum

Unregistered / Unconfirmed
GUEST, unregistred user!
<br>程序中用按钮Button1打开一个文件,<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; ShellExecute(Handle, 'Open', 'c:/a.txt', '', '', SW_ShowNormal);<br>end;<br><br>如何实现下列功能:<br>当文件a.txt未打开时,按下按钮Button1则打开文件a.txt,<br>当文件a.txt已打开时,按下按钮Button1则使已打开的文件a.txt窗口置于最上方。<br>
 
<br>fhandle:=findwindow找到a.txt窗口的句柄<br>if fhandle=nil then<br>&nbsp; shellexecute<br>else<br>&nbsp; setwindowlong设置窗口属性使他topmost<br>End;<br>
 
<br>如果已打开文件 c:/windows/a.txt<br><br>则用Findwindow函数会判断错!<br>
 
用写的方式打开此文件,<br>若不能打开,<br>说明这个文件已被使用
 
wrench说得对<br>不过如何判断窗口呢?<br>我也想知道
 
》如果已打开文件 c:/windows/a.txt<br><br>》则用Findwindow函数会判断错!<br>&nbsp; 怎么个错法???<br>
 
对呀,findwindow, 怎么会出错呀?
 
我不明白,一个*.txt文件怎么能findwindow??????????????????????????????????
 
呵呵,我也觉得有问题,打开一个txt文件不一定要用notepad,那就没法找到<br>打开这个txt文件的程序句柄了。<br><br>除非用<br>&nbsp; ShellExecute(Handle, 'Open', 'notepad', 'c:/a.txt', '', SW_ShowNormal);<br>然后查找notepad的句柄。<br>
 
有个幼稚的问题,我用shellexecute时编译出错,为什么!
 
&gt;&gt;有个幼稚的问题,我用shellexecute时编译出错,为什么!<br>在 uses部分加入 ShellApi !
 
procedure TForm3.BitBtn3Click(Sender: TObject);<br>var f:textfile;<br>&nbsp; &nbsp; s:string;<br>begin<br>application.CreateForm(tform2,form2);<br>&nbsp; form2.memo1.lines.clear;<br>&nbsp; opendialog1.filename:=filestr1;<br>&nbsp; assignfile(f,filestr1);<br>&nbsp; reset(f);<br>&nbsp; while not eof(f) do<br>&nbsp; begin<br>&nbsp; s:='';<br>&nbsp; readln(f,s);<br>&nbsp; form2.memo1.lines.add(s);<br>&nbsp; end;<br>&nbsp; closefile(f);<br>&nbsp; form2.show;<br>end;<br><br>
 
function executefile(const filename,params,,defaultdir:string;showcmd:<br>integer):thandel;是最简单的方法,<br>example:<br>executefile('c:/program~1/winamp/winamp.exe','winamp.m3u','d:/mp3/',0);<br>程序将自动打开WINAMP播放MP3.<br>见99年电脑报;
 
接受答案了.
 
后退
顶部