Usuário com melhor resposta
Abrir um programa junto com o meu.

Pergunta
-
Bom galera, eu tenho um programa que eu quero que quando ele for executado ele abra outro programa, porém tem um detalhe:
O meu programa não será executado apenas em meu pc, sendo assim eu preciso de um comando que abra o programa que esteja armazenado em qualquer lugar do pc.
Eu não posso usar o shell por que ele executa um arquivo com o caminho pré-designado pelo meu programa, porém como várias pessoas vão abrir em vários computadores diferentes é mais do que possivel que o caminho seja diferente em cada pc.
Bom galera peço ajuda ae de vocês.
Vlw!
Respostas
-
Nao entendi o que vc quiz dizer com:
"Eu não posso usar o shell por que ele executa um arquivo com o caminho pré-designado pelo meu programa, porém como várias pessoas vão abrir em vários computadores diferentes é mais do que possivel que o caminho seja diferente em cada pc."
Voce vai ter que colocar a configuraçao do caminho no arquivo config. Crie uma chave com o caminho do programa e use o shell. É a maneira mais simples.
Aqui um tutorial
http://www.criarprogramas.com/2012/04/capturando-valores-de-uma-chave-no-app-condig-ou-web-config/
E aqui a documentaçao do configurationmanager
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.90).aspx
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator sexta-feira, 11 de outubro de 2013 12:51
- Marcado como Resposta Giovani Cr sexta-feira, 18 de outubro de 2013 14:11
-
voce pode recorrer ao arquivo .dat
crie um EXE que gere um .dat dos bytes do determinado arquivo,dessa forma ele ficara num caminho fixo em todas as maquinas,na hora que for executado,ele ger o exe e ja roda com um shell exemplo:
Gerador do .DAT:
Imports System.IO Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'aqui definimos o EXE que sera lido os bytes Dim _byte() As Byte = File.ReadAllBytes(TextBox1.Text) 'Arquivo que sera salvo Dim _arquivo As System.IO.FileStream Try 'Nessa parte defino o caminho onde vai ser salvo com o nome e extençao do arquivo _arquivo = New System.IO.FileStream(TextBox2.Text, System.IO.FileMode.Create) _arquivo.Write(_byte, 0, _byte.Length) _arquivo.Close() Catch ex As Exception MsgBox(Err.Description) End Try End Sub End Class
Agora o leitor e executor do .DAT:
Imports System.String Imports System.IO Public Class Form1 Private Const _caminho As String = "F:\exe.exe" Private Const _caimnho_destino As String = "F:\exe.dat" Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. Try 'o dat que sera lido e gerado o exe Dim _byte() As Byte = File.ReadAllBytes(_caimnho_destino) Dim _arquivo As System.IO.FileStream 'caminho onde sera salvo o exe _arquivo = New System.IO.FileStream(_caminho, System.IO.FileMode.Create) _arquivo.Write(_byte, 0, _byte.Length) _arquivo.Close() 'executa o exe Shell(_caminho) Catch ex As Exception MsgBox(Err.Description) End Try End Sub
Procure usar os mesmos nomes tanto no gerador quanto no leitor..
essa foi apenas uma base,da pra fazer uma coisa bem legal com isso :)
Microsoft Technology Associate (MTA)
- Editado Eduardo xUni sábado, 12 de outubro de 2013 04:22
- Marcado como Resposta Giovani Cr sexta-feira, 18 de outubro de 2013 14:11
Todas as Respostas
-
Nao entendi o que vc quiz dizer com:
"Eu não posso usar o shell por que ele executa um arquivo com o caminho pré-designado pelo meu programa, porém como várias pessoas vão abrir em vários computadores diferentes é mais do que possivel que o caminho seja diferente em cada pc."
Voce vai ter que colocar a configuraçao do caminho no arquivo config. Crie uma chave com o caminho do programa e use o shell. É a maneira mais simples.
Aqui um tutorial
http://www.criarprogramas.com/2012/04/capturando-valores-de-uma-chave-no-app-condig-ou-web-config/
E aqui a documentaçao do configurationmanager
http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager(v=vs.90).aspx
Att
William John Adam Trindade
Analyste-programmeur
----------------------------------------------------------
- Editado William John Adam TrindadeModerator sexta-feira, 11 de outubro de 2013 12:51
- Marcado como Resposta Giovani Cr sexta-feira, 18 de outubro de 2013 14:11
-
voce pode recorrer ao arquivo .dat
crie um EXE que gere um .dat dos bytes do determinado arquivo,dessa forma ele ficara num caminho fixo em todas as maquinas,na hora que for executado,ele ger o exe e ja roda com um shell exemplo:
Gerador do .DAT:
Imports System.IO Public Class Form1 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'aqui definimos o EXE que sera lido os bytes Dim _byte() As Byte = File.ReadAllBytes(TextBox1.Text) 'Arquivo que sera salvo Dim _arquivo As System.IO.FileStream Try 'Nessa parte defino o caminho onde vai ser salvo com o nome e extençao do arquivo _arquivo = New System.IO.FileStream(TextBox2.Text, System.IO.FileMode.Create) _arquivo.Write(_byte, 0, _byte.Length) _arquivo.Close() Catch ex As Exception MsgBox(Err.Description) End Try End Sub End Class
Agora o leitor e executor do .DAT:
Imports System.String Imports System.IO Public Class Form1 Private Const _caminho As String = "F:\exe.exe" Private Const _caimnho_destino As String = "F:\exe.dat" Sub New() ' This call is required by the Windows Form Designer. InitializeComponent() ' Add any initialization after the InitializeComponent() call. Try 'o dat que sera lido e gerado o exe Dim _byte() As Byte = File.ReadAllBytes(_caimnho_destino) Dim _arquivo As System.IO.FileStream 'caminho onde sera salvo o exe _arquivo = New System.IO.FileStream(_caminho, System.IO.FileMode.Create) _arquivo.Write(_byte, 0, _byte.Length) _arquivo.Close() 'executa o exe Shell(_caminho) Catch ex As Exception MsgBox(Err.Description) End Try End Sub
Procure usar os mesmos nomes tanto no gerador quanto no leitor..
essa foi apenas uma base,da pra fazer uma coisa bem legal com isso :)
Microsoft Technology Associate (MTA)
- Editado Eduardo xUni sábado, 12 de outubro de 2013 04:22
- Marcado como Resposta Giovani Cr sexta-feira, 18 de outubro de 2013 14:11