Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Programm innerhalb der Umgebungsvariablen ??? (https://www.delphipraxis.net/92768-programm-innerhalb-der-umgebungsvariablen.html)

guitarre 25. Mai 2007 16:40


Programm innerhalb der Umgebungsvariablen ???
 
Hallo zusammen,

in meinem Programm soll der Anwender über einen Button ausführbare Programme seiner Wahl hinzufügen können.
Ich möchte aber unterscheiden, ob das ausgewählte Programm die komplette Pfadangabe benötigt,
oder ob es sich direkt starten lässt.
Dazu muss ich wissen, ob, bzw. wie man das feststellen kann.
Also etwa in der Art:
Delphi-Quellcode:
if meinProgramm %Umgebungusvariable% = True then......
Kennt jemand von Euch vielleicht eine Möglichkeit ????
Danke und mit freundlichen Grüßen
guitarre

DeddyH 25. Mai 2007 17:00

Re: Programm innerhalb der Umgebungsvariablen ???
 
Zitat:

Ich möchte aber unterscheiden, ob das ausgewählte Programm die komplette Pfadangabe benötigt,
oder ob es sich direkt starten lässt.
Wozu soll das gut sein? Außerdem kann das Programm, das sich im Suchpfad befindet, ein ganz anderes sein als jenes, das der Benutzer auswählt.

guitarre 25. Mai 2007 17:14

Re: Programm innerhalb der Umgebungsvariablen ???
 
@DeddyH,

der Benutzer wählt sein Programm über einen Button aus, der ihn dann per "Explorer" zu seinem Programm in einem bestimmten Pfad führt.
Weiterhin werden diese Daten in einer Konfigurationsdataei gespeichert.
Da sich Programme innerhalb der Umgebungsvariablen direkt starten lassen,
könnte ich mir in diesem Fall das Speichern Der Pfadangaben sparen.
Gruß guitarre

DeddyH 25. Mai 2007 17:36

Re: Programm innerhalb der Umgebungsvariablen ???
 
Hallo,

mal schnell dahergeschrieben:
Delphi-Quellcode:
procedure GetDirsInPathVariable(sList: TStrings);
var s: string;
begin
  (*Achtung: die Umgebungsvariable Path kann auch länger werden als MAX_PATH,
    man muss sich daher über eine vernünftige Puffergröße Gedanken machen*)
  SetLength(s,MAX_PATH);
  GetEnvironmentVariable('path',PChar(s),Length(s) - 1);
  SetLength(s,StrLen(PChar(s)));
  while Pos(';',s) > 0 do
    begin
      sList.Add(Copy(s,1,Pos(';',s) - 1));
      Delete(s,1,Pos(';',s));
    end;
  if Length(s) > 0 then
    sList.Add(s);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  GetDirsInPathVariable(ListBox1.Items);
end;

guitarre 3. Jun 2007 11:25

Re: Programm innerhalb der Umgebungsvariablen ???
 
@DeddyH,
sorry, dass ich mich jetz erst melde, war ein paar Tage im Krankenhaus.

Danke für Deinen Lösungsvorschlag, aber wenn ich das Programm starte wird mir in der ListBox immer nur die comctl32.dll angezeigt ????

Aber Du hast mich auf eine Lösungsmöglichkeit gebracht.

Ich habe die Zeile
Delphi-Quellcode:
GetEnvironmentVariable('Path',PChar(s),Lenght(s)-1);
durch
Delphi-Quellcode:
s := GetEnvironmentVariable('Path');
ersetzt.
Wobei mir aber nicht klar ist, warum Dein Vorschlag nicht funktioniert.

Danke guitarre

DeddyH 3. Jun 2007 11:29

Re: Programm innerhalb der Umgebungsvariablen ???
 
Hallo, ich habe gar nicht gewusst, dass es in der Unit SysUtils auch die Funktion GetEnvironmentVariable gibt. Die von mir verwendete steht in der Unit Windows, man hätte also einfach nur Windows.GetEnvironmentVariable schreiben müssen. Aber wenn es jetzt geht, ist es ja gut. :cheers:

guitarre 3. Jun 2007 11:34

Re: Programm innerhalb der Umgebungsvariablen ???
 
Hallo, das wusste ich vorher auch nicht, Danke nochmal
guitarre


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz