AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Programmpfad mit Parameter

Ein Thema von AndreasP · begonnen am 22. Sep 2005 · letzter Beitrag vom 22. Sep 2005
Antwort Antwort
Benutzerbild von AndreasP
AndreasP

Registriert seit: 14. Aug 2003
Ort: Halle
82 Beiträge
 
Delphi 7 Professional
 
#1

Programmpfad mit Parameter

  Alt 22. Sep 2005, 13:29
mahlzeit,

aus der registry lese ich stringwerte wie "C:\WINDOWS\AWuninstall.exe Software\Lokas Ltd\AWicons Pro" aus. doch wie erkenne ich nun das es sich dabei eigentlich um ein programm ("C:\WINDOWS\AWuninstall.exe") mit einem parameter ("Software\Lokas Ltd\AWicons Pro") handelt.

ich könnte zwar nach teilen wie ".exe " suchen doch das halte ich für nicht sehr praktikabel da ich auch nach anderen endungen suchen müste, wie z.b. .cmd, .bat, .msi usw. und wer sagt das ich nur ein resultat erhalte.

eigentlich will ich nur das programm mit parameter starten, entweder über shellexecute mit programm-pfad und parameter oder direkt wie bei win+r (wobei hier bestimmt auch nur der string zerlegt wird). danke schonmal für hinweise.
Live long and prosper, Andy

Die Diskusion zum AppManager gibt es hier
Immer die aktuelle Version vom AppManger
  Mit Zitat antworten Zitat
Thanatos81
(Gast)

n/a Beiträge
 
#2

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 13:33
Soll das denn der Paraemter sein, der auch in der Registry eingetragen ist? Wenn ja, schau dir mal in der OH WinExec an. Wenn ich mich recht erinne, kann man da einen Pfad direkt mit Parametern eingeben wie im "Ausführen..."-Dialog per Win+R.
  Mit Zitat antworten Zitat
Benutzerbild von AndreasP
AndreasP

Registriert seit: 14. Aug 2003
Ort: Halle
82 Beiträge
 
Delphi 7 Professional
 
#3

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 14:19
mahlzeit,

danke für den hinweis, winexec war der richtige denkanstoß. da aber winexec kein unicode kann bin ich auf createprocess gestoßen der genau das macht was ich will.
Live long and prosper, Andy

Die Diskusion zum AppManager gibt es hier
Immer die aktuelle Version vom AppManger
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#4

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 15:17
Zitat von AndreasP:
"C:\WINDOWS\AWuninstall.exe Software\Lokas Ltd\AWicons Pro"
Das wären dann IMHO aber 3 Parameter:
1: Software\Lokas
2: Ltd\AWicons
3: Pro
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  Mit Zitat antworten Zitat
Benutzerbild von AndreasP
AndreasP

Registriert seit: 14. Aug 2003
Ort: Halle
82 Beiträge
 
Delphi 7 Professional
 
#5

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 18:30
mahlzeit,

genau das ist ja das kniffelige daran gewesen. der string steht genauso in der registry. ohne gänsefüße.
Live long and prosper, Andy

Die Diskusion zum AppManager gibt es hier
Immer die aktuelle Version vom AppManger
  Mit Zitat antworten Zitat
Benutzerbild von sECuRE
sECuRE

Registriert seit: 10. Apr 2003
Ort: Heidelberg
360 Beiträge
 
Delphi 7 Professional
 
#6

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 18:42
Hi,

ich finde die Sache recht einfach: von Zeichen 1 bis zur Position des ersten Leerzeichens geht der Programmpfad, wenn selbiger Leerzeichen enthält, muss der Pfad in Anführungszeichen gestellt sein. Alles darauf Folgende sind dann Parameter. Programmiertechnisch umsetzten würde ich das ganze so:
Delphi-Quellcode:
function GetProgramName(const AInput:string):string;
begin
if (Pos(' ',AInput) = 0) then
  result:=AInput
else if (copy(AInput,1,1) = '"') then
  result:=copy(AInput,1,Pos('"',copy(AInput,2,length(AInput))))
else result:=copy(AInput,1,Pos(' ',AInput)-1);
end;

// ...
ShowMessage('Das Program heißt "'+GetProgramName(ReadFromRegistry)+'"');

if (copy(ReadFromRegistry,1,1) = '"') then
  Parameters:=copy(ReadFromRegistry,length(GetProgramName)+3,length(ReadFromRegistry))
else Parameters:=copy(ReadFromRegistry,length(GetProgramName)+1,length(ReadFromRegistry));

ShowMessage('Die Parameter lauten "'+Parameters+'"');
cu
  Mit Zitat antworten Zitat
Benutzerbild von AndreasP
AndreasP

Registriert seit: 14. Aug 2003
Ort: Halle
82 Beiträge
 
Delphi 7 Professional
 
#7

Re: Programmpfad mit Parameter

  Alt 22. Sep 2005, 19:00
mahlzeit,

sogesehen hast du recht. daran hatte ich in dem moment dummerweise nicht gedacht. bei meiner lösung mus ich mich allerdings nicht darum kommern wo der pfad aufhört und parameter anfängt. trotzdem danke.
Live long and prosper, Andy

Die Diskusion zum AppManager gibt es hier
Immer die aktuelle Version vom AppManger
  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 06:04 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