AGB  ·  Datenschutz  ·  Impressum  







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

shellexecute mit pipes im command

Ein Thema von gigo02 · begonnen am 7. Okt 2006 · letzter Beitrag vom 7. Okt 2006
Antwort Antwort
Seite 2 von 2     12   
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#11

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 11:09
Willst du jetzt n Konsolenprog schreiben oder eins starten?

ersteres geht ganz einfach: Deitei-->Neu-->Andere-->Konsolenanwendung (oder so ähnlich...)

letzteres: CreateProcess nehmen(Verwendung bitte selbst im PSDK nachgucken). Diese Funktion gibt IMHO n Handle zurück. Dieses Handle übergibtst du ner Funktion KillProcess. N Codeschnipsel dafür müsstest du leicht finden können...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#12

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 11:19
Hallo Enrico,

Zitat von gigo02:
die batch beendet sich nicht wenn ich das programm schliesse
der Befehlsstapel muss mit EXIT verlassen werden...

Grüße vom marabu
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 13:36
Moin Enrico,

dem Problem mit der limitierten Länge von Stringliteralen kannst Du auch durch + begegnen:

'max. 255 Zeichen' + 'max. 255 Zeichen' + ...
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
gigo02

Registriert seit: 7. Okt 2006
6 Beiträge
 
#14

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 14:04
hi, so also ich habe das jetzt folgendes

Delphi-Quellcode:
var
  Form2: TForm2;
  ProcessInfo: TProcessInformation;
  StartupInfo: TStartupInfo;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
  FillChar(StartupInfo, SizeOf(TStartupInfo),0);
  StartupInfo.cb := SizeOf(TStartupInfo);
  StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow := SW_HIDE;
  if CreateProcess( nil,
                    PChar(Edit1.Text),
                    nil,
                    nil,
                    False,
                    NORMAL_PRIORITY_CLASS,
                    nil,
                    PChar('C:\'),
                    StartupInfo,
                    ProcessInfo) then begin
                    Showmessage('Prossess gestartet');
                    End else ShowMessage('Fehler');
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
CloseHandle(ProcessInfo.hProcess);
end;
nur das beenden klappt nicht wirklich, der prozess läuft weiter
  Mit Zitat antworten Zitat
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#15

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 14:25
Nimm nicht CloseHandle, sondern MSDN-Library durchsuchenTerminateProcess.

Is nur schnell rausgesucht. Nicht weiter mit beschäftigt... Hab das aber auch noch nie gemacht...

Korrigiert mich also, wenn ich Blödsinn geredet hab...

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 15:11
Moin Enrico,

Du musst dabei allerdings berücksichtigen, dass Du mit TerminateProcess den Prozess nicht sauber beendest, sondern abschiesst.
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
r2c2

Registriert seit: 9. Mai 2005
Ort: Nordbaden
925 Beiträge
 
#17

Re: shellexecute mit pipes im command

  Alt 7. Okt 2006, 15:15
Zitat von Christian Seehase:
Du musst dabei allerdings berücksichtigen, dass Du mit TerminateProcess den Prozess nicht sauber beendest, sondern abschiesst.
Kann man ne laufende Batch eigentlich sauber beenden?

mfg

Christian
Kaum macht man's richtig, schon klappts!
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 09:34 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