Programm über Parameter steuern
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Programm über Parameter steuern
Hallo,
folgende Problematik.
Eine GUI-Anwendung schicke ich mit Form1.Hide in den Hintergrund und dort macht sie ihern Job.
Nun suche ich nach einer Möglickeit - z.B. über einen Parameter
projekt1 -S (auf der Konsole)
im Programm ein Form.Show zu erzeugen.
Wie kann man soetwas realisieren ?
Gruß Frank
folgende Problematik.
Eine GUI-Anwendung schicke ich mit Form1.Hide in den Hintergrund und dort macht sie ihern Job.
Nun suche ich nach einer Möglickeit - z.B. über einen Parameter
projekt1 -S (auf der Konsole)
im Programm ein Form.Show zu erzeugen.
Wie kann man soetwas realisieren ?
Gruß Frank
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Programm über Parameter steuern
Code: Alles auswählen
procedure TForm1.FormCreate(Sender: TObject);
begin
if ParamStr(1) = '-s' then Self.Show;
end;
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Programm über Parameter steuern
Somit werden dir alle Parameter aufgelistet.
So nebenbei, gibt die ParamStr(0), der Name deines Programmes aus.
Code: Alles auswählen
var
i: integer;
begin
for i := 1 to ParamCount do begin
WriteLn(ParamStr(i));
end;
end.
So nebenbei, gibt die ParamStr(0), der Name deines Programmes aus.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Programm über Parameter steuern
Nein, ihm werden nicht alle Parameter aufgelistet, denn offensichtlich bearbeitet er ein GUI-Programm. Und da hilft WriteLn nicht viel.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Programm über Parameter steuern
Daran liegt ein Problem. Da die Instanz schon läuft, kann man ihr nicht per Aufruf Parameter übergeben -- der Aufruf ist Vergangenheit, denn die Instanz läuft schon.
Ich rate, die Instanz regelmäßig auf die Existenz einer Datei zu prüfen, im Falle der Existenz diese zu löschen und sich mit Show wieder sichtbar zu machen. Wie man die Datei erzeugt? Nun, man ruft eine zweite Instanz der Anwendung mit dem besagten Parameter auf. Die tut nix, als die Datei zu erzeugen und sich selbst zu beenden. Daraufhin sieht die erste Instanz die Datei und macht sich sichtbar ...
Ich rate, die Instanz regelmäßig auf die Existenz einer Datei zu prüfen, im Falle der Existenz diese zu löschen und sich mit Show wieder sichtbar zu machen. Wie man die Datei erzeugt? Nun, man ruft eine zweite Instanz der Anwendung mit dem besagten Parameter auf. Die tut nix, als die Datei zu erzeugen und sich selbst zu beenden. Daraufhin sieht die erste Instanz die Datei und macht sich sichtbar ...
Ceterum censeo computatores per Pascal docendos esse.
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Programm über Parameter steuern
Moment, jetzt werden hier zwei verschiedene Dinge aus dem Posting gelesen.
@DL3AD: Was möchtest du machen?
@DL3AD: Was möchtest du machen?
- Das Programm startet normalerweise ohne das Form anzuzeigen. In Ausnahmefällen möchtest du es starten und das Form soll erscheinen. Dies willst du per Startparameter lösen.
oder - Das Programm läuft und du willst dem laufenden Programm die Anweisung geben das Form anzuzeigen.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Programm über Parameter steuern
Nein, ihm werden nicht alle Parameter aufgelistet, denn offensichtlich bearbeitet er ein GUI-Programm. Und da hilft WriteLn nicht viel.
Ich dachte, das Ganze bezieht sich auf folgenden Thread: viewtopic.php?f=55&t=11165
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 478
- Registriert: Fr 13. Sep 2013, 12:07
- OS, Lazarus, FPC: Debian Bullseye (L 2.2.0)
- CPU-Target: 64Bit
- Wohnort: Rügen
Re: Programm über Parameter steuern
Hallo,
nein ich beziehe mich nicht auf den anderen Thread.
Ich starte eine GUI Anwendung in der mittels Form.Hide das Form unsichtbar gemacht wird.
Nun möchte ich durch irgendeine Interaktion dem laufendem Programm mitteilen das es Form.Show machen soll.
Ob dass nun Parameter, Befehl oder Anweisung heißt ist egal.
Ich sitze vor dem Rechner und mache etwas und das Form ist zu sehen (unter Win und Linux)
Wie machen ?
nein ich beziehe mich nicht auf den anderen Thread.
Ich starte eine GUI Anwendung in der mittels Form.Hide das Form unsichtbar gemacht wird.
Nun möchte ich durch irgendeine Interaktion dem laufendem Programm mitteilen das es Form.Show machen soll.
Ob dass nun Parameter, Befehl oder Anweisung heißt ist egal.
Ich sitze vor dem Rechner und mache etwas und das Form ist zu sehen (unter Win und Linux)
Wie machen ?
- m.fuchs
- Lazarusforum e. V.
- Beiträge: 2640
- Registriert: Fr 22. Sep 2006, 19:32
- OS, Lazarus, FPC: Winux (Lazarus 2.0.10, FPC 3.2.0)
- CPU-Target: x86, x64, arm
- Wohnort: Berlin
- Kontaktdaten:
Re: Programm über Parameter steuern
Ok, das ist dann nicht über ParamStr lösbar.
Möglichkeiten gibt es da einige:
Kommt ein bisschen auf das Anwendungsszenario an.
Möglichkeiten gibt es da einige:
- Regelmäßig auf eine Datei prüfen wie diogenes schon vorschlug.
- Über irgendein Protokoll (DDE, HTTP, ...) eine Botschaft an das Programm senden.
- Ein Trayicon verwenden um auf das Programm zuzugreifen.
- ...
Kommt ein bisschen auf das Anwendungsszenario an.
Software, Bibliotheken, Vorträge und mehr: https://www.ypa-software.de
-
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Programm über Parameter steuern
Ein Protokoll ist sicher die eleganteste Lösung, macht aber die Anwendung davon abhängig, ob das BS das Protokoll kennt. Bey TrayIcon muss die Oberfläche das können. Können die meisten. "Meine" Methode ist am generischsten, wenn ich so sagen darf. Damit könnte man auch reine Konsolenanwendungen im Hintergrund steuern.
Ceterum censeo computatores per Pascal docendos esse.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Programm über Parameter steuern
Vielleicht hilft die Komponente UniqueInstance weiter.
http://wiki.freepascal.org/UniqueInstance/de#Verlauf
http://wiki.freepascal.org/UniqueInstance/de#Verlauf
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Programm über Parameter steuern
Für mich sogar interessant, aber kann man damit auch eine Urinstanz steuern? Das ist es ja, was unser DL3EAD gefragt hat, oder?
Ceterum censeo computatores per Pascal docendos esse.
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Programm über Parameter steuern
aber kann man damit auch eine Urinstanz steuern?
Im Wiki steht dies: SendParameters (default = false): Sendet vor dem Beenden die ggf. übergebenen Parameter an die bereits laufende Instanz.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 200
- Registriert: So 11. Jul 2010, 18:39
- OS, Lazarus, FPC: Linux
- CPU-Target: 64 Bit
- Wohnort: Wien
- Kontaktdaten:
Re: Programm über Parameter steuern
Na, dann ist's OK
Ceterum censeo computatores per Pascal docendos esse.