Ir para conteúdo
Fórum Script Brasil
  • 0

Eu criei um monstro!


Darknnez

Pergunta

Caramba! É sério!

Criei um programa destruídor de arquivos.

E fiz sem querer.

Tava fazendo um programa aqui, pra passar o tempo (e que maneira de passar o tempo).

O objetivo é que o usuário, através desse programa, possa selecionar e registrar 10 arquivos executáveis como favoritos, que ficam salvos no próprio programa. E quando ele quiser abrir um dos arquivos registrados, ele faz isso diretamente sem precisar ir até o diretório original do arquivo.

E tava tudo ok.

Eu testei várias vezes com um mesmo arquivo, e funcionou perfeitamente em todos os casos.

Isso até que eu fiz o executável do programa.

A partir daí, toda vez que eu fazia o processo, aparecia uma mensagem de erro, e os arquivos testados eu não consegui mais abrir depois, mesmo sem ser pelo programa.

A imagem que aparece é a seguinte:

msgerroxa0.th.jpg

E to passando o projeto completo caso queiram ver:

http://rapidshare.com/files/85104297/Favoritos.rar.html

Por que isso acontece?

Se forem testar, testem em um arquivo que não seja importante.

Não me responsabilizo por perdas e danos. huahahahahaha

Até mais.

Editado por Darknnez
Link para o comentário
Compartilhar em outros sites

11 respostass a esta questão

Posts Recomendados

  • 0

pode baxar o ZSNES de novo.

o erro ta aqui ó:

Open CommonDialog1.FileName For Output As #1
    For i = 0 To 9
        Print #1, xFavorito(i).nome
        Print #1, xFavorito(i).caminho
        Print #1, xFavorito(i).ocupado
    Next
Close #1[/code]

o cara escolhe o exe no CommonDialog, ai você abre um arquivo no caminho do proprio exe e escreve coisas nele.

o exe é substituido por um arquivo texto. por isso ele vai dar erro pra abrir como exe. abra o exe no bloco de notas pra você ver o texto la.

outra coisa é q as propriedades nome, caminho e ocupado do xFavorito não tão ficando preenchidas.

Link para o comentário
Compartilhar em outros sites

  • 0

Consegui corrigir aqui.

Sò que agora quando eu aperto Ok no frmAdicionar, aparece uma mensagem de erro:

"File already open"

Isso é por que o arquivo já foi criado anteriormente.

Mas então como eu faço para trabalhar com o mesmo arquivo, e salvar a informação necessário nele, sem precisar abri-lo novamente?

O engraçado é que isso não tava dando antes.

Mas antes o programa tava todo errado, então sei lá.

Edit:

Já consegui corrigir aqui.

Valeu.

Editado por Darknnez
Link para o comentário
Compartilhar em outros sites

  • 0

Tem como abrir arquivos de qualquer formato?

Eu tentei fazer abrir arquivos diferentes de arquivo.exe, e não deu certo.

Edit:

Eu mandei o programa pra um amigo meu, e quando ele mandou abrir lá, deu a seguinte mensagem de erro:

"Component 'COMDLG32.OCX" or one of its dependencies not correclty registered: a file is missing or invalid"

O que é isso?

Editado por Darknnez
Link para o comentário
Compartilhar em outros sites

  • 0
Tem como abrir arquivos de qualquer formato?

Eu tentei fazer abrir arquivos diferentes de arquivo.exe, e não deu certo.

nesse caso, em vez da funcao Shell, use a ShellExecute, faca uma busca por ai q tem varios exemplos, mesmo no forum.

Eu mandei o programa pra um amigo meu, e quando ele mandou abrir lá, deu a seguinte mensagem de erro:

"Component 'COMDLG32.OCX" or one of its dependencies not correclty registered: a file is missing or invalid"

O que é isso?

ta faltando a ocx do CommonDialog. e talvez outras tb estejam faltando. você tem q mandar as ocxs e as dlls junto e mandar o seu amigo registra-las no pc dele, senao não vai funcionar mesmo. ou manda ele instalar o Visual Basic no pc dele q não vai ter mais esse problema.

mas na verdade pra distribuir o programa costumamos fazer um instalador (setup) q já instala os componentes no pc junto com o proprio programa. o Visual Basic tem o Package & Deployment Wizard (menu Iniciar -> Programas -> Microsoft Visual Studio 6.0 -> Microsoft Visual Studio 6.0 Tools -> Package & Deployment Wizard), ai ele já separa pra você todas as dlls e ocxs q você usa do projeto, sem você se preocupar. mas eu costumo usar o InnoSetup q é bem melhor. da uma olhada nesses topicos:

