Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Programmpath (https://www.delphipraxis.net/10199-programmpath.html)

Pseudemys Nelsoni 13. Okt 2003 16:07


Programmpath
 
hoi, womit bekomme ich den programpath raus? ich möchte von meinem programm aus seiten aufrufen....wenn aber ein ami es bentutz is der ordner ja nicht "programme" sondern "program files" (z.b).

Achja und wie kriege ich raus auf welcher partition windows installiert ist?

Dagon 13. Okt 2003 16:20

Re: Programmpath
 
Meinst du mit Programmpfad z.B. C:\Programme?
Dann hilft dir das vieleicht weiter.

Pseudemys Nelsoni 13. Okt 2003 16:22

Re: Programmpath
 
hallo, nein, so ein langer code kann nicht nur dazu da sein die default ordner zu finden. (aber danke ;))

ich meinte eigentlich..es muss doch sowas wie $WINDIR$ und das gleiche auch für den programm ordner geben, oder?

Christian Seehase 13. Okt 2003 16:25

Re: Programmpath
 
Moin Silent,

such mal hier nach Hier im Forum suchenSHGetSpecialFolderPath (dann zu verwenden mit CSIDL_PROGRAM_FILES, CSIDL_WINDOWS).
Alternativ könntest Du auch die Umgebungsvariable PROGRAMFILES (SYSTEMROOT) auslesen.
Im zweiten Falle muss dann nur der Laufwerksbuchstabe extrahiert werden.

Frank Reiser 13. Okt 2003 16:25

Re: Programmpath
 
Auch hier ein Antort von mir. Es gibt mehrere Möglichkeiten den Pfad zu bestimmen:

Delphi-Quellcode:
Var Verzeichnis:string;

begin
Verzeichnis:=GetCurrentDir; //das aktive Verzeichnis
Das Windows-Verzeichnis kann so ermittelt werden (aus der Delphi-Hilfe)

In diesem Beispiel befinden sich ein Eingabefeld und eine Schaltfläche in einem Formular. Beim Klicken auf die Schaltfläche werden das aktuelle und das Windows-Verzeichnis nach dem im Eingabefeld angegebenen Dateinamen durchsucht. Das Ergebnis der Suche wird anschließend in einem Meldungsfenster angezeigt.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var
  buffer: array [0..255] of char;
  FileToFind: string;
begin
  GetWindowsDirectory(buffer, SizeOf(buffer));
  FileToFind := FileSearch(Edit1.Text, GetCurrentDir + ';' + buffer);
  if FileToFind = '' then
    ShowMessage('Datei ' + Edit1.Text + ' nicht gefunden.')
  else
    ShowMessage('Datei ' + FileToFind + ' gefunden.');

end;
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]

Tom 13. Okt 2003 16:28

Re: Programmpath
 
Zwischenfrage: Was wird gesucht?

1) Der Pfad, in den Dein Programm installiert ist?
2) Der Vorgabepfad, wo normalerweise alle Programme installiert werden (aber nicht müssen!)?

Tom 13. Okt 2003 16:30

Re: Programmpath
 
Zitat:

Zitat von Frank Reiser
Verzeichnis:=GetCurrentDir; //das aktive Verzeichnis

Die Benutzung dieser Funktion sollte IMHO mit Enterbung bestraft werden.

Wormid 13. Okt 2003 16:36

Re: Programmpath
 
Zitat:

Zitat von silent
hallo, nein, so ein langer code kann nicht nur dazu da sein die default ordner zu finden. (aber danke ;))

Hast Du Dir den Source da mal ernsthaft angesehen? IMHO sind da mehere verschiedene Methoden aufgezeigt, wie man an die verschiedensten Ordner rankommt!

Gruß

Wormid

Pseudemys Nelsoni 13. Okt 2003 16:42

Re: Programmpath
 
hallo christian, guvck ich mir gleich mal an :)

an die anderen: ich suche kein file in einem win/programm ordner, sondern ich suche ledeglich die namen des WindowsProgramm Ordners... bei der deutschen windows version heisst der "Programme", bei der englischen z.b "program files"

nTE 13. Okt 2003 17:03

Re: Programmpath
 
Also bei mir unter Windows 2000 steht dieser Pfad in der Registry unter:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Curr entVersion
Schlüssel: ProgramFilesDir

Für Windows 98 habe ich das mal eben überprüft und da ist es genauso.

Pseudemys Nelsoni 13. Okt 2003 17:07

Re: Programmpath
 
danke nTE mal reinschauen :), wenn es so ist dann ist es einfach =)

Christian Seehase 13. Okt 2003 17:08

Re: Programmpath
 
Moin nTE,

