怎么样使一个扩展名不是.exe(其实是exe文件改名的)的程序能够执行??
因为这个文件是我用exe改名为dll的,为的是不让别人知道它是exe,但是却在主程序中要把它当作可执行程序执行。
谢谢各位!!!

解决方案 »

  1.   

    利用setFileAtrribe()函数来更改文件属性为normal,而后改为exe,运行,完成后改为dll,即可。
      

  2.   

    用CreateProcess,试过了,可以的。e:\\n.tmp是改了名字的notepad.exeSTARTUPINFO           si;
    PROCESS_INFORMATION   pi;ZeroMemory(&si, sizeof(STARTUPINFO));
    ZeroMemory(&pi, sizeof(PROCESS_INFORMATION));si.cb = sizeof(STARTUPINFO);CreateProcess("e:\\n.tmp",
                  "",
                  NULL,
                  NULL,
                  false,
                  0,
                  NULL,
                  NULL,
                  &si,
                  &pi
                  );
      

  3.   

    同ydaye(不用记,不用记,根本不用记!)
      

  4.   

    ydaye(不用记,不用记,根本不用记!)的方法是对的
      

  5.   

    谢谢各位,我试一下,如果可以我一定给分!!
    因为我写的是
    Webservice相关的Soap服务器
    提供标准webservice,但我不想利用IIS,所以只好自己写服务器了
    另外由于MSsoap Toolkit需要安装很多东东,并且只支持Com,所以我自己的服务器支持cgi(就不用注册哦)(标准cgi),需要支持com的就用cgi调用com..
    之所以不采用exe扩展名,是为了让给别人提供的endpoint不含exe.这样不用修改以前的C++函数代码就可以实现webservice服务了.
    呵呵对了,谁有支持cgi的服务器的代码,最好是类或者代码小一点也行.(我写了一个,不怎么好,正在调试中).
    谢谢各位了.
      

  6.   

    先把他COPY到另外一个可写可读的目录里成为EXE
    然后再CreateProcess就可以了
      

  7.   

    可以利用WaitForSingleObject来实现
      

  8.   

    一个程序可否执行取决于它的内部格式而不是后缀名.例如notepad.exe是个可执行程序,如果改成notepad.eee,在window状态下点击当然是不能启动,但在dos状态下键入全名notepad.eee还是一样可运行的.名字只是个名字而已,张百万未必就有百万的存款.
      

  9.   

    更进一步:
       怎样让用户单击一个name.txt文件(其实是name.exe文件改名的)按EXE文件执行。同时还能打开notepad.