急需解答!(50分)

  • 主题发起人 主题发起人 delphigril
  • 开始时间 开始时间
D

delphigril

Unregistered / Unconfirmed
GUEST, unregistred user!
uses shellapi;
procedure TForm1.N18Click(Sender: TObject);
var s,s1:string;
begin
s:=extractfilepath(paramstr(0));
// if s[length(s)]<>'/' then
s1:=s+'数据树/datatrees';//为exe文件

ShellExecute(handle, 'open','datatrees', Nil,pchar(s1), SW_SHOWNORMAL);
end;
为啥没有反应?
 
s1 := s + '数据树/datatrees'; //为exe文件
是什么意思,S1是路径还是可执行文件?
此处应该是存放路径的,但是看你的代码似乎是可执行文件了。
s1 := s + '数据树'; //为exe文件
可执行文件在当前可执行文件下的“数据树”目录
 
uses shellapi;
procedure TForm1.N18Click(Sender: TObject);
var s,s1:string;
begin
s:=extractfilepath(paramstr(0));
// if s[length(s)]<>'/' then
s1:=s+'数据树/datatrees.exe';//为exe文件

shellexecute(self.handle, nil, pchar(s1), nil, nil, SW_SW_SHOWNORMAL);
end;
 
uses shellapi;
procedure TForm1.N18Click(Sender: TObject);
var s,s1:string;
begin
s:=extractfilepath(paramstr(0));
// if s[length(s)]<>'/' then
s1:=s+'数据树';
ShellExecute(handle, 'open','datatrees', Nil,pchar(s1), SW_SHOWNORMAL);
end;
 
远帆写对了,是少了'.exe'
 
不是.exe的问题。[:)]
 
1、并非是Exe的问题,因你用了 Open 参数,所以写不写 .exe并无区别。
关键是你的文件名有误,即第三个参数,它应包括完整路径,如不写路径则Windows到
你的当前目录(你当前可执行文件所在目录)下寻找此文件,由于找不到所要调用的文件
当然就不会有什么动作。
//-----------------------------------
Pointer to a null-terminated string that specifies the file to open or print
or the folder to open or explore. The function can open an executable file or
a document file.
The function can print a document file.
//----------------------------------------
2、第5个参数也有误,这个参数是指你所要调用的可执行文件的执行目录,而你却指写了
文件名。(可以看一看Windows的快捷方式的属性)
//----------------
lpDirectory
Pointer to a null-terminated string that specifies the default directory.
//-----------------------




ShellExecute(handle, 'open','datatrees', Nil,pchar(s1), SW_SHOWNORMAL);
改为:
ShellExecute(handle, 'open',PChar(S1), Nil,pchar(S), SW_SHOWNORMAL);
即可。


 

Similar threads

S
回复
0
查看
712
SUNSTONE的Delphi笔记
S
S
回复
0
查看
707
SUNSTONE的Delphi笔记
S
I
回复
0
查看
696
import
I
I
回复
0
查看
709
import
I
I
回复
0
查看
263
import
I
后退
顶部