FINALIZANDO SHELL

USUARIO.EXCLUIDOS 19/07/2005 08:59:03
#94872
Galera,no meu sistema as vezes tenho que executar alguns shell...tipo...net time, net view....até aí tudo bem...mas no W98, essas execuções feitas pelo shell ficam no task manager..ou seja..se eu executar 5 shellÂÂÂ's esets ficam no task manager...como faço pra depois deles serem excutados, finalizarem ?.

Obrigado !!!
USUARIO.EXCLUIDOS 19/07/2005 09:06:52
#94879
Tente finalizar assim
SendMessage("net time", WM_CLOSE, 0, 0)
USUARIO.EXCLUIDOS 19/07/2005 10:53:26
#94960
Resposta escolhida
Se com Sendmessage não der use:

Em um módulo:


Private Const WM_QUIT = &H12

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Sub ForceCloseWindow(Byval hWnd As Long)
If hWnd = 0 Then Exit Sub
PostMessage hWnd, WM_QUIT, &H0, &H255
End Sub


Aviso: tanto no SendMessage quanto no meu método, você tera de ter o hWnd da janela que vai ser fechada.
USUARIO.EXCLUIDOS 19/07/2005 13:51:25
#95011
Legal..como pego o hWnd num shell ?

tipo shell ("net use xxxxxx",vbhide)

USUARIO.EXCLUIDOS 20/07/2005 08:48:53
#95114
naum.... você tera de saber a CLASSE(Use o Spy) ou o CAPTION da janela:

No módulo:

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Const WM_QUIT = &H12

Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long

Sub ForceCloseWindow(Byval hWnd As Long)
If hWnd = 0 Then Exit Sub
PostMessage hWnd, WM_QUIT, &H0, &H255
End Sub


Para chamar a função:

Wnd = FindWindow(VbNullString, CAPTION_DA_JANELA)
If Wnd<>0 Then ForceCloseWindow(Wnd)

ou

Wnd = FindWIndow(CLASSE_DA_JANELA, "")
If Wnd<>0 Then ForceCloseWindow(Wnd)


Obs: Nada impede de você especificar a classe e o caption ao mesmo tempo em FindWindow, só relembrando que se a função retornar "0", significa que a janela não foi encontrada.
USUARIO.EXCLUIDOS 21/07/2005 13:02:51
#95337
Entendi..valeu véio
Tópico encerrado , respostas não são mais permitidas