[Erledigt] Lazarus Linux prüfen ob WINE vorhanden ist

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut

[Erledigt] Lazarus Linux prüfen ob WINE vorhanden ist

Beitragvon Frank Ranis » 11. Feb 2019, 10:55 [Erledigt] Lazarus Linux prüfen ob WINE vorhanden ist

Hallo ,

bin ja seit einiger Zeit dabei mein Lieblings-Projekt (FLZ_Vortex / Aerodynamik-Berechnungen) , von Delphi6->Lazarus->Linux zu portieren.
Mit dem Kernprogramm und diverse Hilfsprogrammen (die ich selber verbrochen habe) geht es gut vorann.

Im Laufe der letzten 10 Jahre haben mir nette Kollegen einige hilfreiche Tools gebaut , die ich dann zum Paket dazugelegt habe.

Blöd , es sind Windows(32Bit)-Applikationen und eine Portierung auf Linux ist (aus diversen Gründen) nicht machbar.

Per WINE kann ich diese Tool's aber weiterhin starten und verwenden , so weit so gut.

Ist auf dem Anwenderrechner kein WINE vorhanden , geht das Starten der Tools ins Leere.

In diesem Fall möchte ich dem User , durch ein Info , darauf hinweisen , das er bitte WINE nachinstalliert.

Ich bin ja auch totaler Linux-Anfänger und benötige mal einen Klapps von euch .

Brauch also ne Funktion , die mir prüft ob WINE(für 32Bit) vorhanden ist , einfaches Result True / False .

Gruß

Frank
Zuletzt geändert von Frank Ranis am 11. Feb 2019, 13:09, insgesamt 1-mal geändert.
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon theo » 11. Feb 2019, 11:33 Re: Lazarus Linux prüfen ob WINE vorhanden ist

Man könnte "which" fragen. Z.B. so

Code: Alles auswählen
uses process;
 
function CheckInstalled(Name: string): boolean;
var
  AProcess: TProcess;
  AStringList: TStringList;
begin
  AProcess := TProcess.Create(nil);
  AProcess.Executable := '/usr/bin/which';
  AProcess.Parameters.Add(Name);
  AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
  AProcess.Execute;
  AStringList := TStringList.Create;
  AStringList.LoadFromStream(AProcess.Output);
  Result := Length(Trim(AStringList.Text)) > 0;
  AStringList.Free;
  AProcess.Free;
end;     
...
CheckInstalled('wine')


Es gibt sicher auch andere Möglichkeiten.
theo
 
Beiträge: 8172
Registriert: 11. Sep 2006, 19:01

Beitragvon theo » 11. Feb 2019, 12:08 Re: Lazarus Linux prüfen ob WINE vorhanden ist

In FileUtil gibt es auch
Code: Alles auswählen
 
FindDefaultExecutablePath('wine');

das geht auch.

Welche Variante schneller ist, wäre zu testen.
theo
 
Beiträge: 8172
Registriert: 11. Sep 2006, 19:01

Beitragvon Frank Ranis » 11. Feb 2019, 12:39 Re: Lazarus Linux prüfen ob WINE vorhanden ist

Hallo Theo,

vielen Dank , probier ich aus .

theo hat geschrieben:In FileUtil gibt es auch
Code: Alles auswählen
 
FindDefaultExecutablePath('wine');

das geht auch.

Welche Variante schneller ist, wäre zu testen.
theo hat geschrieben:Man könnte "which" fragen. Z.B. so

Code: Alles auswählen
uses process;
 
function CheckInstalled(Name: string): boolean;
var
  AProcess: TProcess;
  AStringList: TStringList;
begin
  AProcess := TProcess.Create(nil);
  AProcess.Executable := '/usr/bin/which';
  AProcess.Parameters.Add(Name);
  AProcess.Options := AProcess.Options + [poWaitOnExit, poUsePipes];
  AProcess.Execute;
  AStringList := TStringList.Create;
  AStringList.LoadFromStream(AProcess.Output);
  Result := Length(Trim(AStringList.Text)) > 0;
  AStringList.Free;
  AProcess.Free;
end;     
...
CheckInstalled('wine')


Es gibt sicher auch andere Möglichkeiten.
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

Beitragvon Frank Ranis » 11. Feb 2019, 13:08 Re: Lazarus Linux prüfen ob WINE vorhanden ist

Hi ,

beide Varianten gehen prima , auf Geschwindigkeit kommt es nicht an.

Gruß

Frank
www.flz-vortex.de
Frank Ranis
 
Beiträge: 150
Registriert: 24. Jan 2013, 22:22
OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z) | 
CPU-Target: xxBit
Nach oben

• Themenende •

Zurück zu Freepascal



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste

porpoises-institution
accuracy-worried