none
Abrir um programa junto com o meu. RRS feed

  • 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!

    sexta-feira, 11 de outubro de 2013 01:17

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


    sexta-feira, 11 de outubro de 2013 12:31
    Moderador
  • 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
    sábado, 12 de outubro de 2013 03:18

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


    sexta-feira, 11 de outubro de 2013 12:31
    Moderador
  • 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
    sábado, 12 de outubro de 2013 03:18