我想做这样的事情:
ShellExecute(0, nil, PChar('E:\generic\mpv\mpv.exe'), PChar(''+TntOpenDialog1.FileName+''), nil, SW_HIDE);
但是什么也没发生。
当我尝试使用如下代码进行操作时:
TntLabel1.Caption:=PChar(TntOpenDialog1.FileName);
它只是显示我之前选择的文件的第一个字母。
我怎么解决这个问题?
如果您希望在文件路径中留有空格,则无法传递如下参数 ''+myparam+''
var
myparam : AnsiString;
begin
myparam := 'test file nr 10.txt';
ShellExecute(0, nil, PChar('...'), PChar(''+myparam+''), nil, SW_HIDE);
ParamStr(1)只会给您test
!
如果路径中有空格,请按以下方式使用它:
ShellExecute(0, nil, PChar('...'), PChar('"'+myparam+'"'), nil, SW_HIDE);
请尝试以下。但是请注意从FFileName: WideString
到AnsiString的转换,信息可能会丢失。仅当文件路径中没有特殊字符时才使用此选项。
...
var
AnsiStr : AnsiString;
...
begin
AnsiStr := TntOpenDialog1.FileName;
ShellExecute(0, nil, PChar('E:\generic\mpv\mpv.exe'), PChar('"'+AnsiStr+'"'), nil, SW_HIDE);
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句