VBmake Postado Julho 7, 2008 Denunciar Share Postado Julho 7, 2008 Tenho um dúvida sobre o comando Shell, que é aquele que faz meu progrma abrir outro programa.Criei um programa que quando aperta um botão, ele abre um programa que está em:"C:\Arquivos de Programas\Exemplo\exemplo.exe", mais isto não é bom pois, quandotiro este o arquivo "exemplo.exe" do local, ele dá erro! não teria um comando que abrisseesse "exemplo.exe" na pasta onde estaria o programa que criei? Pois assim não teriacomplicação e não dependeria do local onde ele estivesse e sim que o "exemplo.exe" estivessena mesmo pasta do meu programa! Se souberem fazer aew, plz me ensinem!Vlw! :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 7, 2008 Autor Denunciar Share Postado Julho 7, 2008 (editado) Nem precisam responder galera, eu dei uma olhada lá na função shell,antes eu especificava o local para abrir que era da seguinte forma:Private Sub Command1_Click() Shell "C:\Arquivos de Programas\Exemplo\exemplo.exe" End Sub ae depois tentei da seguinte maneira e deu certo: Private Sub Command1_Click() Shell "exemplo.exe" End Subae ele abriu na mesmo pasta que estava o meu programa!mesmo assim vlw, isto pode ser dúvidas de outros também! :blush:agora gostaria de saber se tem um comando inverso ao SHELL,ou seja, ao invés de abrir, fechasse um programa que estivesseaberto!Se alguém souber aew, me ensine plz! Editado Julho 7, 2008 por VBmake Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kkkiler Postado Julho 8, 2008 Denunciar Share Postado Julho 8, 2008 (editado) O jeito que encontrei recentemente(digo "encontrei",não "criei", os créditos não são meus) , é finalizando o processo pelo taskmanager, assim:Public Sub CloseProgram(str_program) Dim obj_processes Dim obj_process Dim obj_WMIService Set obj_WMIService = GetObject("winmgmts:") Set obj_processes = obj_WMIService.ExecQuery("Select * from Win32_Process where Caption ='" & str_program & "'") For Each obj_process In obj_processes obj_process.Terminate Next Set obj_processes = Nothing Set obj_WMIService = Nothing End Sub Daí você chama a rotina em algum lugar, exemplo: Private Sub Command1_Click() Call CloseProgram("explorer.exe") End Sub ou Private Sub Command1_Click() CloseProgram "explorer.exe" End SubObs: não sei porque, mas depois de finalizar o explorer, ele volta depois de uns segundos. Eu pelo menos só tenho esse problema com o explorerSe é pra finalizar teu programa coloca "Unload Me" em algum lugar, ou "end"(alías, alguém sabe se tem diferença?) Editado Julho 8, 2008 por kkkiler Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 8, 2008 Autor Denunciar Share Postado Julho 8, 2008 vlw aew kkkiler! deu certo sim!resolveu o meu problema!fechou quando eu queria aquele "exemplo.exe" que antes eu queriaque abrisse! :DAgora vai outra! queria que quandoclicasse em um botão, abrisse umapágina de internet! Liga não beleza! Éque sou iniciante mesmo! ^_^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kkkiler Postado Julho 9, 2008 Denunciar Share Postado Julho 9, 2008 Agora vai outra! queria que quandoclicasse em um botão, abrisse umapágina de internet!Hm?! Uai, pelo que eu entendi q você quer fazer, é só usar o comando shell também!Assim: Shell ("C:\Arquivos de programas\Internet Explorer\iexplore.exe"), vbMaximizedFocusPode ser outro caminho também, procura onde fica sua internet.Liga não beleza! Éque sou iniciante mesmo!Hm... eu também sou, pelo - me considero um. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 9, 2008 Autor Denunciar Share Postado Julho 9, 2008 você não entendeu, eu quero que quando clique,abra o navegador padrão mais já na páginaque eu quero! Tipo assim, quando clico em um botão,abra o navegador mais já vá pra página "http://www.google.com.br"!Vlw! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 9, 2008 Autor Denunciar Share Postado Julho 9, 2008 já consegui resolver! dei uma olhada no google!para abrir a página que eu quero clicando em umbotão, deve ser assim:Private Sub Command1_Click() Shell ("explorer http://www.minhaurl.com.br") End Subdessa maneira ele abre o browser padrão já nessapágina "http://www.minhaurl.com.br"!Vlw! ^_^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 9, 2008 Autor Denunciar Share Postado Julho 9, 2008 aki, gostaria de saber se tem como fazer o seguinte:quando clicasse em um botão, meu programa abreum "exemplo.exe", ae quando eu clicar novamente,e o processo do "exemplo.exe" já tivesse sendoexecutado, ele não aceitasse abrir, ae eu colocariauma msgbox dizendo que o programa já está emexecução! Acho que é pela condição IF, mais aceitoqualquer modo!Vlw! :blush: Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 kkkiler Postado Julho 10, 2008 Denunciar Share Postado Julho 10, 2008 (editado) A cara essa é simples é só você usar a API FindWindow. Fiz um exemplo com o bloco de notas:Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Sub Command1_Click() Do While FindWindow(vbNullString, "Sem título - Bloco de notas") = 0 'abre o bloco de notas se ele não estiver aberto Shell ("notepad.exe"), vbNormalFocus Exit Sub Loop If FindWindow(vbNullString, "Sem título - Bloco de notas") Then 'Imprime uma mensagem se o bloco de notas já estiver aberto MsgBox "já ta aberto!" End If End SubObs: no lugar do "Do While Loop" você poderia usar "if end if" se você insisteFaça bom proveito ;) .Qualquer dúvida poste. Editado Julho 10, 2008 por kkkiler Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 VBmake Postado Julho 10, 2008 Autor Denunciar Share Postado Julho 10, 2008 vlw denovo! deu certo! mais aki, esse método vaipelo nome da janela, não teria uma maneira parecidasó que pelo nome do processo do programa? Ao invésde colocar lá "Sem Título - Bloco de Notas", colocaria"notepad.exe"? Tipo um "API FindProcess", nem sei seexiste essa! ^_^ Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 paulo.sovienski Postado Novembro 23, 2008 Denunciar Share Postado Novembro 23, 2008 Bom na verdade eu sou iniciantaço ( meio iniciante meio anta mesmo ), gostaria de aproveitar o tópico para mais algumas perguntinhas.Eu consegui abrir a pagina da internet como inidicado acima, agora como eu consigo copiar alguns dados dessa pagina e armazenalos em variaveis no meu caso variaveis de texto. Existe algum material de apoio para exemplificar interação entre VB e windows ? Antes que vocês me perguntem como eu gostaria de abrir uma janela, copiar o dela numa variavel, abrir um telnet para um ip, depois outro telenet para outro ip, então enviar um comando. Hoje eufaço isso na mão, o VB não automatizaria isso pra mim ? Conhço bem puco de C, mas em C eu nem saberia como cemeçar. Valeuzaço pela força !!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
VBmake
Tenho um dúvida sobre o comando Shell, que é aquele que faz meu progrma abrir outro programa.
Criei um programa que quando aperta um botão, ele abre um programa que está em:
"C:\Arquivos de Programas\Exemplo\exemplo.exe", mais isto não é bom pois, quando
tiro este o arquivo "exemplo.exe" do local, ele dá erro! não teria um comando que abrisse
esse "exemplo.exe" na pasta onde estaria o programa que criei? Pois assim não teria
complicação e não dependeria do local onde ele estivesse e sim que o "exemplo.exe" estivesse
na mesmo pasta do meu programa! Se souberem fazer aew, plz me ensinem!
Vlw! :blush:
Link para o comentário
Compartilhar em outros sites
10 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.