AGB  ·  Datenschutz  ·  Impressum  







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

Parameter

Ein Thema von sysadmin · begonnen am 19. Sep 2005 · letzter Beitrag vom 20. Sep 2005
Antwort Antwort
Seite 1 von 3  1 23      
sysadmin

Registriert seit: 30. Jun 2005
Ort: Muotathal
10 Beiträge
 
#1

Parameter

  Alt 19. Sep 2005, 11:57
Hallo

Ich komme mit ParamStr nicht so ganz nach.

Ich habe folgendes Programm bereits geschrieben.

Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin
  ShellExecute(application.Handle, 'print','Pfad\Datei', nil, nil, SW_Show);
end;
Nun möchte ich Pfad\Datei als Parameter mitgeben, wenn ich das Programm mit Ausführen starte

zB. Pfad\MeinProgramm.exe Pfad\Datei

Danke
  Mit Zitat antworten Zitat
Benutzerbild von Hador
Hador

Registriert seit: 11. Dez 2004
Ort: Recke
682 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Parameter

  Alt 19. Sep 2005, 12:03
Einfach:
ShellExecute(application.Handle, 'print','Pfad\Datei', 'Parameter', nil, SW_Show); Ich hoffe mal, dass ich das noch richtig im Gedächtnis habe ^^

Und abfragen dann über
ParamStr(1) EDIT:

Zitat von Delphi 7 PE Hilfe:
HINSTANCE ShellExecute(

HWND hwnd, // handle to parent window
LPCTSTR lpOperation, // pointer to string that specifies operation to perform
LPCTSTR lpFile, // pointer to filename or folder name string
LPCTSTR lpParameters, // pointer to string that specifies executable-file parameters
LPCTSTR lpDirectory, // pointer to string that specifies default directory
INT nShowCmd // whether file is shown when opened
);
Lars Kiesow
http://www.larskiesow.de

Computer gehorchen deinen Befehlen, nicht deinen Absichten.
  Mit Zitat antworten Zitat
Benutzerbild von Kroko1999
Kroko1999

Registriert seit: 21. Apr 2005
Ort: Spremberg
455 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Parameter

  Alt 19. Sep 2005, 12:05
(1) paramstr (0)
(2) Application.exename
Da sprach der Stumme zum Blinden: "Du wirst sehen ..."
oder
Wer lesen kann, ist klar im Vorteil!
  Mit Zitat antworten Zitat
n0b0dy

Registriert seit: 12. Sep 2005
Ort: Hessen
268 Beiträge
 
#4

Re: Parameter

  Alt 19. Sep 2005, 12:09
das andere programm startest du so:

  ShellExecute(Handle, 'open', 'exename', 'Pfad\Datei', nil, SW_SHOWNORMAL); und die auswertung im ersten programm folgendermaßen
Delphi-Quellcode:
  if ParamCount > 0 then
    Showmessage(ParamStr(1))

// gibt dann Pfad\Datei aus
Gruß Fabi
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Parameter

  Alt 19. Sep 2005, 13:17
Und net vergessen Pfad\Datei in " einzuschließen, sonst kann es dir passieren, daß deine Dateiangaben auf mehrere Parameter aufgesplittet werden. (wenn z.B. Leerzeichen enthalten sind)
Code:
ShellExecute(application.Handle, 'print','[color=red]"[/color]Pfad\Datei[color=red]"[/color]', nil, nil, SW_Show);
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
sysadmin

Registriert seit: 30. Jun 2005
Ort: Muotathal
10 Beiträge
 
#6

Re: Parameter

  Alt 19. Sep 2005, 14:03
Anscheindend Versteht ihr mich falsch oder ich euch.

Ich habe hier mein Druckprogramm "MyProgramm.exe" jetzt möchte ich das mit der Eingabe aufforderung starten und gleichzeitig dem Programm den Pfad und Dateinamen des Files geben welches es ausgeben soll.
In der Eingabeaufforderung sieht das dann so aus:
C:\MyProgramm.exe -"C:\Dokumente und Einstellungen\Benutzer\Eigene Dateien\File.txt"
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#7

Re: Parameter

  Alt 19. Sep 2005, 14:12
Wie jetzt? Per Eingabeaufforderung, oder per ShellExecute? Drück dich doch mal deutlich aus. Wie es per ShellExecute geht wurde es dir doch jetzt mehrfach gesagt.
Falls es dir darum geht die Parameter mit denen deine Anwendung gestartet wurde zu erfahren (Danach hast du aber bisher nun wirklich nicht geftag), dann fragst du eben ParamStr ab. ParamStr[0] ist der Pfad und Name deines Programmes, ParamStr[1] ist der erste Parameter, ParamStr[2] der zweite. Vor dem Auslesen solltest du allerdings per ParamCount überprüfen, wieviele Parameter angegeben wurden.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: Parameter

  Alt 19. Sep 2005, 14:18
Moin Sysadmin,

dann könntest Du es so aufrufen:

ShellExecute(0,'open','cmd.exe',nil,PChar('/C "C:\MyProgramm.exe" "C:\Pfad zu der Datei\Datei.txt"'),SW_SHOW); [EDIT]

Ggf so:

ShellExecute(0,'open','cmd.exe',nil,PChar('/C "C:\MyProgramm.exe" "'+paramstr(1)'"'),SW_SHOW); wobei Du hier, wie schon angesprochen wurde, erst einmal prüfen solltest, ob paramstr(1) überhaupt etwas enthält.
[/EDIT]
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
sysadmin

Registriert seit: 30. Jun 2005
Ort: Muotathal
10 Beiträge
 
#9

Re: Parameter

  Alt 20. Sep 2005, 08:44
Habe mein Problehm gelöst. Vielen Dank an für eure Hilfe.

Mein Code:
Delphi-Quellcode:
if ParamCount > 0 then
ShellExecute(application.Handle, 'print', PChar(ParamStr(1)), nil, nil, SW_Show);
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#10

Re: Parameter

  Alt 20. Sep 2005, 09:19
Wobei ich mir jetzt gerade nicht ganz sicher bin, ob ParamCount nicht auch ParamStr[0] mitzählt... Ich denke eigentlich schon. Daher solltest du evtl auf "ParamCount > 1" prüfen.
Probiers mal aus, ich hab grade leider kein Delphi zur Hand.
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 07:33 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