Jump to content

Erro ao abrir um EXE pelo VB.net


a3deluxe
 Share

Recommended Posts

Boas,

Precisava de uma ajudinha.

Tenho um Form com um Button:

Process.start ("c:\Programa,exe")

não abre dá erro "MEMORY VIOLATION" (erro no próprio programa)

tentei com o SHELL e também nada.

Tentei com o ficheiro BAT, executar esse EXE, uma vez tive o mesmo problema com outro programa e funcionou.

Tentei também com um ficheiro em AutoIt a executar esse EXE e também nada.

Se executar o EXE manualmente funciona, e se executar o BAT ou o EXE em AutoIt, ambos também funcionam, abrem o programa.

Só com o VB é que não.

Algum sabe outra maneira de se poder executar um EXE?

Obrigado

Link to comment
Share on other sites

Boas,

O que tem nesse programa que causa um erro "MEMORY VIOLATION" ? Que eu saiba esse tipo de erro só ocorre ao tentar editar um espaço de memória física dentro de um processo onde a memória é somente READONLY.

Outra coisa, sempre que eu preciso executar alguma coisa fora do vb.net eu crio uma função que trata cada binário como deve ser executado. Seja um serviço, um shell, um executável Win32 ou um arquivo MS-DOS eles precisam ser executados corretamente.

O que é isso ?

...

Process.start ("c:\Programa,exe")

...

Não é uma vírgula que define a extensão do arquivo e sim um ponto.

Process.Start("C:\WINDOWS\System32\cmd.exe")

Trata as coisas em condições, use e abuse do Try Catch nesses casos.

Edited by Muryllo
Link to comment
Share on other sites

A vigula foi engano a escrever aqui,na fonte tenho o "."

Resolvido.

Tive que colocar o meu programa VB na mesma pasta do programa que quero executar.

Assim ja nao deu o Erro.

Mas o ideial era poder chama lo onde quizesse.

Link to comment
Share on other sites

A vigula foi engano a escrever aqui,na fonte tenho o "."

Resolvido.

Tive que colocar o meu programa VB na mesma pasta do programa que quero executar.

Assim ja nao deu o Erro.

Mas o ideial era poder chama lo onde quizesse.

E podes, têns é que especificar o caminho completo, coisa que não deves estar a fazer correctamente.

Link to comment
Share on other sites

lol, "não deixa", já te disse que têm de ser problema do teu código, ou então não tens acesso ao caminho que estás a tentar aceder... posta o código completo, e diz-me em que linha ocorre o erro e os detalhes do erro, um print server se não quiseres copiar os detalhes.

Link to comment
Share on other sites

Sabe oque é isso ? dependência. Ele disse que só após executar o programa na pasta do outro executável que funcionou. Algumas LIBs são declaradas do diretório atual em que o módulo foi carregado para a memória, ou seja é aquele famoso comando "Iniciar em : " ... que tal arrastar as dlls ou dependências do EXE a ser aberto para a pasta do seu programa ?

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.