Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

mateushim

executar comando do no delphi para executar no cmd

Recommended Posts

daew galera

 

to tentando executar um comando para ser executardo no prompt cmd

 

consigo varios comandos fazer a execução, so que o que eu quero nao consigo

 

que é esse

 

C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump --xml --host=localhost --user=root --password=root mateus > c:\ccc.xml

simplesmente ele cria o xml, mais dentro do arquivo nao tem nd

 

e se eu for digitar no cmd ele cria, ou atraves de um bat

mais o que eu quero nao pode ter bat, pq vai ter q ser dinamico

 

axo que eh isso, espero que csg entender minha pergunta

 

flw

Compartilhar este post


Link para o post
Compartilhar em outros sites

O que pode fazer é a criação do arquivo .bat em tempo de execução e depois a exclusão novamente do arquivo .bat, existe como criar o .bat executar e esperar a sua finalização e depois então excluir ele, se não me engano já foi falado sobre isto aqui no fórum, de esperar a execução de um .bat

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voltando um pouco a ativa aqui no fórum...

 

Conforme o amigo Márcio disse acima... esse assunto ja foi discutido... mas relembrando:

 

 

Função que Executa um comando e aguarda que ele seja finalizado...

function TFrmCadastro.WinExecAndWait32(FileName: String; WorkDir: String; Visibility: integer): integer;
var
   zAppName: array[0..512] of char;
   zCurDir: array[0..255] of char;
   StartupInfo: TStartupInfo;
   ProcessInfo: TProcessInformation;
begin
  StrPCopy(zAppName,FileName);
  StrPCopy(zCurDir,WorkDir);
  FillChar(StartupInfo,Sizeof(StartupInfo),#0);
  StartupInfo.cb:=Sizeof(StartupInfo);
  StartupInfo.dwFlags:=STARTF_USESHOWWINDOW;
  StartupInfo.wShowWindow:=Visibility;

  if not CreateProcess(nil,zAppName,nil,nil,False,CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS,nil,zCurDir,StartupInfo,ProcessInfo) then
	 Result:=-1
  else
  begin
	 WaitforSingleObject(ProcessInfo.hProcess,INFINITE);
	 GetExitCodeProcess(ProcessInfo.hProcess,DWORD(Result));
  end;
  
end;

Função que executa um comando no CMD... e depois deleta o arquivo após executá-lo

function TFrmCadastro.AddDeleteServico(comando: string): boolean;
var
   txt: TextFile;
   dir: string;
   ret: boolean;
begin
  ret:=False;
  try													  
	 dir:=ExtractFilePath(Application.ExeName);
	 AssignFile(txt, dir + 'User.bat');
	 Rewrite(txt);
	 Write(txt,comando);

	 CloseFile(txt);
	 if WinExecAndWait32(dir + 'User.bat',dir,SW_ShowNormal) = 0 then
		 ret:=True;
	 DeleteFile(dir + 'User.bat');
  finally
	 AddDeleteServico:=ret;
  end;
end;

 

Para usar basta que você faça por exemplo:

procedure ExecComando;
var comando : string;
begin

comando := 'C:\Arquivos de programas\MySQL\MySQL Server 5.0\bin\mysqldump --xml --host=localhost --user=root --password=root mateus > c:\ccc.xml';
AddDeleteServico(Comando);

end;

 

 

Abraço... e até a próxima volta ao fórum!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.