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

C# Discussion :

Window 32 Exception


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut Window 32 Exception
    Bonjour à tous,

    Description de mon application:
    J'ai créé un catalogue interactif en C# WinForm que j'ai mis sur un DVD (besoin particulier je vous l'accorde mais c'est comme ça ) qui me permet de visualiser des produits. Pour chaque produit j'ai un bouton qui me permet d'ouvrir un PDF.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Diagnostics.Process.Start(Application.StartupPath + "\\fr\\Technique\\" + this.monProduit.getTechnique());
    Je vais chercher le nom du pdf dans une base SQL server compact 4.0.
    Après avoir lutté pour utiliser mon DVD sur Windows 7 ET Windows 8 (j'ai du créer une base par Windows) je pensais que tout roulait.
    Cependant sur un Windows 8 testé au hasard je me suis aperçu d'une erreur:

    ERREUR:
    System.ComponentModel.Win32Exception: Paramètre incorrect
    à System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)

    Recherches personnelles:
    -Je me suis aperçu que le Windows 8 présentant le problème était une version 32 bits installée sur un processeur 64 bits
    -Test d'ouverture d'un pdf sans passer par l'appli sur le PC présentant le bug: aucun problème
    -Test sur un autre Windows 8 64 bits sur un processeur 64 bits: aucun problème
    -Test sur Windows 7: aucun problème
    -Test directement depuis une clé USB: aucun problème
    -Mon appli est bien configuré pour tous les cpu
    -Après recherche sur Google j'ai essayé de rajouter un '@' devant le 'ApplicationStartupPath' = aucun changement.


    Je me sens bloqué aujourd'hui c'est pourquoi je me tourne vers vous, si vous avez la moindre piste je suis preneur merci à tous et bonne journée.

  2. #2
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    Quelle est la valeur de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StartupPath + "\\fr\\Technique\\" + this.monProduit.getTechnique()
    ?

    Tu devrait concaténer les chemins avec la méthode Path.Combine

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2012
    Messages : 116
    Points : 158
    Points
    158
    Par défaut
    As tu testé de compiler pour du CPU x32?

    Le 32 étant utilisable sur du 64, cela pourrait résoudre le problème (en attendant meilleure solution, si il y en a).

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    Merci pour vos réponses.

    Quelle est la valeur de
    Code :Sélectionner tout - Visualiser dans une fenêtre à part
    Application.StartupPath + "\\fr\\Technique\\" + this.monProduit.getTechnique()
    ?

    Tu devrait concaténer les chemins avec la méthode Path.Combine
    Exemple de valeur: C:\Users\moi\Documents\Masterchef\dvd\fr\technique\3BF0595FT.pdf 3BF0595FT étant le nom de mon fichier
    Pourquoi pas utiliser Path.Combine mais je suis sceptique sur sa nécessité. En effet mon appli fonctionne parfaitement par USB sur tous les Windows et seul un type de pc semble poser problème lorsqu'il s'agit du DVD(sur Windows 8).

    As tu testé de compiler pour du CPU x32?

    Le 32 étant utilisable sur du 64, cela pourrait résoudre le problème (en attendant meilleure solution, si il y en a).
    Soit je ne sais pas où configurer ceci soit je suis dans l'impossibilité de changer ce paramètre, en effet il ne me propose que ANY CPU.

    Merci encore à vous 2.



    Entre temps j'ai essayé de m'y prendre autrement mais j'ai un problème pire puisque je n'arrive même plus à ouvrir mon PDF depuis l'USB.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     System.Diagnostics.Process myProcess = new System.Diagnostics.Process();
                               String file = Application.StartupPath + "\\fr\\Technique\\" + this.monProduit.getTechnique();
                               myProcess.StartInfo.FileName = "@" + file;
                               myProcess.StartInfo.UseShellExecute = true;
                               myProcess.Start();
    J'ai même essayé sans le UseShellExecute (information trouvée sur StackOverFlow) mais ça ne fonctionne pas non plus.

  5. #5
    Membre émérite Avatar de meziantou
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2010
    Messages
    1 223
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Canada

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2010
    Messages : 1 223
    Points : 2 439
    Points
    2 439
    Par défaut
    et seul un type de pc semble poser problème lorsqu'il s'agit du DVD(sur Windows 8).
    Un DVD est en lecture seule, c'est peut-être source de problème. Tu peux essayer de définir un dossier en lecure seule pour vérifier que cela fonctionne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    myProcess.StartInfo.FileName = "@" + file;
    Quel est le but du "@" ?

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    Merci encore meziantou

    Un DVD est en lecture seule, c'est peut-être source de problème. Tu peux essayer de définir un dossier en lecure seule pour vérifier que cela fonctionne.
    Effectivement un DVD en lecture seule n'est pas une mince affaire, mais là encore je pense pas que le problème vienne de ça, je veux dire sur 100% des windows 7 testés le DVD fonctionne et sur plusieurs Windows 8 aussi.

    Quel est le but du "@" ?
    A vrai dire je ne sais pas mais par désespoir j'ai testé cette solution émise par Hans Passant ici (quelqu'un avait le même problème que moi): http://stackoverflow.com/questions/4...r-is-incorrect
    Somebody edited your question, fixing your mistake by accident. Use double backslashes or put a @ in front of the string.

    EDIT=> j'ai réussi à catcher l'erreur depuis. Mais j'apprends rien de plus que "Paramètre incorrect".

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    As-tu un Web browser installé sur le PC (IE, Firedox, ...) ?

    Que se passe-t'il quand on browse le DVD avec l'explorateur de fichier et qu'on clique sur le fichier HTML ?
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2013
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Mai 2013
    Messages : 54
    Points : 31
    Points
    31
    Par défaut
    As-tu un Web browser installé sur le PC (IE, Firedox, ...) ?

    Que se passe-t'il quand on browse le DVD avec l'explorateur de fichier et qu'on clique sur le fichier HTML ?
    J'ai peut-être dis une connerie précédemment mais je n'ai pas de fichier HTML (que des fichiers PDF). Mais soit prenons l'exemple du fichier PDF.
    Quand je browse le DVD avec l'explorateur de fichier je retrouve bien mon pdf et je peux l'ouvrir sans soucis.
    En fait pour le moment je "contre" mon problème en catchant l'exception et en ouvrant l'explorateur permettant à l'utilisateur d'ouvrir lui même le PDF... à défaut de l'ouvrir directement depuis l'application.

    Mais plus que "contrer" mon problème j'aimerai le résoudre

  9. #9
    Membre actif Avatar de stolx_10
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2006
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 374
    Points : 270
    Points
    270
    Par défaut
    question très con, mais sait-on jamais :
    sur la machine windows 8 qui pose problème, y a t-il un programme de lecture des fichiers PDF ?

    EDIT : ok j'ai a réponse juste au dessus, puisque par l'explorateur ça s'ouvre

Discussions similaires

  1. Windows Vista et l'UAC, existance d'exceptions ?
    Par jeromek dans le forum Administration
    Réponses: 1
    Dernier message: 16/05/2009, 20h08
  2. Réponses: 2
    Dernier message: 13/06/2008, 16h34
  3. Réponses: 2
    Dernier message: 16/11/2006, 17h09
  4. svn exception (Netbeans 5.5 beta 2 sous Windows)
    Par olvin777 dans le forum NetBeans
    Réponses: 3
    Dernier message: 05/10/2006, 00h31
  5. bloc try/except et API windows
    Par jakouz dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 24/02/2005, 12h21

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