Opa Eric, é não... Se eu jogar o parãmetro junto do cmd ele entende tudo como um comando só. e diz que o comando não Existe.
O pior é que se eu acertar este lance do parametro, fica 10.... Ou seja... aih eu zero os meus problemas... :) Em 22/01/07, Eric D. <[EMAIL PROTECTED]> escreveu: > > Se eu não estiver errado, o parâmetro "Cmd" da função deve ser o seu > comando completo, com parâmetros e tudo mais.... > > []'s > > Eric D. - Desenvolvimento e Soluções de Tecnologia > [EMAIL PROTECTED] <ericdesenv%40yahoo.com.br> > "Talk is cheap, show me the code..." > ----- Original Message ----- > From: Marcos André > To: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Sent: Monday, January 22, 2007 1:28 PM > Subject: RES: [delphi-br] Interagir com o console > > Olá João, > > Isto é exatamente o que eu precisa, só que não consegui > enviar parâmetros: ex: > > C:\reparar.bat renal.gdb > > É desta forma q eu executo no prompt, porém não consigo enviar o renal.gdb > pela procedure, tow pesquisando, mas num tow encontrando como fazer... > > Tem uma idéia? > > Um Abraço > > __ __ > / \ /| |'-. > .\__/ || | | > _ / `._ \|_|_.-' > | / \__.`=._) (_ Marcos André > |/ ._/ |"""""""""| > |'. `\ | | Analista de Sistema > ;"""/ / | | Easy Corporation > ) /_/| |.-------.| www.e-easy.com.br <http://www.e-easy.com.br/> > ' `-` ' " " msn: [EMAIL PROTECTED] <mralcatraz%40hotmail.com> > > Planos profissionais com qualidade. > consulte nossos planos, click aqui <http://www.e-easy.com.br/websites.php> > > > De: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> [mailto: > delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br>] Em > nome de Joao Morais > Enviada em: segunda-feira, 22 de janeiro de 2007 11:03 > Para: delphi-br@yahoogrupos.com.br <delphi-br%40yahoogrupos.com.br> > Assunto: Re: [delphi-br] Interagir com o console > > Marcos Douglas wrote: > > > Comece com a função ShellExecuteEx da unit ShellAPI.pas > > > > -- > > Marcos Douglas > > > > From: Marcos André <[EMAIL PROTECTED] <marcos%40e-easy.com.br><mailto: > marcos% <marcos%25>40e-easy.com.br> > > > > >> Olá Pessoal, > >> > >> > >> Tenho uma BAT que executa alguns arquivos do Firebird para > >> recuperação de bases, GBAK, GFIX, etc... Gostaria de fazer um programa > que > >> lidasse com estes arquivos, tipo enviasse comandos para o prompt e leia > a > >> resposta... alguém poderia me ajudar com um ponto de partida??? > > E continue com essa aqui: > (código retirado do Dev-Pascal) > > Cuidado com as quebras de linha. > > function ExecuteProcLog(Cmd, WorkDir: String): string; > var > tsi: TStartupInfo; > tpi: TProcessInformation; > nRead: DWORD; > aBuf: array[0..101] of Char; > sa: TSecurityAttributes; > hOutputReadTmp, hOutputRead, hOutputWrite, hInputWriteTmp, hInputRead, > hInputWrite, hErrorWrite: THandle; > FOutput: string; > begin > FOutput := ''; > > sa.nLength := SizeOf(TSecurityAttributes); > sa.lpSecurityDescriptor := nil; > sa.bInheritHandle := True; > > CreatePipe(hOutputReadTmp, hOutputWrite, @sa, 0); > DuplicateHandle(GetCurrentProcess(), hOutputWrite, GetCurrentProcess(), > @hErrorWrite, 0, true, DUPLICATE_SAME_ACCESS); > CreatePipe(hInputRead, hInputWriteTmp, @sa, 0); > > // Create new output read handle and the input write handle. Set > // the inheritance properties to FALSE. Otherwise, the child inherits > // the these handles; resulting in non-closeable handles to the pipes > // being created. > DuplicateHandle(GetCurrentProcess(), hOutputReadTmp, > GetCurrentProcess(), > @hOutputRead, 0, false, DUPLICATE_SAME_ACCESS); > DuplicateHandle(GetCurrentProcess(), hInputWriteTmp, > GetCurrentProcess(), > @hInputWrite, 0, false, DUPLICATE_SAME_ACCESS); > CloseHandle(hOutputReadTmp); > CloseHandle(hInputWriteTmp); > > FillChar(tsi, SizeOf(TStartupInfo), 0); > tsi.cb := SizeOf(TStartupInfo); > tsi.dwFlags := STARTF_USESTDHANDLES or STARTF_USESHOWWINDOW; > tsi.hStdInput := hInputRead; > tsi.hStdOutput := hOutputWrite; > tsi.hStdError := hErrorWrite; > > CreateProcess(nil, PChar(Cmd), @sa, @sa, true, 0, nil, PChar(WorkDir), > tsi, tpi); > CloseHandle(hOutputWrite); > CloseHandle(hInputRead ); > CloseHandle(hErrorWrite); > Application.ProcessMessages; > > repeat > if (not ReadFile(hOutputRead, aBuf, 16, nRead, nil)) or (nRead = > 0) then > begin > if GetLastError = ERROR_BROKEN_PIPE then Break > else MessageDlg('Pipe read error, could not execute file', > mtError, [mbOK]); > end; > aBuf[nRead] := #0; > FOutput := FOutput + PChar(@aBuf[0]); > Application.ProcessMessages; > until False; > > Result := FOutput; > // GetExitCodeProcess(tpi.hProcess, nRead) = True; > end; > > -- > Joao Morais > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Um abraço Marcos André [As partes desta mensagem que não continham texto foram removidas]