http://scriptbrasil.com.br/forum/index.php?showtopic=106740

http://scriptbrasil.com.br/forum/index.php?showtopic=109000

e tb pode fazer uma busca q tem mta coisa sobre isso tb.

Link para o comentário
Compartilhar em outros sites

  • 0

Olha só.

Eu mandei o programa pra alguns amigos e em todos os casos foi instalado e rodou perfeitamente.

Com exceção de um.

Olha a mensagem de erro:

54q15tmpbp3.th.jpg

E essa imagem também apareceu para outros *.dll.

Eu acho até que o problema não é com o programa, e sim com o computador do sujeito, que reconheceu um arquivo.dll semelhante no \system32, mas não conseguiu substiui-lo.

Como eu evito isso?

Link para o comentário
Compartilhar em outros sites

  • 0

caraio, q dll é essa q eu nunca vi??

pra q você usa ela?? sera q você não adicionou coisa a mais no projeto e/ou no instalador??

mas esses erros as vezes acontecem mesmo. nesses casos, fala pra pessoa clicar em Ignorar e continuar ca instalacao.

ai veja se o programa funciona.

se não funcionar, acho melhor fazer o instalador no InnoSetup.

veja o link q eu te passei do tópico do Musashi q la eu explico como corrige esses problemas.

Link para o comentário
Compartilhar em outros sites

  • 0
mas acho q a instalacao deve funcionar se o cara clicar em ignorar e continuar la.

Eu pedi para o meu amigo apertar Ignorar toda vez que a imagem aparecesse, mas o que ele me disse foi que a mensagem continuava aparecendo.

Eu marquei somente as flags "Nunca desinstalar" e "Somente se não existir", e desmarquei "Ignorar versão".

Isso para os .dll.

Para o executável eu deixei como estava, ou seja, marcado somente "Ignorar versão".

Vou ver se funciona assim que puder.

Uma outra dúvida que eu tenho quanto aos instaladores é a seguinte.

Se eu tenho uma imagem no meu projeto.

E eu mando buscar essa imagem num diretório determinado, como por exemplo C:\Arquivos de Programa\Projeto.

Só que no instalador, existe a opção do usuário alterar o diretório no qual o projeto será instalado.

Nesse caso, a imagem vai junto no instalador e é extraída no diretório selecionado.

Se isso acontece, vai dar erro no projeto, por que vai buscar a imagem em C:\Arquivos de Programa\Projeto, e ela não vai estar lá.

Eu poderia mandar o instalador extrair essa imagem em um diretório fixo, mas tem uma outra maneira de resolver o problema?

Editado por Darknnez
Link para o comentário
Compartilhar em outros sites

  • 0
mas acho q a instalacao deve funcionar se o cara clicar em ignorar e continuar la.

Eu pedi para o meu amigo apertar Ignorar toda vez que a imagem aparecesse, mas o que ele me disse foi que a mensagem continuava aparecendo.

talvez a mensagem tenha aparecido pra varias dlls e ele não tenha tido paciencia de chegar ao final.

Eu marquei somente as flags "Nunca desinstalar" e "Somente se não existir", e desmarquei "Ignorar versão".

Isso para os .dll.

fez certo.

Se eu tenho uma imagem no meu projeto.

E eu mando buscar essa imagem num diretório determinado, como por exemplo C:\Arquivos de Programa\Projeto.

Só que no instalador, existe a opção do usuário alterar o diretório no qual o projeto será instalado.

Nesse caso, a imagem vai junto no instalador e é extraída no diretório selecionado.

Se isso acontece, vai dar erro no projeto, por que vai buscar a imagem em C:\Arquivos de Programa\Projeto, e ela não vai estar lá.

Eu poderia mandar o instalador extrair essa imagem em um diretório fixo, mas tem uma outra maneira de resolver o problema?

App.Path retorna o caminho do exe. por exemplo, se você o exe estiver em C:\Arquivos de Programa\Projeto e a imagem em C:\Arquivos de Programa\Projeto\Imagens, você pode pegar por App.Path & "\Imagens\imagem.jpg".

ai vai funcionar não importa onde ele instale o programa.

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...