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 :

user32.dll introuvable sur un 32bit mais trouvable sur un 64bit


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Apprenti ingénieur electronique informatique
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur electronique informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Par défaut user32.dll introuvable sur un 32bit mais trouvable sur un 64bit
    Bonjour,

    Je viens vers vous après deux jours de recherches sans succès.
    Dans mon application, je dois pouvoir controler et afficher le volume de l'ordinateur. J'ai donc utilisé une dll :
    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
    [DllImport("user32.dll")]
    public static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, IntPtr lParam);
     
    /*------Sound------*/
    internal static SoundPlayer errorSound = new SoundPlayer(ProjetLogiciel_V03.Properties.Resources.Error);
     
    //Pour controler le son windows
    private const int APPCOMMAND_VOLUME_MUTE = 0x80000;
    private const int APPCOMMAND_VOLUME_UP = 0xA0000;
    private const int APPCOMMAND_VOLUME_DOWN = 0x90000;
    private const int WM_APPCOMMAND = 0x319;
    //Pour récupérer le niveau du volume du son Windows
    private static MMDeviceEnumerator DevEnum = new MMDeviceEnumerator();
    public static MMDevice device = DevEnum.GetDefaultAudioEndpoint(EDataFlow.eRender, ERole.eMultimedia);
    private static int Vol, MasterMin;
    Mon application fonctionne sur mon ordinateur de 64bits et sur les autres ordinateurs de 64bits où j'ai réussi l'installation. Par contre, dès que je tente de lancer le logiciel sur un ordinateur de 32bits, une erreur se déclenche :

    "System.Runtime.InteropServices.COMException (0x80070490): Element not found. (Exception from HRESULT: 0x80070490)". Voir détail :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    System.TypeInitializationException: The type initializer for 'ProjetLogiciel_V03.SonWindows' threw an exception. ---> System.Runtime.InteropServices.COMException: Élément introuvable. (Exception from HRESULT: 0x80070490)
       at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)
       at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)
       at CoreAudioApi.MMDeviceEnumerator.GetDefaultAudioEndpoint(EDataFlow dataFlow, ERole role)
       at ProjetLogiciel_V03.SonWindows..cctor()
    Quelqu'un a-t-il déjà eu cette erreur?

    Merci pour vos retours

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Comment as-tu compilés ton projet : AnyCpu, x64, x86 ?
    Montres nous l'intégralité du code qui récupère ou applique le volume sur ton OS.

    As-tu jetés un œil à ce projet : https://www.codeproject.com/script/A...8520&av=112029

    A+

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Apprenti ingénieur electronique informatique
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur electronique informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Par défaut
    Bonjour wallace1,

    Merci pour ta réponse.

    Je le compile en AnyCpu.

    Oui, j'avais déjà regardé. Et j'ai eu beaucoup de mal à le comprendre. Donc, j'ai dû cherché une autre méthode plus simple.

    Par contre, j'ai trouvé l'origine du problème. S'il n'y a pas de système audio branché à l'ordinateur (haut-parleurs intégrés ou autres), le système du son de Windows est désactivé. Pourquoi? J'ai cru comprendre que ce serait dû à un IRQ qui désactive le système audio s'il ne détecte pas de sortie audio branchée mais pas sûr. Si vous avez une explication, je suis preneur.

    J'ai donc testé avec un casque branché et miracle, ça fonctionne.

    Merci pour ton aide en tout cas ;-)

    Edit : on m'a passé ce lien : https://github.com/StreamWhatYouHear/SWYH/issues/10. Quelqu'un avait déjà rencontré ce problème.

  4. #4
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    C un pc portable ou une tour ?

    Normalement meme sans brancher de casque sur pc portable ca bascule et fonctionne sur les enceintes du pc......o_O. ..

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Apprenti ingénieur electronique informatique
    Inscrit en
    Janvier 2018
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Apprenti ingénieur electronique informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2018
    Messages : 4
    Par défaut
    Bonjour,

    C'est une tour. Maos justement, elle n'a pas d'enceintes internes.

  6. #6
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    bonjour,

    Dans ce cas tu peux utiliser WMI (Win32_SoundDevice) pour savoir si ton PC possede un peripherique audio.

    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx

    https://stackoverflow.com/questions/...ces-in-c-sharp

    https://stackoverflow.com/questions/...ing-sound-card

    A tester...

    ++

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/12/2011, 10h01
  2. Réponses: 2
    Dernier message: 11/07/2006, 13h01
  3. CSS : Bordure sur les liens mais pas sur les images ?
    Par monstroplante dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/02/2006, 14h18
  4. [CSS] border-collapse sur les TR mais pas sur les TD.
    Par hpfx dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2005, 16h16
  5. Réponses: 11
    Dernier message: 17/03/2003, 10h56

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