Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Programm Ordner finden (https://www.delphipraxis.net/111602-programm-ordner-finden.html)

hathor 6. Apr 2008 14:43

Re: Programm Ordner finden
 
Ich will Dir ja nicht zu nahe treten, aber Dein Code mag auf DEINEM PC funktionieren, auf fast allen anderen NICHT !!!

Bei meinem letzten Code-Beispiel muss man nur "i" durch die Konstante ersetzen, die in allen WINDOWS-Versionen gleich ist.

Beispiele:

const CSIDL_COMMON_APPDATA = $0023;
CSIDL_MYMUSIC = $0013;
CSIDL_MYPICTURES = $0014;
CSIDL_LOCAL = $0022;
CSIDL_SYSTEM = $0025;
CSIDL_WINDOWS = $0024;
CSIDL_PROGRAM_FILES = $0026;
CSIDL_LOCAL_APPDATA = $001C;


Im Übrigen antworte ich nicht nur speziell für Dich, sondern für alle, die hier im Forum was
Neues lernen wollen.
Ich lese auch andere Fragen und Antworten, denn:
MAN LERNT NIE AUS!

SaFu 6. Apr 2008 14:50

Re: Programm Ordner finden
 
Ok kannst du mir dann viewlleicht nochmal helfen, ist ja ein Argument

müsste es dann so aussehen

Delphi-Quellcode:
showmessage((SHGetSpecialFolderPath(Application.Handle, @Str[0], CSIDL_PROGRAM_FILES, false) +'\Windows NT\Accessories\wordpad.exe'));

Der.Kaktus 6. Apr 2008 14:54

Re: Programm Ordner finden
 
Muss mich doch nochmal zu Wort melden...Der Programmfilesordner nützt Dir aber bei der Wordpad.exe garnichts..dieses Programm befindet sich ja im Windows-Verzeichnis :gruebel:

SaFu 6. Apr 2008 14:56

Re: Programm Ordner finden
 
Das ist schon richtig so
Delphi-Quellcode:
C:\Programme\Windows NT\Zubehör
und das gebe ich ja als String noch an

ManuMF 6. Apr 2008 15:13

Re: Programm Ordner finden
 
Das Problem ist, dass dieser String bei jedem PC anders sein kann oder gar ist.

SaFu 6. Apr 2008 15:30

Re: Programm Ordner finden
 
Wie soll ich das denn am besten anstellen das die Programme überall gefunden werden

hathor 6. Apr 2008 15:31

Re: Programm Ordner finden
 
Wenn Du speziell das WordPadDir suchst, ist es besser mit folgender Funktion:

Delphi-Quellcode:
uses ..., Registry,...

function WordPadDir: string;
var
  reg: TRegistry;
begin
  reg := TRegistry.Create;

  with reg do
    try
      RootKey := HKEY_LOCAL_MACHINE;

      Result := '';

      if OpenKey('\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WORDPAD.EXE', False) then
        Result := ReadString('');

      Result := ExtractFilePath(Result); // leaves the trailing backslash intact
    finally
      Free;
    end;
end;

ManuMF 6. Apr 2008 15:37

Re: Programm Ordner finden
 
Ich würde noch beim Createn der Registry gleich nur Lese-Zugriff festlegen, falls die Rechte eingeschränkt sind.

SaFu 6. Apr 2008 15:42

Re: Programm Ordner finden
 
Ok beim WordPad geht das aber wie sieht es mit Word aus da kann ich ja 2 Versichdene Versionen Installiert haben z.b. 2003 und 2007

und das selbe bei OpenOffice

Fragen über fragen langsam habe ich das gefühl das ich da ein rießen sch.... programmiert habe :oops:

s-off 6. Apr 2008 16:19

Re: Programm Ordner finden
 
Hallo,

da das Suchen nach irgendwelchen Exe-Dateien irgendwelcher Anwendungen sehr dynamisch ist, wirst Du ohne sehr großen Aufwand und Detailwissen um die einzelnen Anwendungen nur schwerlich zu einem, vor allem vollständigen, Ergebnis kommen.

Da sicherlich 98% der Anwender ihre Programme über Verknüpfungen starten, würde ich diesen anbieten, die entsprechende Verknüpfung zum Programm ihrer Wahl auszuwählen. Dazu liest Du die Verknüpfungen aus Quickstart, Desktop und Startmenü aus (wie Du diese Pfade bekommst, weißt Du ja nun), und listest diese auf. Anschließend liest Du den Pfad zur Anwendung aus der gewählten Verknüpfung aus.

Für die restlichen 2% und fortgeschrittene Anwender kannst Du auch die Möglichkeit zur direkten Auswahl der Exe-Datei anbieten.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:26 Uhr.
Seite 2 von 3     12 3      

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