D
dadabox
Unregistered / Unconfirmed
GUEST, unregistred user!
我想用SHELLEXECUTEINFO打开指定的文件,本来只要指定文件名就行了。
...
FillChar(Info, SizeOf(Info), 0);
info.cbSize := SizeOf(ShellExecuteInfo);
info.Wnd := Handle;
info.lpVerb := 'open'; //用open的方式
info.lpFile := PChar(TmpFileName); //这个地方指定好文件名即可
info.nShow := SW_SHOWNORMAL;
info.fMask := SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(@info);
这样就可以打开文件,这一点我是知道的。但问题来了,因为我想文件以临时文件的方式
存在,也就是说TmpFileName本来的名字是'123.doc',但我相以123.tmp的形式放在硬盘上,
但我要打开这个文件。文件的类型多种多样,也有可能是.xls,.txt,所以我想传送临时文
件名,打开方式指定用word,这样就可以用WORD打开这个123.tmp。
因为Windows能够根据扩展名自动打开某个文件。所以我想在此处怎么改一下,让
SHELLEXECUTEINFO通过我指定的临时文件名,但却用正确的方法打来此文件。
因为我要得到打开这个文件的进程,所以必须用SHELLEXECUTEINFO来实现。不知哪位能
帮我一把。大伙儿看看,我的表述清楚了没有?谢谢啦!
...
FillChar(Info, SizeOf(Info), 0);
info.cbSize := SizeOf(ShellExecuteInfo);
info.Wnd := Handle;
info.lpVerb := 'open'; //用open的方式
info.lpFile := PChar(TmpFileName); //这个地方指定好文件名即可
info.nShow := SW_SHOWNORMAL;
info.fMask := SEE_MASK_NOCLOSEPROCESS;
ShellExecuteEx(@info);
这样就可以打开文件,这一点我是知道的。但问题来了,因为我想文件以临时文件的方式
存在,也就是说TmpFileName本来的名字是'123.doc',但我相以123.tmp的形式放在硬盘上,
但我要打开这个文件。文件的类型多种多样,也有可能是.xls,.txt,所以我想传送临时文
件名,打开方式指定用word,这样就可以用WORD打开这个123.tmp。
因为Windows能够根据扩展名自动打开某个文件。所以我想在此处怎么改一下,让
SHELLEXECUTEINFO通过我指定的临时文件名,但却用正确的方法打来此文件。
因为我要得到打开这个文件的进程,所以必须用SHELLEXECUTEINFO来实现。不知哪位能
帮我一把。大伙儿看看,我的表述清楚了没有?谢谢啦!