none
Porque minha aplicação fecha quando eu chamo uma janela do windows "minhas imagens" RRS feed

  • Pergunta

  • Eu fiz um programinha de cadastro de cliente para uma academia no meu PC windows 7, e tem que ter a foto dos alunos, funciona tudo direitinho, mais quando eu coloco para rodar no windows 8.1 e vou clicar no botão para chamar uma janela do Windows "minhas imagens" onde tem as fotos dos alunos, o windows 8.1 fecha o meu programa. Será que tem alguma coisa a ver com o ShowDialog? Alguém pode me ajudar?

    Em VB ta pessoal.

    Desde já agradeço a força.

    quarta-feira, 29 de julho de 2015 18:24

Respostas

  • Descobriiiiiiiiiiiiiiiiiii o problemaaaaaaaaaaaaa!!!!!!!!!!!!!! eeeeeeeeeeeeeeeeeeeeeeee!!!!!!!!!!!!!!

    Em primeiro lugar quero agradecer de coração o meu amigo

    por ter me ajudado e muito postando Links e documentos que me auxiliaram.

    Amigos o erro era o seguinte:

    Quando eu chamava o ShowDialog para pegar uma foto no C:\ assim

     If dlgImage.ShowDialog() = DialogResult.OK Then
                imgNome = dlgImage.FileName
                Dim newimg As New Bitmap(imgNome)
                PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
                PictureBox1.Image = DirectCast(newimg, Image)

    Dava um erro "como mostra a figura la em cima"

    O problema apresentava nesta linha do código: If dlgImage.ShowDialog() = DialogResult.OK Then

    Mas o problema não estava nesta linha, estava na parte que eu trazia de volta as fotos já salvas no banco de dados.Esta aqui:

    ---------------------------------------------------------------------------------------------------------------------

     Private Sub MostrarFoto()
            Dim cn As New OleDb.OleDbConnection
            cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\CrossFit.accdb"
            Try
                cn.Open()
                Dim arrImage() As Byte
                Dim myMS As New IO.MemoryStream
                Dim da As New OleDb.OleDbDataAdapter("SELECT CódCli, Image FROM tblCadCliente WHERE CódCli=" & Me.txtMatricula.Text, cn)
                Dim dt As New DataTable
                da.Fill(dt)
                If dt.Rows.Count > 0 Then
                    If Not IsDBNull(dt.Rows(0).Item("Image")) Then
                        arrImage = dt.Rows(0).Item("Image")
                        For Each ar As Byte In arrImage
                            myMS.WriteByte(ar)
                        Next
                        Me.PictureBox3.Image = System.Drawing.Image.FromStream(myMS)
                        PictureBox3.SizeMode = PictureBoxSizeMode.StretchImage
                        PictureBox3.Refresh()
                        myMS.Close()         'Eu tinha fechado o myMS
                        myMS.Dispose()     'mais não tinha colocado esse código   só isso!
                    End If
                Else
                    MsgBox("Registro não encontrado!")
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                cn.Close()
            End Try

            ' Me.txtMatricula.Text = dt.Rows(0).Item("Códcli") & ""
        End Sub

    ---------------------------------------------------------------------------------------------------------------------

    Eu tinha fechado o myMS assim:  myMS.Close() mais não tinha colocado esse código: myMS.Dispose()

    e era só isso!
    Abraços a todos.




    segunda-feira, 10 de agosto de 2015 02:06

