IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

WPF 4.0, FileFormatException en Remote Desktop


Sujet :

Windows Presentation Foundation

  1. #1
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut WPF 4.0, FileFormatException en Remote Desktop
    Bonsoir à tous,

    J'ai eu une erreur bizarre ce soir.

    Je suis en c# WPF 4.0. L'erreur que j'ai survient sur une machine en Windows XP lorsque je suis connecté dessus avec Remote Desktop. Si je prend le contrôle de la machine directement, je n'ai pas cette erreur...

    Voici l'erreur:

    OsVersion : 5.1.2600.196608 Service Pack 3 32bits
    Error : ExceptionType : System.IO.FileFormatException
    Message : Format d'image non reconnu.
    Source :
    StackTrace : à System.Windows.Media.Imaging.BitmapFrameDecode.EnsureThumbnail()
    à System.Windows.Media.Imaging.BitmapFrameDecode.get_Thumbnail()
    à MS.Internal.AppModel.IconHelper.GetBestMatch(ReadOnlyCollection`1 frames, Size size)
    à MS.Internal.AppModel.IconHelper.CreateIconHandleFromImageSource(ImageSource image, Size size)
    à MS.Internal.AppModel.IconHelper.GetIconHandlesFromImageSource(ImageSource image, IconHandle& largeIconHandle, IconHandle& smallIconHandle)
    à System.Windows.Window.UpdateIcon()
    à System.Windows.Window.SetupInitialState(Double requestedTop, Double requestedLeft, Double requestedWidth, Double requestedHeight)
    à System.Windows.Window.CreateSourceWindow(Boolean duringShow)
    à System.Windows.Window.CreateSourceWindowDuringShow()
    à System.Windows.Window.SafeCreateWindowDuringShow()
    à System.Windows.Window.ShowHelper(Object booleanBox)
    à System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
    à MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
    InnerException : ExceptionType : System.Runtime.InteropServices.COMException
    Message : Exception de HRESULT : 0x88982F07
    L'application n'a même pas le temps de s'afficher.

    Avez une petite idée de ce qui peut bien avoir de particulier en Remote Desktop?

    Je ne fais absolument aucun traitement spécial sur des icônes ou des images. J'ai seulement des images/icônes en ressource qui sont référencé dans le XAML.

    Au moins, l'application n'est pas supposé être utilisé en Remote Desktop...mais on ne sait jamais

    Si quelqu'un a une idée! Merci.

  2. #2
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    J'ignore pourquoi cela se produit uniquement en remote desktop, mais voici quelques explications et solutions:
    http://code.logos.com/blog/wpf/ (chercher "FileFormatException"), qui pointe sur 2 liens intéressants : http://code.logos.com/blog/2008/08/i..._a_stream.html et le code de la solution http://github.com/LogosBible/Logos.U...basedStream.cs.
    En espérant que ça solutionnera ton problème.
    Cordialement.

  3. #3
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Merci, je vais regarder aujourd'hui.

  4. #4
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Sous Windows 7 en remote desktop je n'ai pas ce problème
    Je vais débugger le programme sur la machine en xp pour voir...

  5. #5
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Même en debug je n'avance pas plus.

    L'erreur est capturé par Application_DispatcherUnhandledException
    Et dans le callstack ça marque [External Code]

    Donc pas moyen de remonter plus haut.

  6. #6
    Membre Expert Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Par défaut
    Tu n'as aucun code qui touche à des bitmaps?

  7. #7
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Non aucun. C'est ça qui est vraiment bizarre.

    Je vais enlever toute mes références à des images et les remettre une à une pour voir.

  8. #8
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Trouvé! Mais je ne comprend vraiment pas pourquoi ça ne fonctionne pas en Windows XP Remote Desktop...

    La déclaration de ma forme principal (XAML) était ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <Window x:Class="CIV.Dashboard"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:civ="clr-namespace:CIV"
            xmlns:tb="clr-namespace:Hardcodet.Wpf.TaskbarNotification;assembly=Hardcodet.Wpf.TaskbarNotification"
            WindowStartupLocation="CenterScreen"
            SizeToContent="WidthAndHeight"
            Width="440"
            Height="500"
            ResizeMode="CanMinimize"
            StateChanged="Window_StateChanged"
            Activated="Window_Activated"
            Loaded="Window_Loaded"
            Icon="/CIV;component/Icons/Application.ico"
            Background="{StaticResource NormalBackground}">
    J'ai enlevé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Icon="/CIV;component/Icons/Application.ico"
    et je n'ai plus l'erreur...

    L'icone est situé dans "Solution\CIV\Icons\Application.ico"

    Je l'ai joint en pièce jointe...si quelqu'un à une idée du pourquoi?
    Fichiers attachés Fichiers attachés

  9. #9
    Membre chevronné
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2008
    Messages : 381
    Par défaut
    Je viens de trouver (je ne lache pas facilement).

    Mon icone contenant plusieurs format, dont une image de 256x256x32. C'est le même icone que pour mon application (réutilisation).

    J'ai enlevé la grosse image de 256x256x32 et ça passe bien. C'est donc elle qui causait le problème.

    Je met la discussion résolu, mais si quelqu'un à un hypothèse...allez y!

  10. #10
    Membre très actif
    Avatar de Cyrilange
    Profil pro
    Inscrit en
    Février 2004
    Messages
    268
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 268
    Par défaut
    Je viens ajouter une précision à ce post.
    Le problème n'est pas la taille de l'image mais la compression.
    Il semble que Windows XP ne soit pas capable de lire les images png compressés. Il suffit de désactiver la compression de ces images (voir le logiciel que vous utilisez pour créer vos icones) pour que cela fonctionne en conservant toutes les tailles y compris 256x256. Le seul désavantage c'est que la taille du fichier ico est légérement plus grand.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. remote desktop sans logout
    Par exter666 dans le forum Windows XP
    Réponses: 2
    Dernier message: 19/09/2006, 10h53
  2. API Windows : Remote Desktop Protocol
    Par mambo dans le forum Visual C++
    Réponses: 6
    Dernier message: 31/08/2006, 09h03
  3. Utilisation de Remote Desktop connection
    Par wassim_kh dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 04/08/2006, 13h04
  4. Question à propos de Remote Desktop
    Par rikidi dans le forum Autres Logiciels
    Réponses: 6
    Dernier message: 03/11/2005, 16h56
  5. Remote Desktop Protocol
    Par Jean-Jacques Engels dans le forum Windows XP
    Réponses: 1
    Dernier message: 12/10/2005, 22h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo