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
[Erledigt] Lazarus Linux prüfen ob WINE vorhanden ist
-
- Beiträge: 210
- Registriert: Do 24. Jan 2013, 21:22
[Erledigt] Lazarus Linux prüfen ob WINE vorhanden ist
Zuletzt geändert von Frank Ranis am Mo 11. Feb 2019, 12:09, insgesamt 1-mal geändert.
www.flz-vortex.de
Re: Lazarus Linux prüfen ob WINE vorhanden ist
Man könnte "which" fragen. Z.B. so
Es gibt sicher auch andere Möglichkeiten.
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')
Re: Lazarus Linux prüfen ob WINE vorhanden ist
In FileUtil gibt es auch
das geht auch.
Welche Variante schneller ist, wäre zu testen.
Code: Alles auswählen
FindDefaultExecutablePath('wine');
Welche Variante schneller ist, wäre zu testen.
-
- Beiträge: 210
- Registriert: Do 24. Jan 2013, 21:22
Re: Lazarus Linux prüfen ob WINE vorhanden ist
Hallo Theo,
vielen Dank , probier ich aus .
vielen Dank , probier ich aus .
theo hat geschrieben:In FileUtil gibt es auchdas geht auch.Code: Alles auswählen
FindDefaultExecutablePath('wine');
Welche Variante schneller ist, wäre zu testen.
theo hat geschrieben:Man könnte "which" fragen. Z.B. so
Es gibt sicher auch andere Möglichkeiten.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')
www.flz-vortex.de
-
- Beiträge: 210
- Registriert: Do 24. Jan 2013, 21:22
Re: Lazarus Linux prüfen ob WINE vorhanden ist
Hi ,
beide Varianten gehen prima , auf Geschwindigkeit kommt es nicht an.
Gruß
Frank
beide Varianten gehen prima , auf Geschwindigkeit kommt es nicht an.
Gruß
Frank
www.flz-vortex.de