Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Wie kann ich ein Programm starten wo ich den Pfad nicht weiß (https://www.delphipraxis.net/31186-wie-kann-ich-ein-programm-starten-wo-ich-den-pfad-nicht-weiss.html)

Dragon27 5. Okt 2004 19:47


Wie kann ich ein Programm starten wo ich den Pfad nicht weiß
 
Hallo zusammen,

ich würde gerne wissen pber eine möglichkeit gibt verschiedene Programme zu starten ohne eine Pfadangebe zu benötigen.
Bei Ausfühgren funzt das ja z.B. mit "Delphi32" aber wenn ich "word" oder "winword" eingebe funzt das nicht.....


Wenn mir da jemand ein Quelltextbeispiel posten könnte währe ich dankbar!


Danke

Luckie 5. Okt 2004 19:51

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Das funktioniert mit Anwendungen die in den Suchpfaden liegen. Standardmäßig sind das zum Beispiel %windir% und %sysdir%.

Hansa 5. Okt 2004 19:52

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Zitat:

Zitat von Dragon27
...Wenn mir da jemand ein Quelltextbeispiel posten könnte währe ich dankbar!

Was Quelltext ? Wofür genau ? :shock: Das sind doch nuch Suchpfade. Zuerst wird das Programm in dem Verzeichnis gesucht, in welchem man sich befindet. Danach in den definierten Suchpfaden. Ist keiner da, so ist eben Schluß. :mrgreen: Und nicht vergessen : die Reihenfolge spielt auch eine Rolle.

Dragon27 6. Okt 2004 08:23

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Hallo,

ja also habe ich das jetzt richtig verstanden, dass man das in diesem Stil machen soll:

-Standardpafd z.B. C:\Windows\Programme\Office
wenn programm nicht vorhanden dann:
-D:\Programme\Office
-Wenn da nicht vorhanden vom Anwender selber definieren lassen...

Ist das in sofern Korrekt?

Wenn ja habe ich eine Frage noch zum starten an sich, ich habe bei swissdelphicenter einen Quelltext
zum starten von Programmen gefunden:

Code:
 procedure OpenProgram(prog, params: string);
var
  c, p: array[0..800] of Char;
begin
  StrPCopy(c, prog);
  StrPCopy(p, params);
  ShellExecute(Application.Handle, 'open', c, p, nil, SW_NORMAL);
end;
Ich kann mich aber mal an ein Beispiel erinnern was anders aussah. Ist die obere eine gute Methode oder gibt es bessere möglichkeiten so einen "öffnenquelltext" zu schreiben?

Danke!

toms 6. Okt 2004 09:04

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Zitat:

verschiedene Programme zu starten ohne eine Pfadangebe zu benötigen
Einige Programme (z.B Word, Excel, Powerpoint ...) kannst du auch über CreateOleObject() starten.
Dann brauchst du auch keine Pfadangaben.

Dragon27 6. Okt 2004 09:21

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Hallo,

ehm wie funct das mit dem OLE genau?

Danke!

himitsu 6. Okt 2004 09:21

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
Na kürzer geht das mit dem Aufrufen auch noch ^^
Delphi-Quellcode:
ShellExecute(0, 'open', PChar(prog), PChar(params), nil, SW_NORMAL);

oder

ShellExecute(0, nil, PChar(prog), PChar(params), nil, SW_NORMAL);

Und wo nach den progemmen gesucht wird bekommst du z.B. über solch Systemweite Variablen wie PATH raus (ach, das gute alte DOS ^^)
also wenn du einfach nur den Programmnamen angibts wird es wie schonmal gesagt in diesen Pfaden gesucht, sobald es nicht im aktuellen Verzeichnis zu finden ist, wenn es allerdings nicht in enem der Pfade zu finden ist, dann wird es halt nicht gestartet, weil ja es nicht gefunden werden konnte ;)

z.B.:
Delphi-Quellcode:
ShellExecute(0, nil, 'winword.exe', nil, nil, SW_NORMAL);
wenn es dich mal so interessiert, hier einige das Variablen, welche es meistens gibt.
mach dir einfach 'ne Datei (z.B. test.bat) kopier das Folgende rein und dann starte diese Datei einfach.
Code:
@echo off
echo OS = %OS%
echo PATH = %PATH%
echo HOMEPATH = %HOMEPATH%
echo TEMP = %TEMP%
echo USERPROFILE = %USERPROFILE%
echo ALLUSERSPROFILE = %ALLUSERSPROFILE%
echo ProgramFiles = %ProgramFiles%
echo SystemRoot = %SystemRoot%
echo SystemDrive = %SystemDrive%
echo windir = %windir%
echo sysdir = %sysdir%
pause
wichtig ist vorallem %PATH%.

und über Delphi kann man Diese mit Hier im Forum suchenExpandEnvironmentStrings abfragen.

himitsu 6. Okt 2004 09:26

Re: Wie kann ich ein Programm starten wo ich den Pfad nicht
 
z.B. aktives Word anzeigen, oder neu öffnen:
Delphi-Quellcode:
uses
  ComObj;

// ...

var
  Word: OLEVariant;
begin
  try
    // offenes Word Dok. holen
    Word := GetActiveOleObject('Word.Application');
  except
    // sonst neue Word instanz erzeugen
    Word := CreateOleObject('Word.Application');
    // Neues Dok hinzufügen (mit Methode Open('Filename')
    // kann eine bestimmte Datei geöffnet werden
    Word.Documents.Add;
  end;
  // Word anzeigen
  Word.Visible := True;
end;
weitere Beispiele siehe DP-Suche: Hier im Forum suchencreateoleobject


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:20 Uhr.

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