代码如下:
但程序退出后进程中仍有EXCEL的进程。
if not VarIsEmpty(ExcelApp) then begin //释放对象
      ExcelApp.WorkBooks.Close;
        //ExcelApp.Disconnect;
      ExcelApp.displayAlerts:=false;
      ExcelApp.ScreenUpdating:=true;
      ExcelApp.Quit;
      ExcelApp := Unassigned;
    end;
怎样创建INI里面的SESSION
我想新建一个SESSION,怎么实现?

解决方案 »

  1.   

    excel.exe我都是用段代码直接结束'excel.exe'进程TIniFile有ReadString,同样也有writestring啊
      

  2.   

    skylkj:你好
    excel.exe我都是用段代码直接结束'excel.exe'进程 
    怎么结束啊?杀进程?TIniFile有ReadString,同样也有writestring啊我知道有writestring,writestring是写对应session的属性的值吧?
    比如ini文件如下:[student]
    name=张韶涵
    addreess=武汉
    writestring是用来写name 和addreess 的值吧?inifile.writestring('student','name','张韶涵');我的问题是如何写创建[student]?
    谢谢
      

  3.   

    以前网上找的,后来我一直用killtask('excel.exe');来做掉excel的进程....function killtask(exefilename:string):integer;
    const 
       PROCESS_TERMINATE = $0001;
    var 
       continueloop: boolean;
       FSnapshotHandle: THandle;
       FProcessEntry32: TProcessEntry32;
    begin 
    Result := 0; 
    FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); 
    FProcessEntry32.dwSize := SizeOf(FProcessEntry32); 
    ContinueLoop := Process32First(FSnapshotHandle, FProcessEntry32); while Integer(ContinueLoop) <> 0 do 
       begin
       if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
          UpperCase(ExeFileName)) or (UpperCase(FProcessEntry32.szExeFile) =
          UpperCase(ExeFileName))) then
          Result := Integer(TerminateProcess(
       OpenProcess(PROCESS_TERMINATE,
       BOOL(0),
       FProcessEntry32.th32ProcessID),
       0));
       ContinueLoop := Process32Next(FSnapshotHandle, FProcessEntry32);
       end;
    CloseHandle(FSnapshotHandle);
    end;
    ini文件本质上也就是一个txt文档,你把它当成个txt来处理就是了.
      

  4.   

    skylkj:你好 我调用了上面的代码,可EXCEL还是没有杀掉。晕死了。
      

  5.   

    killtask('EXCEL.exe');
    大小写的问题? 不清楚了...我一直是这么干的
      

  6.   

    var IniFile:TIniFile;
    begin
      inherited;
      IniFile:=TIniFile.Create(ExtractFilePath(paramstr(0))+'FTP.ini');
      try
        with IniFile do
        begin
          EdtIP.Text:=ReadString('IP','IP','192.168.1.1');
          EdtUser.Text:=ReadString('User','User','admin');
          EdtPass.Text:=ReadString('Pass','Pass','admin');
        end;
      finally
        IniFile.Free;
      end;
      

  7.   

    不好意思,已经可以杀掉EXCEL.EXE了,我再等等,看能不能解决第二个问题,谢谢你了。
      

  8.   

    第二个问题你就把ini当成txt来处理用个Tstringlist,loadfromfile,然后该加什么加什么,之后再savetofile回去
      

  9.   

    var
      sfilename:string;
      iniFile: TextFile;
    begin
      sfilename := GetCurrPath + 'configini.INI';
      assignfile(iniFile, sfilename);
      Reset(iniFile);
      writeln('1222');
      CloseFile(iniFile);end;这样写为什么不行?
    好像什么都没有写入。
      

  10.   

    sfilename := GetCurrPath + 'configini.INI'; 
    assignfile(iniFile,sfilename);
    rewrite(iniFile);
    writeln(iniFile,'asdasd');
    closefile(iniFile);
      

  11.   


    procedure TLoginFrm.WriteIni(iFile, iSection: String; Const iName, iValue: Array of String);
    var f: TIniFile;
        i: Integer;
    begin
      f := TIniFile.Create(iFile);
      try
        for i:=0 to Length(iName)-1 do
          f.WriteString(iSection, iName[i], '"'+ iValue[i] + '"');
      finally
        f.Free;
      end;
    end;
      

  12.   

    skylkj:你好 
    sfilename := GetCurrPath + 'configini.INI';  
    assignfile(iniFile,sfilename); 
    rewrite(iniFile); 
    writeln(iniFile,'asdasd'); 
    closefile(iniFile);我不想用rewrite(iniFile); 
    rewrite(iniFile); 会把整个文件覆盖重写,这是我不想要的,
    我只想在最后面追加。
    to PrettyMurphy:
    你的代码只是给ini文件已有的SESSION赋值吧?并不是创建新的SESSIONS吧?谢谢你们的热情回复。
      

  13.   

    谢谢两位的细心指导。认真看了一下帮助文件,问题已经解决:
    方法:
    var
      sFileName:string;
      iniFiles: TIniFile;
      Strings: TStrings;
    begin
      sFileName := sCurrentPath + '\inifiles\configinibak.ini';
      iniFiles := TIniFile.Create(sFileName);
      Strings := TStrings.Create;
      iniFiles.ReadSectionValues(trim(Ed_BossServId_Add.text), Strings);
      iniFiles.WriteString(trim(Ed_Add.text), 'icpcode', trim(Ed_Icp_add.text));
      iniFiles.WriteString(trim(Ed_b_Add.text), 'icpservid', trim(Ed_Icp_Add.text));
      iniFiles.Free;  Strings.Destroy;
      showmessage('修改成功');
    end;
      

  14.   

    TIniFile.Create 
    ReadString()TIniFile.Create 
    ReadString()