AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Nach Batchencode Datei OHNE OpenDialog öffnen - Wie?
Thema durchsuchen
Ansicht
Themen-Optionen

Nach Batchencode Datei OHNE OpenDialog öffnen - Wie?

Ein Thema von DRPEnc · begonnen am 27. Feb 2004 · letzter Beitrag vom 28. Feb 2004
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

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

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 18:23
Kuck dir mal den dritten parameter von RunProcess an, der legt fest, ob es erst nach Beendigung des externen Programmes weitergeht oder nicht.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#12

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 18:27
RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, FALSE, @ProcID);

Du meist sicher FALSE oder? Gibts irgendwo ne Documentation für RunProcess oder könntest Du mir die Parameter von RunProcess erklären? (Sorry, wenn die Frage noobiehaft ist...)

[Edit] müsste doch TRUE statt FALSE rein, damit der Code wartet oder?

Lag richtig:

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var
  ProcID: Cardinal;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
end;
Es wird dann Done in der listbox angezeigt. Ich öffne mal ne Datei nach der Batch...

... bekomme Probleme:

Delphi-Quellcode:
If Not OpenDialog3.Execute Then Exit;
Edit8.Text:=GET_FILE_SIZE(Opendialog3.filename,true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
Statt dem OpenDialog über einen seperaten Button sollen die Zeilen oben nach der Beendigung der Batch gestartet werden.
Hab aber leider Stringvariable drin. Kann man String und Cardinal in einer Variablenzeile mischen?
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 18:41
Was ist eine Variablenzeile?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#14

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 18:45
Egal... ich kann

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
  var a,b,c :real;
Schreiben ... das meinte ich.

Wie öffne ich den nun die Datei ohne OpenDialog?

Hier nochmal wie die Datei beschaffen ist:

form1.Edit2.text:=OpenDialog2.FileName + form7.edit4.text + form7.edit1.text + form7.edit2.text + 'prediction.mpg'; was dann eine Datei wie: Encode540070008000prediction.mpg.m2v gibt.

Oder muss auch diese Datei einen fixen Namen haben?
CU

DRPEnc
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#15

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 18:51
Hi!

Das kann an sich so nicht sein:

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
  var a,b,c :real; //<--- Hier!!
Müsste das nicht so sein:

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;

Ciao fkerber

EDIT:
Achja, wegen dem OpenDialog:
Du verwendest ja eine Nutzer-"Eingabe" (nämlich den Filename).
Wie willst du das umgehen?

Ciao fkerber
Frederic Kerber
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#16

Re: Nach ShellExecute Filesize anzeigen lassen - Wie?

  Alt 28. Feb 2004, 19:02
Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
//OpenFile('Hier irgendwie die MPEG-Datei öffnen...');
Edit8.Text:=GET_FILE_SIZE('Name der geöffneten Datei',true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
So sollte es ungefähr aussehen. Sprich die MPEG-datei soll ohne 'User-Aufruf' gestartet werden...

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
  var a,b,c :real;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
//OpenFile('C:\DRPEncPrediction.bat');
Edit8.Text:=GET_FILE_SIZE('C:\cococ102.m2v',true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
... gibt ne Fehlermeldung. 'Sample in B' sollte kein valid Floating point value sein...

Sample in B steht in der Edit 8, ergo wird mit Edit8.Text:=GET_FILE_SIZE('C:\cococ102.m2v',true); nicht die Datei geöffnet... wie dann?

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;
    wndFile: Integer;
begin
  ProcID := 0;

RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);

listbox1.Items.add('Done');
wndFile := OpenFile('C:\cococ102.m2v');
//OpenFile('C:\cococ102.m2v');
Edit8.Text:=GET_FILE_SIZE(wndFile,true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
... auch falsch... Muss doch irgendwie ohne OpenDialog zu öffnen sein...

ShellExecute(Handle,'open', 'http://delphi.about.com',nil,nil, SW_SHOWNORMAL); Hmm... irgendwie so... Will aber die M2V-Datei nicht mit dem Mediaplayer starten sondern nur die Dateigröße vergleichen.

Eigentlich brauch ich ja nur den Pfad von der Datei für GET_FILE_SIZE

Delphi-Quellcode:
var pfad, name, ext, neuerName: string;
...
  pfad := ExtractFilePath(Application.ExeName); // der Pfad
  name := ExtractFileName(Application.ExeName); // der Name
  ext := ExtractFileExt(Application.ExeName); // die Dateierweiterung

  // Um im String die Dateierweiterung zu ändern, benutzt man folgende Funktion:
  neuerName := ChangeFileExt(Application.ExeName, '.tmp');
Hmm... Wie anwenden... Bringts überhaupt was?
CU

DRPEnc
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#17

Re: Nach Batchencode Datei OHNE OpenDialog öffnen - Wie?

  Alt 28. Feb 2004, 21:04
Ich denk mal ich bin wieder zu unübersichtlich...

K, Das mit der Batchdatei hat sich erledigt.

Die Batch wird gestartet, beendet sich selber und der Code wird weiter ausgeführt.

Da das Ganze dann voll automatisch ablaufen soll, soll eine MPEG-Datei (M2V) geöffnet werden,
ohne das der User den Pfad angeben muss oder per OpenDialog bestimmen muss.
Nach dem Zahlen in ein paar Edits geändert wurden soll die Batchdatei mit den geändertem Inhalt
auch ohne Zutun des Users gestarten werden.

Ich häng jetzt an dem Punkt fest, wie ich die M2V-Datei OHNE OpenDialog öffnen soll. Sie soll aber nicht
mit dem MediaPlayer abgespielt werden, sondern an den GET_FILE_SIZE Befehl weitergeleitet werden!

Irgend eine Idee?

Delphi-Quellcode:
procedure TForm12.Button7Click(Sender: TObject);
var ProcID: Cardinal;
    a,b,c :real;
begin
  ProcID := 0;
  //if OpenDialog1.Execute then
    RunProcess('C:\DRPEncPrediction.bat', SW_SHOW, TRUE, @ProcID);
  //ShowMessage(IntToStr(ProcID));
listbox1.Items.add('Done');
//OpenFile('Hier irgendwie die MPEG-Datei öffnen...');
Edit8.Text:=GET_FILE_SIZE('Name der geöffneten Datei',true);
a:= StrToFloat(Edit8.text);
b:=(a / 1024) /1024;
c:= StrToFloat(Edit9.text);
listbox1.Items.add('This Pass has the filesize of ' +FloatToStr(b)+ ' MB');
if FloatToStr(b) < FloatToStr(c) then listbox1.Items.add('Higher the bitrate');
if FloatToStr(b) > FloatToStr(c) then listbox1.Items.add('Lower the bitrate');
end;
CU

DRPEnc
  Mit Zitat antworten Zitat
DRPEnc

Registriert seit: 20. Feb 2004
Ort: Noch unterm Mond
126 Beiträge
 
#18

Re: Nach Batchencode Datei OHNE OpenDialog öffnen - Wie?

  Alt 28. Feb 2004, 23:53
Problem hab ich selbst mit SaveDialog gelöst. Danke nochmal für die Tips von dir Luckie und Co.
CU

DRPEnc
  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 10:48 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