求 非EXE后缀的文件 以EXE执行文件方式运行方法!比如: cc.exe 后缀改名 cc.dat如何运行CC.DAT呢?别拿这个来忽悠
 ShellExecute(Handle, 'open', pChar('cmd.exe'), PChar('/c c:\cc.dat'), nil, SW_HIDE);

解决方案 »

  1.   

    命令行下面执行:assoc .dat=exefile
    之后,扩展名为.dat的文件也可以正常执行了。
    取消设定,执行:assoc .dat=
      

  2.   

    把那个文件暗中复制到临时路径,并改名为EXE,就可以执行了。我都是这样做的。
    不过zbdzjx给的方案如果真的可行,看起来更简洁。
      

  3.   


    给个详细的代码。这种方法,就是将扩展名为DAT的在操作系统中注册成可执行文件。命令是在DOS方式下运行,估计用ShellExecute命令可以运行,或是改注册表应该也可以的。
    担心的是,怕杀毒软件或操作系统会挡掉。
      

  4.   

    难道你只知ShellExecute就不知道CreateProcess
      

  5.   


    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;