Todas as Respostas

  • Fiz uma aplicação para cadastrar aluno em uma academia, e tem que ter uma foto do aluno, estava funcionando tudo direitinho, mais agora quando vai adicionar uma foto minha aplicação fecha quando uso o ShowDialog() para obter uma foto do aluno. Construí em um PC que roda o Windows 7 e a aplicação esta rodando em um notbook asus que tem windows 8. Será que tem alguma coisa a ver?

    Gente é em VB tá. Desde já agradeço a força.




    • Editado Jorge Alberto S sexta-feira, 24 de julho de 2015 20:30
    • Mesclado Marcos SJ quinta-feira, 30 de julho de 2015 14:12 Thread duplicada
    quinta-feira, 23 de julho de 2015 11:57
  • Olá Jorge,

    Tudo bem?

    Acredito que as informações contidas neste link talvez possam te auxiliar.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Marcos SJ sexta-feira, 24 de julho de 2015 20:51
    • Não Marcado como Resposta Jorge Alberto S quarta-feira, 29 de julho de 2015 18:29
    quinta-feira, 23 de julho de 2015 18:37
  • Ola Marcos Roberto de Souza Junior, obrigado por me ajudar, mais eu não entendi o resumo do que eles escreveram no link, em outras palavras, fiquei mais perdido do que cego em tiroteio. kkk me desculpe eu ainda sou muito leigo em programação, será que vc tem algo mais simples pra mim..? aguardo resposta.
    sexta-feira, 24 de julho de 2015 20:09
  • Olá Jorge,

    Infelizmente eu não teria uma material mais simples sobre o assunto, pelo que verifique esta documentação.

    Espero que isso ajude.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Jorge Alberto S terça-feira, 28 de julho de 2015 17:16
    • Não Marcado como Resposta Jorge Alberto S quarta-feira, 29 de julho de 2015 18:29
    sexta-feira, 24 de julho de 2015 20:50
  • Valeu amigão agora sim eu entendi...

    Mais não resolveu o meu problema, o windows 8.1 ainda continua fechando o meu programa.

    Abraços



    terça-feira, 28 de julho de 2015 17:16
  • Boa tarde Jorge,

    A sua dúvida ainda é a mesma desta outra thread que você abriu anteriormente?

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 29 de julho de 2015 19:42
  • Sim Marcos, eu não consegui algo que resolve-se o problema. Se você tiver uma ideia de como posso resolver isto, eu ficaria muito grato, pois já faz alguns dias que estou pesquisando e não encontro nada a respeito.
    quinta-feira, 30 de julho de 2015 01:24
  • Bom dia Jorge,

    Então, quando você tiver alguma pergunta e sua thread não for respondida, você não pode abrir uma nova thread com a mesma pergunta. A sua thread antiga nunca vai perder visualização. O que você pode fazer é comentar na mesma thread. Eu vou mesclar esta thread com a outra que você já havia aberto anteriormente.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ quinta-feira, 30 de julho de 2015 14:08
    quinta-feira, 30 de julho de 2015 14:04
  • Jorge,

    Vi que você desenvolveu uma aplicação para um sistema operacional e depois tentou utilizar esta mesma aplicação em outro sistema operacional. É isso?

    Gostaria de atentar para o fato de que cada sistema possui uma arquitetura diferente e quando você deseja utilizar esta aplicação em um novo sistema, você precisa alterar as bibliotecas para que sua aplicação funcione corretamente.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    • Marcado como Resposta Jorge Alberto S quinta-feira, 30 de julho de 2015 14:58
    • Não Marcado como Resposta Jorge Alberto S quinta-feira, 30 de julho de 2015 15:05
    quinta-feira, 30 de julho de 2015 14:18
  • Ola Marcos!

    Me desculpe pela segunda Thread, eu não sabia que não pode, eu só pensei em mudar a pergunta para facilitar o entendimento do amigo. Em fim, entendi o que me disse que tenho que mudar as bibliotecas, mais não tenho ideia de como fazer isso. Não quero abusar da sua bondade mas, você poderia me ensinar como faze-lo?


    quinta-feira, 30 de julho de 2015 15:13
  • Olá Jorge,

    Tudo bem, não tem problema. Você já tentou usar o aplicativo em modo de compatibilidade?


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 30 de julho de 2015 16:59
  • Ola Marcos Roberto!

    Ainda não tentei este método,  mas vou tentar e volto pra te contar ok.

    ah, obrigado pela paciência e pela força que você esta me dando.

    Abraços.

    quinta-feira, 30 de julho de 2015 18:10
  • Olá Jorge,

    Peço que verifique as instruções deste link.

    Atenciosamente


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 30 de julho de 2015 18:42
  • Olá Marcos Roberto, tudo bem?

    Eu verifiquei o link que você me mandou, fiz todos os testes e o problema ainda continua.

    O código que eu fiz é esse, será que tem alguma coisa errada?

    Este é o erro que esta me deixando louco... kkkk    Estou salvando a foto em um banco de dados Access 2007, será que é o banco que esta dando este problema?

    Este é o erro que este me deixando louco..

    No Windows 7 roda tudo direitinho sem nem um problema, já no Windows 8.1 apresenta este problema

    Alguém pode me ajudar a desvendar este mistério?


    quinta-feira, 6 de agosto de 2015 02:28
  • Bom dia Jorge,

    Gostaria de saber uma coisa sua, que de acordo com sua resposta podemos lhe auxiliar de uma forma mais eficaz referente ao seu problema.

    Qual a necessidade de ser feito em VB ? Que a Microsoft possui tecnologias mais avançadas para um sistema do seu porte.

    Abraços


    Matheus Leopardi Mello Canelada Campos

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    TechNet Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quinta-feira, 6 de agosto de 2015 17:49
  • Ola Matheus, tudo bem?

    Referente a sua pergunta "Qual a necessidade de ser feito em VB ?" É que foi em VB que eu aprendi no curso "T I", eu não conheço outros recursos. Qual seria esta tecnologia avançada que a Microsoft tem? Por favor me diga.


    sexta-feira, 7 de agosto de 2015 10:28
  • Descobriiiiiiiiiiiiiiiiiii o problemaaaaaaaaaaaaa!!!!!!!!!!!!!! eeeeeeeeeeeeeeeeeeeeeeee!!!!!!!!!!!!!!

    Em primeiro lugar quero agradecer de coração o meu amigo

    por ter me ajudado e muito postando Links e documentos que me auxiliaram.

    Amigos o erro era o seguinte:

    Quando eu chamava o ShowDialog para pegar uma foto no C:\ assim

     If dlgImage.ShowDialog() = DialogResult.OK Then
                imgNome = dlgImage.FileName
                Dim newimg As New Bitmap(imgNome)
                PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
                PictureBox1.Image = DirectCast(newimg, Image)

    Dava um erro "como mostra a figura la em cima"

    O problema apresentava nesta linha do código: If dlgImage.ShowDialog() = DialogResult.OK Then

    Mas o problema não estava nesta linha, estava na parte que eu trazia de volta as fotos já salvas no banco de dados.Esta aqui:

    ---------------------------------------------------------------------------------------------------------------------

     Private Sub MostrarFoto()
            Dim cn As New OleDb.OleDbConnection
            cn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\CrossFit.accdb"
            Try
                cn.Open()
                Dim arrImage() As Byte
                Dim myMS As New IO.MemoryStream
                Dim da As New OleDb.OleDbDataAdapter("SELECT CódCli, Image FROM tblCadCliente WHERE CódCli=" & Me.txtMatricula.Text, cn)
                Dim dt As New DataTable
                da.Fill(dt)
                If dt.Rows.Count > 0 Then
                    If Not IsDBNull(dt.Rows(0).Item("Image")) Then
                        arrImage = dt.Rows(0).Item("Image")
                        For Each ar As Byte In arrImage
                            myMS.WriteByte(ar)
                        Next
                        Me.PictureBox3.Image = System.Drawing.Image.FromStream(myMS)
                        PictureBox3.SizeMode = PictureBoxSizeMode.StretchImage
                        PictureBox3.Refresh()
                        myMS.Close()         'Eu tinha fechado o myMS
                        myMS.Dispose()     'mais não tinha colocado esse código   só isso!
                    End If
                Else
                    MsgBox("Registro não encontrado!")
                End If
            Catch ex As Exception
                MsgBox(ex.Message)
            Finally
                cn.Close()
            End Try

            ' Me.txtMatricula.Text = dt.Rows(0).Item("Códcli") & ""
        End Sub

    ---------------------------------------------------------------------------------------------------------------------

    Eu tinha fechado o myMS assim:  myMS.Close() mais não tinha colocado esse código: myMS.Dispose()

    e era só isso!
    Abraços a todos.




    segunda-feira, 10 de agosto de 2015 02:06
  • Que bom!!!

    : )


    Marcos Roberto de Souza Junior

    Esse conteúdo e fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as respostas que resolveram o seu problema. Essa e uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.


    • Editado Marcos SJ sexta-feira, 13 de novembro de 2015 14:40
    sexta-feira, 13 de novembro de 2015 14:40