求 非EXE后缀的文件 以EXE执行文件方式运行方法!比如: cc.exe 后缀改名 cc.dat如何运行CC.DAT呢?别拿这个来忽悠
ShellExecute(Handle, 'open', pChar('cmd.exe'), PChar('/c c:\cc.dat'), nil, SW_HIDE);
ShellExecute(Handle, 'open', pChar('cmd.exe'), PChar('/c c:\cc.dat'), nil, SW_HIDE);
之后,扩展名为.dat的文件也可以正常执行了。
取消设定,执行:assoc .dat=
不过zbdzjx给的方案如果真的可行,看起来更简洁。
给个详细的代码。这种方法,就是将扩展名为DAT的在操作系统中注册成可执行文件。命令是在DOS方式下运行,估计用ShellExecute命令可以运行,或是改注册表应该也可以的。
担心的是,怕杀毒软件或操作系统会挡掉。
var
si: TStartupInfo;
pi: TProcessInformation;
const
path = 'c:\cc.dat';
begin
ZeroMemory(@si, SizeOf(si));
ZeroMemory(@Pi, SizeOf(pi));
si.cb := SizeOf(si); if CreateProcessA(path, '', nil, nil, False, 0, nil, nil, si, pi) then
begin
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
end;
end;