Startmenü zum Starten von Programmen

Alle Fragen rund Antworten rund um die ACMP Client Commands und Container
IBS
Beiträge: 34
Registriert: Di Feb 26, 2013 5:17 pm

Hallo zusammen,

ich benötige ein paar Denkanstöße für die Erstellung eines Client Commands.
Wir haben bei uns viele verschiedene Programme im Haus. Der User hat dadurch unzählige Verknüpfungen auf dem Desktop.
Ich würde gerne eine Art Startmenü erstellen, wo alle Programme zentral angezeigt werden und gestartet werden können. Z.B. hinterlege ich eine .csv Datei, in dieser werden der Name der Software und der zu startende Pfad hinterlegt.
Wenn der User das Command startet, soll eine Abfrage auf seinem PC ausgeführt werden welche Software installiert ist und mit der .csv Datei abgeglichen werden.
Die Software die installiert ist, soll in seinem Command angezeigt und gestartet werden können.

Vielen Danke für eure Anregungen :-)
Benutzeravatar
JDoering
Beiträge: 89
Registriert: Mo Dez 15, 2008 3:45 pm

Hallo IBS,

mit dem Befehl "Read from file" können Sie zeilenweise eine solche CSV-Datei auslesen.
Wenn die CSV-Datei nun z.B. so aufgebaut ist:

"Name"="Name-DerSoftware","Programm"="Pfad-zu-dem-Programm"
"Name"="Name-DerSoftware2","Programm"="Pfad-zu-dem-Programm2"

Wenn Sie nun zeilenweise die Datei auslesen, können Sie auf die jeweiligen Werte
mittels "%VARIABLE.NAME%" bzw. "%VARIABLE.Programm%" zugreifen.

Den Wert "%VARIABLE.NAME%" fügen Sie nun (vorbereitend für die Anzeige in einem Dialog) mit dem Befehl "Stringlist"
einer Liste hinzu. Diese Liste kann in einem Dialog als Auswahl angezeigt werden.
Vorab kann mit dem Befehl "If file (not) exists" überprüft werden, ob die Datei auf dem System überhaupt existiert

Die Selektion aus dem Dialog werten Sie danach im Anschluss aus, und rufen das zugehörige Progamm auf.

MfG,
Jens Döring
Senior IT Support Engineer

support@aagon.com
http://www.aagon.de

Aagon GmbH
Lange Wende 33
D-59494 Soest
fon: +49-2921-789-200
fax: +49-2921-789-244
IBS
Beiträge: 34
Registriert: Di Feb 26, 2013 5:17 pm

Hallo,

vielen Dank für den Tipp. Funktioniert sehr gut.
Weiterer Überlegungen:
Ich würde gerne die ausgewertete Stringlist in den Form Editor als Check oder Listbox integrieren?
Auch sollte nach der Auswahl der Check oder Listbox das Ergebnis wieder in eine Variable geschrieben werden.
Bei einer Combobox kann ich (Test.Text:=GetVarContent('StringlistVariable'); einfügen.
Dann wird aber die Stringlist nebeneinander aufgelistet nicht untereinander?
Grüße
IBS
FBiehn
Beiträge: 97
Registriert: Do Apr 22, 2010 10:38 am

Wenn Sie auf die Eigenschaft Text einer Combobox zugreifen, wird nur der eingetragene Text geändert, allerdings nicht die Auswahlmöglichkeiten innerhalb der Combobox. Eine Combobox hat intern auch eine Stringliste um die auswählbaren Begriffe zu definieren, diese erreicht man über die Eigenschaft Items. Dort können sie z.B. mittels Combobox.Items.Add('Mein Programm') einzelne Items hinzufügen. Add gibt Ihnen auch den Index innerhalb der Liste wieder, sodass Sie mittels Combobox.ItemIndex diesen Index setzen können, damit dieser Auswahlpunkt von der Combobox ausgewählt wird und auch als Text dargestellt wird.
IBS
Beiträge: 34
Registriert: Di Feb 26, 2013 5:17 pm

Hallo,

da ich in Delphi nicht gut gewannt bin, wäre ich sehr dankbar für ein Codebeispiel... :wink:
FBiehn
Beiträge: 97
Registriert: Do Apr 22, 2010 10:38 am

Hier mal ein Beispiel wie ich es lösen würde. Hebt allerdings kein Anspruch auf Perfektion oder Eleganz ;-)
Dateianhänge
Beispiel.zip
(483.88 KiB) 248-mal heruntergeladen
IBS
Beiträge: 34
Registriert: Di Feb 26, 2013 5:17 pm

Hilft mir auf jeden Fall gut weiter. Danke :)
IBS
Beiträge: 34
Registriert: Di Feb 26, 2013 5:17 pm

Ich hätte noch eine Frage....
Wie kann ich zwischen zwei Form Editoren wechseln? Ein Button der zurück zum vorherigen FormEdior geht. Ist das Möglich in einem Client Command?

Danke.
Benutzeravatar
ngottschalk
Beiträge: 293
Registriert: Mi Sep 08, 2010 12:57 pm

Hallo IBS,

standardmäßig wäre mir zwar keine Möglichkeit hierfür bekannt, aber verschiedene Wege, dies ggf. trotzdem zu erreichen; Die "quick & dirty"-Variante wäre (sofern in diesem Falle anwendbar), die benötigten Controls dynamisch ein- und auszublenden und so die Funktionen beider Formulare in einer Oberfläche zu vereinen.
Alternativ könnte man ggf. den Aufruf der (W)RunCC.exe über die Form triggern, sei es über ein Binding des "Execute Client Command"-Commands oder aber über ein ShellExecute, sodass das andere CC mit der benötigten Form gestartet wird.
Eine wirklich bidirektionale Kommunikation ist bei der zweiten Variante aber nicht direkt möglich (wobei sich Daten über z.B. temporäre Dateien austauschen ließen).
Mit freundlichen Grüßen

Niklas Gottschalk (gottschalk@zoller-usa.com)
IT Systems Administrator
Zoller Inc.
Benutzeravatar
JDoering
Beiträge: 89
Registriert: Mo Dez 15, 2008 3:45 pm

Hallo IBS,
die Funktionen beider Formulare in einer Oberfläche zu vereinen
dies kann man über "Tabsheets" machen. Hier können Sie mehrere Tabs erzeugen, und dann mittels "Zurück" auf die jeweiligen Tabs wechseln.
Die Tabs selbst können dann auch unsichtbar sein, so das nur über die Buttons gewechselt werden kann.

MfG,
Jens Döring
Senior IT Support Engineer

support@aagon.com
http://www.aagon.de

Aagon GmbH
Lange Wende 33
D-59494 Soest
fon: +49-2921-789-200
fax: +49-2921-789-244
Antworten