希望大家能帮小妹我解决这个问题
做了一个右键菜单关联的程序
可是
为什么用ParamStr(1)显示出来的文件的名称不全啊
我是用 showmessage(ParamStr(1));
为什么好多文件名都变成了~1 、~2什么的了
比如说
一个叫“数据库更新记录.txt”的文件
用上面的showmessage显示的是“数据库~2.txt”了
大家能帮我解答下吗
[解决办法]
长文件名缩列形式~,在DOS下才会出现的哦!
[解决办法]
先定义两个函数:
function GetLongPathName(lpszShortPath: PChar; lpszLongPath: PChar; cchBuffer: DWORD): DWORD; stdcall; external kernel32 name 'GetLongPathNameA ';
function ExtractLongPathName(const FileName: string): string;
var
Buffer: array[0..MAX_PATH - 1] of Char;
begin
SetString(Result, Buffer, GetLongPathName(PChar(FileName), Buffer, SizeOf(Buffer)));
end;
然后把你的showmessage(ParamStr(1));
改写成showmessage(ExtractLongPathName(ParamStr(1)));