da es aber dokumentierte Wege gibt, an diesen Wert zu gelangen, ist es gefährlich, dies direkt auszulesen.
In einer weiteren Version, oder auch nach einem Service Pack könnte das theoretisch nicht mehr an dieser Stelle liegen.

nTE 13. Okt 2003 17:14

Re: Programmpath
 
Hi Christian.

Natürlich hast du Recht. =)
Die SHGetSpecialFolderLocation Funktion sieht wirklich besser aus. :)

Ich muss eingestehen, dass ich den Code den the_master verlinkt hat, nur kurz überflogen haben mit der selben Erkenntnis wie silent "hmm.. ganz schön lang :P". *g*

Pseudemys Nelsoni 13. Okt 2003 17:24

Re: Programmpath
 
jo den programmpath find ich da, das ist schonmal gut :)...wie krieg ich den WIndows ordner namen noch raus, steht der da auch irgendwo?

Pseudemys Nelsoni 13. Okt 2003 17:26

Re: Programmpath
 
oh, hab jetzt erst christians post gesehen...ich finde bei deinem link nur 3 ergebnisse christian und irgendwie krieg ichs da nicht raus wie der windows bzw windowsprogrammordner heisst :(

Pseudemys Nelsoni 13. Okt 2003 17:51

Re: Programmpath
 
hatte es mal so versucht jetzt:

Delphi-Quellcode:
ShellExecute(Handle, 'open', 'C:\%ProgramFiles%\Internet Explorer\IExplore.exe','www.delphipraxis.net',nil,SW_SHOW);
aber %ProgramFiles% wird wohl als normaler ordner benutzt, und da es keinen ordner gibt der "%ProgramFiles%" heisst geht es auch nicht..., ist das ein scheiss :(....sollte %ProgramFiles% nicht den programmpfad repräsentieren?

Tom 13. Okt 2003 18:03

Re: Programmpath
 
Was Du da versuchst ist völliger Unfug! Begründung:

1) ProgramFiles enthält das Laufwerk.
2) Nicht alle Windowsinstallationen befinden sich auf C: (meine nicht)
3) Der IE befindet sich auch nicht zwangsweise im Pfad %ProgramFiles%\Internet Explorer (meiner leider nicht, auch nicht wenn das Laufwerk korrekt wäre).
4) Den IE startet man einfach so
Delphi-Quellcode:
ShellExecute(Handle, 'open', 'IExplore','www.delphipraxis.net',nil,SW_SHOW);
5) Als Opera-User versicher ich Dir: Dein Programm auf mein Rechner: Nein danke.
6) Der aktuell genutzte Browser kann über die Reg ausgelesen werden. Verknüpfung mit http, html ...
7) Eigentlich reicht auch
Delphi-Quellcode:
ShellExecute(Handle, 'open', 'www.delphipraxis.net',nil,nil,SW_SHOW);

Pseudemys Nelsoni 13. Okt 2003 18:22

Re: Programmpath
 
hi, ich möchte aber das ein neues IE fenster geöffnet wird.
BEi deinem code wird eine alte seite durch die neue ersetzt (mit opennew ging es nicht)

Tom 13. Okt 2003 18:24

Re: Programmpath
 
Dann nimm die Lösung von Punkt vier und hefte für Opera-User (etc.) ein Warnhinweis auf die Verpackung.

Pseudemys Nelsoni 13. Okt 2003 18:28

Re: Programmpath
 
danke, das ging 8)

synex 13. Okt 2003 18:30

Re: Programmpath
 
Nur der Komplettheit halber:
Den Programm Files Ordner bekommt man durch
Code:
%ProgramFiles%

Pseudemys Nelsoni 13. Okt 2003 18:34

Re: Programmpath
 
jo, den wollte ich auch, aber wenn ich den in einen path anfügr funktioniert es nicht

Tom 13. Okt 2003 18:42

Re: Programmpath
 
Zitat:

Zitat von silent
danke

Bitte.

Zitat:

das ging 8)
Lieber nicht. Nimm besser Punkt 6 und Du machst alle glücklich. Die Ermittlung der Verknüpfung in der Reg steht in jeder besseren FAQ.

Pseudemys Nelsoni 13. Okt 2003 18:51

Re: Programmpath
 
hoi, jo das hätt ich auch verwendet, nur das sich da immer ne alte seite aktualisiert hat statt das eine neue kam

Tom 13. Okt 2003 18:58

Re: Programmpath
 
Du sollst den aktuell installierten Browser in der Reg ermitteln. Im Ergebnis hättest Du dann den passenden Aufruf.

Pseudemys Nelsoni 13. Okt 2003 19:08

Re: Programmpath
 
hm, wo steht der da?

Christian Seehase 13. Okt 2003 21:35

Re: Programmpath
 
Moin Silent,

guckts Du hier:

Standardbrowser öffnen


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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