从命令行参数得到全长文件名(50分)

  • 主题发起人 主题发起人 我爱PASCAL
  • 开始时间 开始时间

我爱PASCAL

Unregistered / Unconfirmed
GUEST, unregistred user!
听说要用shellex,不知怎么用?
 
uses shellapi;
ShellExecute(handle,'open',PChar(文件名),nil,nil,SW_ShowNormal);
 
答非所问哪,你这是执行外部程序
 
用paramstr呀,注意如果参数中包含空格,则一定要把参数用双引号引起来.
比如

project1.exe "c:/program files/acd/acdsee.exe"
 
得到所有的参数
var i:integer;
begin
for i:=0 to Paramcount do
showmessage(paramstr(i));
end;
注意i=0时即ParamStr(0)得到的是可执行文件的文件名,同application.exename得到的一样.
 
你那只能取8位文件名,长了只能用~n来表示
 
长的用 ParamStr 也能得到的。
 
单从命令行输入是能得到全长文件名的,我说的是双击打开一个文件,如:
aaaaaaaaaaaaaaaaaaaaaaaaaaa.txt ,双击打开,
paramstr(1),只能得到 aaaaaa~1.txt
 
根据这个短文件名,去搜索一下文件。搜索信息中应该能得到长文件名。
 
我终于找到了,不用什么shell,就是以下这个函数
http://www.playicq.com/dispdoc.php?t=55&id=56
感谢www.playicq.com上的tomore提供的这个函数和以上朋友的关心,分不日就发。
 
后退
顶部