procedure TForm1.FormCreate(Sender: TObject); var IniFile: TIniFile; begin if FileExists(ExtractFilePath(ParamStr(0)) + 'Test.ini') then begin IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Test.ini'); Edit1.Text := IniFile.readString('item', 'browser', ''); IniFile.Free; end; StatusBar1.SimpleText := '已经加载:' + ExtractFilePath(ParamStr(0)) + 'Test.ini'; end;
procedure TForm1.Button1Click(Sender: TObject); var IniFile: TIniFile; begin IniFile := TIniFile.Create(ExtractFilePath(ParamStr(0)) + 'Test.ini'); IniFile.writeString('item', 'browser', Edit1.Text); IniFile.Free; end;
procedure TForm1.Button2Click(Sender: TObject); begin if OpenDialog1.Execute then Edit1.Text := OpenDialog1.FileName; end;
procedure TForm1.correctBtnClick(Sender: TObject); var IniFile: TIniFile; begin if FileExists(Edit1.Text) then if '.desktop' = ExtractFileExt(Edit1.Text) then begin IniFile := TIniFile.Create(Edit1.Text); Edit1.Text := IniFile.ReadString('Desktop Entry', 'Exec', ''); IniFile.Free; end; if '.app' = ExtractFileExt(Edit1.Text) then begin OpenDialog1.InitialDir := Edit1.Text; if OpenDialog1.Execute then Edit1.Text := OpenDialog1.FileName; end; end;
procedure TForm1.Edit1Change(Sender: TObject); begin if pos(' ', Edit1.Text) > 0 then StatusBar1.SimpleText := '请检查是否存在空格,请把空格和之后的参数去掉'; if '.desktop' = ExtractFileExt(Edit1.Text) then StatusBar1.SimpleText := 'linux环境请检查是否是.desktop文件,是的话需要修正'; if '.app' = ExtractFileExt(Edit1.Text) then StatusBar1.SimpleText := 'macos环境请检查是否是.app目录, 是的话需要修正';
if FileExists(Edit1.Text) then begin attr := FileGetAttr(Edit1.Text); if (attr and faSymLink) > 0 then StatusBar1.SimpleText := '如果不能正常运行,请检查是否是链接,尝试原文件.文件属性:'+IntToStr(attr); end; end;
//x-www-browser http://www.baidu.com procedure TForm1.testBtnClick(Sender: TObject); var Process: TProcess; begin if pos(' ', Edit1.Text) > 0 then StatusBar1.SimpleText := '请检查可执行文件路径是否存在空格'; Process := TProcess.Create(nil); try //ExecuteProcess The calling process runs synchronously: it 'hangs' until the external program has finished //ExecuteProcess(MarshaledAString(UTF8String(Edit1.Text)),'https://blog.csdn.net/qiaozhangchi',[ExecInheritsHandles]); // if RunCommand(Edit1.Text,['https://blog.csdn.net/qiaozhangchi'],s) then Process.InheritHandles := False; Process.Options := []; Process.ShowWindow := swoShow; Process.Executable := Edit1.Text; Process.Parameters.Add('https://blog.csdn.net/qiaozhangchi'); Process.Execute; StatusBar1.SimpleText := '已经执行'; except on E: EOSError do StatusBar1.SimpleText :='请检查文件路径是否有空格或不能直接执行的后缀名,请修正'; end; Process.Free; end;