Guest - Carlos - Postado Novembro 30, 2004 Denunciar Share Postado Novembro 30, 2004 Bom dia pessoal.....Estou numa sinuca de bico, tenho um prgrama que em um certo ponto chama um Exe do Dos. O problema é que eu presciso que o programa espere o programinha do dos parar de rodar para depois continuar. alguém pode me ajudar ???? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 1, 2004 Denunciar Share Postado Dezembro 1, 2004 Dê uma olhada neste artigo: http://desenvolvedores.net/modules.php?nam...=article&sid=44Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Manwë Súlimo Postado Dezembro 1, 2004 Denunciar Share Postado Dezembro 1, 2004 Aproveitando o gancho do nosso amigo, vi o código do cara lá, e acho que funciona( não testei)mas eu quero usar um programa do DOS que não apareça...as duvidas são as seguintes:como eu faço p/ ele não aparecer com o shell, só iniciar?? e se ele não aparecer como janela, o código lá do cara vai funcionar???até mais Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Decio Postado Dezembro 1, 2004 Denunciar Share Postado Dezembro 1, 2004 Voce pode usar a API "WaitForSingleObject" .Funciona tanto em DOS como em Windows.Private Declare Function WaitForSingleObject Lib "kernel32" _ (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long Private Declare Function CloseHandle Lib "kernel32" _ (ByVal hObject As Long) As Long Private Declare Function OpenProcess Lib "kernel32" _ (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, _ ByVal dwProcessId As Long) As Long Private Const INFINITE = -1& 'Note que bastaria alterar o valor de INFINITE para continuar 'após um tempo especificado (10 seg. no exemplo abaixo). 'Private Const INFINITE = 10000& Private Const SYNCHRONIZE = &H100000 Public iTask As Long, ret As Long, pHandle As Long, A As Byte Private Sub Form_Load() iTask = Shell("c:\teste.bat", vbMinimizedFocus) pHandle = OpenProcess(SYNCHRONIZE, False, iTask) ret = WaitForSingleObject(pHandle, INFINITE) ret = CloseHandle(pHandle) MsgBox "Fechou!!!", vbInformation End Sub Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Dezembro 2, 2004 Denunciar Share Postado Dezembro 2, 2004 Aproveitando o gancho do nosso amigo, vi o código do cara lá, e acho que funciona( não testei)mas eu quero usar um programa do DOS que não apareça...as duvidas são as seguintes:como eu faço p/ ele não aparecer com o shell, só iniciar?? e se ele não aparecer como janela, o código lá do cara vai funcionar???até mais Sim, testei aqui e o código do Marcelo funciona mesmo que se use a constante vbHide na função Shell():v_HInstance = Shell("edit.com", vbHide)Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest - Carlos -
Bom dia pessoal.....
Estou numa sinuca de bico, tenho um prgrama que em um certo ponto chama um
Exe do Dos. O problema é que eu presciso que o programa espere o programinha do dos parar de rodar para depois continuar.
alguém pode me ajudar ????
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.