第一种情况:程序如下:
unit Unit2;interfaceuses Windows,SysUtils,Messages;const
 LOGFILE = 'debug.txt';procedure WriteLog(LogStr : String);implementation
procedure WriteLog(LogStr : String);
var
  F: Textfile;
  ToWrite : String;
begin
  if not FileExists(LOGFILE) then
               begin
               AssignFile(F, LOGFILE);
               Rewrite(F);
               WriteLn(F,'SKYPE events log');
               WriteLn(F,'Date       Hour     Event');
               CloseFile(F);
               end;  ToWrite := DateToStr(Date)+' '+TimeToStr(Time)+' '+LogStr;
  AssignFile(f, LOGFILE); {Assigns the Filename}
  Append(f); {Opens the file for editing}
  Writeln(f, ToWrite);
  Closefile(f); {Closes file F}
end;
end.
---------------------------------------------------------------------------------------------------
使用AssignFile,在用户帐户控制(UAC)模式是打不开文件的.但是本人使用Delphi 2007 编译程序是没有问题的,所以觉得有可能是否跟某些编译选项有关,故将此问题发到网上向大侠请教!
或者是否有牛人做的补丁,好像现在Broland不在退出Delphi7的补丁吧!
----------------------------------------------------------------------------------------------------
2.TFileStream,Tinifile,也有此问题,很是郁闷!!!实在是没什么分啦!都怪我懒!很少发帖挣分!真惨!等我挣啦!在给各位大虾补上!!!
 

解决方案 »

  1.   

    UAC是任何程序都控制的和Delphi没联系的
      

  2.   

    关注,顶一下.
    听说可以用manifest方法处理。
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity
      version="1.0.0.0"
      processorArchitecture="X86"
      name="mulitray.exe.manifest"
      type="win32"
    />
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
      <security>
        <requestedPrivileges>
            <requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
        </requestedPrivileges>
      </security>
    </trustInfo>
    </assembly> 
    把以上保存为'程序名.exe.manifest',然后放在同一目录下就可以了。但这种方式也不理想。
    最好是可以直接写到EXE里,只知道VC可以,DELPHI不知如何处理。