AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Wie kann ich ein Programm starten wo ich den Pfad nicht weiß
Thema durchsuchen
Ansicht
Themen-Optionen

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

Ein Thema von Dragon27 · begonnen am 5. Okt 2004 · letzter Beitrag vom 6. Okt 2004
Antwort Antwort
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#1

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

  Alt 5. Okt 2004, 20:47
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
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

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

  Alt 5. Okt 2004, 20:51
Das funktioniert mit Anwendungen die in den Suchpfaden liegen. Standardmäßig sind das zum Beispiel %windir% und %sysdir%.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#3

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

  Alt 5. Okt 2004, 20:52
Zitat von Dragon27:
...Wenn mir da jemand ein Quelltextbeispiel posten könnte währe ich dankbar!
Was Quelltext ? Wofür genau ? 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ß. Und nicht vergessen : die Reihenfolge spielt auch eine Rolle.
Gruß
Hansa
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#4

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

  Alt 6. Okt 2004, 09:23
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!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#5

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

  Alt 6. Okt 2004, 10:04
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.
Thomas
  Mit Zitat antworten Zitat
Dragon27

Registriert seit: 20. Nov 2003
Ort: Aßling
543 Beiträge
 
Delphi XE6 Enterprise
 
#6

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

  Alt 6. Okt 2004, 10:21
Hallo,

ehm wie funct das mit dem OLE genau?

Danke!
Delphi is ......... DELPHI!!
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#7

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

  Alt 6. Okt 2004, 10:21
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.:
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

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

  Alt 6. Okt 2004, 10:26
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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 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