Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ejecutar programas DOS (https://www.clubdelphi.com/foros/showthread.php?t=25273)

artemisa 17-09-2005 17:53:18

ejecutar programas DOS
 
Necesito ejcutar una sentencia DOS, desde el delphi ¿como lo hago?, en realidad lo que quiero hacer es empaquetar un archivo con winrar, como winrar tiene sentencias y parametros para dos no mas tengo que ejecutar una sentencia.

De antemano, gracias por su ayuda

Artemisa:)

marcoszorrilla 17-09-2005 18:29:40

Puedes mirarte la ayuda sobre Winexec.

Un Saludo.

artemisa 17-09-2005 18:46:56

No encuentro ayuda de winexec en la ayuda del delphi, ¿donde la encuentro?, Aprovecho para preguntar donde encuentro ese programa la Base del Conocimiento del Delphi, gracias

dec 17-09-2005 19:13:08

Hola,

Cita:

Empezado por artemisa
No encuentro ayuda de winexec en la ayuda del delphi, ¿donde la encuentro?

En la ayuda del SDK Win32, disponible desde el menú de ayuda de Delphi.

Loviedo 17-09-2005 22:20:27

No se si es esto lo que buscas.

Código Delphi [-]
procedure TForm1.CopiaSeguridadDB1Click(Sender: TObject);
var
  mCompresor,mArgumentoC,mArgumentoR: string;
begin
  mCompresor  := 'C:\Archivos de Programa\Winrar\Winrar.exe';
  mArgumentoC := 'a -v -vd A:\Copiaseg C:\Carbatex\Db\*.*';
  mArgumentoR := 'e -v A:\Copiaseg C:\Carbatex\Db';
  ShellExecute(Form1.Handle,nil,PChar(mCompresor),Pchar(mArgumentoC),'',SW_SHOWNORMAL)
end;

No olviadr poner en Uses la unidad ShellApi.
Saludos.

crespopg 04-05-2007 17:17:41

ejemplo de ShellExecute
 
aqui un ejemplo:
unit mprotu;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ShellApi, ExtCtrls, jpeg;
type
TForm1 = class(TForm)
Timer1: TTimer;
Label1: TLabel;
Label2: TLabel;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
tot:byte;
act,min:array[1..20] of byte;
mins,coma:array[1..20] of string;
strt1:string;
arch:TextFile;

implementation
{$R *.dfm}
procedure leer;var i:byte;
Begin
If FileExists('conft.txt') Then
Begin
AssignFile(arch,'conft.txt'); Reset(arch);
Readln(arch,tot);
for i:=1 to tot do Readln(arch,min [i],act [i]);
for i:=1 to tot do Readln(arch,coma[i]);
Closefile(arch);
end
Else
Begin
tot:=5;
for i:=1 to tot do Begin min[i]:=i; act [i]:=1; End;
for i:=1 to tot do coma[i]:='c:\agma29\dir2.bat c:\agma29\*.cli';
End;
strt1:=':';
for i:=1 to tot do
Begin
str(min[i]:1,mins[i]);if min[i]<=9 then mins[i]:='0'+mins[i];
strt1:=strt1+'/'+mins[i];
End;
form1.Label2.Caption:=strt1;
End;
procedure presen;
var arch:textfile;lins2:byte;
Begin
if (lins2<80) then Form1.Label1.Font.Color:=ClTeal;
if (lins2<45) then Form1.Label1.Font.Color:=ClGreen;
if (lins2<20) then Form1.Label1.Font.Color:=ClOlive;
if (lins2< 5) then Form1.Label1.Font.Color:=ClMaroon;
End;
procedure TForm1.Timer1Timer(Sender: TObject);
var strt1,min2s,seg2s:string;i:byte;
begin
strt1:=TimeToStr(time);
min2s:=copy(strt1,4,2);
seg2s:=copy(strt1,7,2);
form1.Caption:=strt1;
{form1.Text:= label1.Caption;
Form1.Hint:= label1.Caption;}
if (min2s[2]='5') and (seg2s='00') Then form1.Refresh;
if (min2s[2]='0') and (seg2s='00') Then
presen;
if (min2s='00') and (seg2s='00') Then leer;
for i:=1 to tot do
Begin
if (min2s=mins[i]) and (seg2s='00') and (act[i]=1) Then
Begin
ShellExecute(Form1.Handle,nil,Pchar(coma[i]),'','',SW_SHOWNORMAL);
End;
End;
end;
procedure TForm1.FormCreate(Sender: TObject);var i:byte;
begin
Form1.Label1.Caption:=':.:';
TimeSeparator:=':';
LongTimeFormat := 'hh:nn:ss';
leer;
end;
end.
refresca cada 10 minutos al minuto 5, es decir 5,15,25,35,45 y 55
if (min2s[2]='5') and (seg2s='00') Then form1.Refresh;
Cambia de Fondo cada 10 Minutos al minuto 0, es decir 0,10,20,30,40y 50
if (min2s[2]='0') and (seg2s='00') Then presen;
Actualiza (Vuelve a leer el archivo de configuracion a la hora exacta
if (min2s='00') and (seg2s='00') Then leer;

JGCG 04-05-2007 23:46:48

otra opción
 
Otra opción que tienes es utilizar la instrucción winexec, pero como la instrucción de Dos en este caso tiene paramétros y en lo particular a mí no me funciona bien cuando tengo que mandar parametros con winexec o shellexecute o no he encontrado la forma mas apropiada de hacerlo (si alguien me puede dar un ejemplo se lo agradeceria mucho), lo que me funciona es meter la instrucción de Dos en un archivo .bat y ejecutar el archivo .bat. un ejemplo es así:

procedure TForm1.Button1Click(Sender: TObject);
begin
winexec('c:\algo\autoexec2.bat',1);
end;

en el archivo .bat va la instrucción de dos por ejemplo:
programa argumentos


La franja horaria es GMT +2. Ahora son las 08:02:36.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi