1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

VB6 fechar programas

Discussão em 'Programação' iniciada por xina12, 18 de Janeiro de 2009. (Respostas: 11; Visualizações: 6270)

  1. xina12

    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: 20 de Janeiro de 2009
  2. Código:
    sub_command6_onclick()
     
    end
     
    end sub
    

    ja tentaste por so isto?
     
    Última edição pelo moderador: 20 de Janeiro de 2009
  3. PNDmartins

    PNDmartins Power Member

    no vb6 não sei, mas no vb2005/vb2008 tens acesso aos processos do windows, é so procurares o processo que queres e manda-lo fechar.
     
  4. ribeiro55

    ribeiro55 Power Member

    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.
     
  5. Além disso, seria necessário saber qual a instância do internet explorer...
     
  6. WinAce_Boy

    WinAce_Boy Power Member

    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
     
  7. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    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.
     
  8. xina12

    xina12 Power Member

    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: 14 de Fevereiro de 2009
  9. PJTuga

    PJTuga Power Member

    também podes aceder a lista dos processos e terminar os que quiseres... mas se terminares o explorer ele volta a iniciar-se automaticamente.
     
  10. Ruben_Barbosa

    Ruben_Barbosa Power Member

    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
    
     
  11. ribeiro55

    ribeiro55 Power Member

    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.
     
  12. xina12

    xina12 Power Member

    é 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á.
     

Partilhar esta Página