VB6 fechar programas

xina12

Power Member
Boas gostava de saber se há alguma maneire de fazer um pequeno formulario que ao clicar num botão ele feche a janela do internet explorer por exemplo.

ou seja seria algo do genero:

Código:
sub_command6_onclick()
 
close(internet_explorer)
 
end sub

Alguem me pode ajudar?

obrigado
 
Última edição pelo moderador:
close(internet_explorer) ?
Isso era excelente...lol. Infelizmente não me parece que seja fácil para uma aplicação de VB fechar instâncias de outras aplicações como o Internet Explorer. Abrir, sim. É fácil. Fechar? Só se encerrares o processo, que é possível através da framework.

xanubix, dessa forma ele conseguia fechar o PRÓPRIO programa.
 
tens que saber qual a instancia e para isso precisas de recorrer a uma função API setfocus/getfocus ja nao me lembro e depois de saberes a instancia, é so enviares as teclas alt+f4 para a instancia atravez do sendkeys.

pesquisa isso aqui no forum, deves encontrar numas threads onde eu postei uma duvida parecida com esta ;)

espero ter ajudado.
abraços
 
Vê se serve para o que queres (requer dois botões, e só foi testado para o Notepad :P ):

Código:
Private Declare Function GetForegroundWindow Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long

Private Const WM_CLOSE = &H10
Private NotepadhWnd As Long
Private Sub Command1_Click()
    Shell "notepad", vbNormalFocus
    DoEvents
    NotepadhWnd = GetForegroundWindow
End Sub
Private Sub Command2_Click()
    Call SendMessage(NotepadhWnd, WM_CLOSE, 0, 0)
End Sub

É simples, mas depende se és tu a abrir o IE ou não.
Command1 abre o notepad; Command2 fecha-o.

Outros métodos são mais complicados, porque envolvem enumerar as janelas todas e depois "escolher" qual delas é para fechar.
 
funciona perfeitamente (kayvlim) é mesmo isso, só uma duvida porque é que não consigo fechar o explorer(não estou a falar do IE mas do explorer [Ambient de trabalho + menu iniciar + etc])?
é preciso algum codigo extra?

porque se eu fechar o explorer pelo gestor de tarefas e abrir pelo formulario, funciona, mas não consigo fecha-lo.


muito obrigado a todos
 
Última edição:
também podes aceder a lista dos processos e terminar os que quiseres... mas se terminares o explorer ele volta a iniciar-se automaticamente.
 
podes simplesmente na aplicação criar um botão se for o caso e fazes:
Código:
formxpto.close ()
ou entao 

resposta = msgbox ("deseja mesmo sair ? " , vbyesno + 256)

if resposta = 6 then

 end  or formxpto.close

end if
 
Tens um mau hábito de não ler o que foi dito para trás.
Já não era a primeira vez :p

O que o rapaz quer é terminar processos ou instâncias de outras aplicações a partir de outra diferente.

Ali o Kayvlim já o esclareceu com uma boa solução.
 
é isso tudo ribeiro 55

só que o unico problema agora é fechar o explorer.

a dica do kayvlim funciona para quase todos os programas menos para aquele que eu queria.

O que eu queria era que ao iniciar o windows, ele arrancasse o meu programa e logo a seguir fechasse o explorer, pra dar ideia que o meu programa é o unico que o utilizador pode mexer.

Assim, era uma forma de segurança para evitarem que os utilizadores acedessem aos dados do pc.

Tá bem que para os mais informados, é facil contornar esta medida de segurança, mas os utilizadores "comuns" não conseguiriam contornar esta situação.


Ajudem-me vá lá.
 
Back
Topo