可以用文件流打开,但是要选openread,和sharedenynone
//TfileStream

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
    fs:tfilestream;
    begin
    fs:=tfilestream.Create(application.ExeName,fmopenread,fmsharedenynone);
    fs.Free;
    end;打不开呀!
      

  2.   

    fs:=tfilestream.Create(application.ExeName,fmopenread or fmsharedenynone);
      

  3.   

    http://go4.163.com/lovejingtao/mystream.htm
      

  4.   

    这是我编的一个程序中的一段代码,是打开执行文件自身,一点问题都没有。
    var
      F: Integer;
      lpFileName: Array[0..MAX_PATH - 1] of Char;
    begin
      GetModuleFileName(hInst, lpFileName, MAX_PATH);
      F := CreateFile(lpFileName,
        GENERIC_READ,
        FILE_SHARE_READ,
        nil,
        OPEN_EXISTING,
        FILE_ATTRIBUTE_ARCHIVE or FILE_ATTRIBUTE_HIDDEN or FILE_ATTRIBUTE_NORMAL or FILE_ATTRIBUTE_READONLY,
        0);
      if F > 0 then
      begin
      

  5.   

    to prometheusphinx(白日梦):
    你的代码执行过后f=-1呀to lovejingtao()
    还是打不开呀.只能用fmsharedenynone,但是不能读取
      

  6.   

    文件已经存在,你用 create_new 参数当然打不开啦。用 OPEN_EXISTING
    代替 CREATE_NEW。