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 Discussion :

API Windows CE


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut API Windows CE
    Je tente de développer une application en c# destinée à tourner sur Windows CE 6.0

    Le problème que je rencontre c'est que je souhaiterais via cette application cacher la barre des taches windows... hors je suppose que la seule solution pour moi est d'utiliser l'API windows CE.

    Sur windows xp je sais comment faire en utilisant user32.dll et les fonctions FindWindows() et SetWindowPos().... mais sous windows CE je me retrouve devant un gros problème car user32.dll n'existe pas, j'essaye de trouver l'équivalent de ces deux fontions mais sans succès.

    Merci d'avance.

  2. #2
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Salut; regarde ici puisque tu es un Csharpiste :
    http://social.msdn.microsoft.com/for...-9234baecd6e4/

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Merci pour ton lien cela m'a au moins permis d'identifier la dll qui pourrait m'être utile a savoir coredll.

    Malheureusement j'ai tester sans succes mon application de test permettant de cacher la barre des taches sous windows xp en remplaçant simplement "user32.dll" par "coredll.dll"... ca ne fonctionne, je n'ai aucun message d'erreur mais il ne se passe rien.

    Voila le code qui fonctionne parfaitement sous windows xp :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
     IntPtr handleW1;
            uint TOGGLE_HIDEWINDOW = uint.Parse("80", System.Globalization.NumberStyles.HexNumber);
            uint TOGGLE_UNHIDEWINDOW = uint.Parse("40", System.Globalization.NumberStyles.HexNumber);
    
    
            [DllImport("User32.dll")]
            public static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
    
            [DllImport("User32.dll")]
            static extern bool SetWindowPos(IntPtr hWnd, IntPtr hWndInsertAfter, int X, int Y, int cx, int cy, uint uFlags);
    
    
     private void cmdShow_Click(object sender, EventArgs e)
            {
                handleW1 = FindWindow("Shell_traywnd", "");
                SetWindowPos(handleW1, (IntPtr)0, 0, 0, 0, 0, TOGGLE_UNHIDEWINDOW);
            }
    
            private void cmdHide_Click(object sender, EventArgs e)
            {
                handleW1 = FindWindow("Shell_traywnd", "");
                SetWindowPos(handleW1, (IntPtr)0, 0, 0, 0, 0, TOGGLE_HIDEWINDOW);
            }
    le remplacement de user32.dll par coredll.dll ne semble pas suffisant...
    si quelqu'un a une idée je l'en remercie d'avance...

  4. #4
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 406
    Par défaut
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    uint TOGGLE_HIDEWINDOW = uint.Parse("80", System.Globalization.NumberStyles.HexNumber);
    On ne peut pas faire directement ceci en C#?
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    uint TOGGLE_HIDEWINDOW = 0x80;

    Et aussi: Est-ce normal que tu ne passes pas les flags SWP_NOxx ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 406
    Par défaut
    Au passage, pour le DllImport, tu devrais rajouter SetLastError=true dans l'attribut.
    Ainsi, tu pourras utiliser Marshal.GetLastWin32Error() pour savoir pourquoi SetWindowPos() échoue...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Par défaut
    Concernant l'initialisation de TOGGLE_HIDEWINDOW tu avais effectivement raison ta facon de faire est beaucoup plus simple... (je précise que je débute débute en c#, a la base je faisais plutot du VB6 et en plus j'ai rarement utilisé les API...).

    Concernant Marshal.GetLastWin32Error() je précise que je développe pour le framework 2, j'ai l'impression que GetLastWin32Error() n'existe qu'a partir du framework 3.

    Je ne te cacherais pas que j'ai encore du mal avec les API aussi je suis aller voir sur msdn pour les flags SWP_NOxx. Je ne te cacherais pas que je ne suis pas certains d'avoir tout compris, ces flags sont-ils obligatoires ? . Mais a apriori cela fonctionnant sous XP je ne vois pas pourquoi cela ne fonctionnerait pas sous win CE.

    Par contre j'ai pris mon source sur le net en l'adaptant à mes besoins et je ne comprend pas ou on trouve les valeurs pour les flags (soit dans mon cas 0x40 et 0x80). Ces valeurs sont elles les mêmes pour windows xp et windows ce ?

    Merci

  7. #7
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 406
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 406
    Par défaut
    Citation Envoyé par koktel_dfr Voir le message
    Concernant Marshal.GetLastWin32Error() je précise que je développe pour le framework 2, j'ai l'impression que GetLastWin32Error() n'existe qu'a partir du framework 3.
    Cette fonction existait déjà dans le Framework 1.1, et est marquée comme supportée par le .Net Compact Framework...

    Je ne te cacherais pas que j'ai encore du mal avec les API aussi je suis aller voir sur msdn pour les flags SWP_NOxx. Je ne te cacherais pas que je ne suis pas certains d'avoir tout compris, ces flags sont-ils obligatoires ? . Mais a apriori cela fonctionnant sous XP je ne vois pas pourquoi cela ne fonctionnerait pas sous win CE.
    Ben normalement, ils devraient être obligatoires, sinon ta fenêtre se retouve déplacée et avec une taille de 0x0...

    Par contre j'ai pris mon source sur le net en l'adaptant à mes besoins et je ne comprend pas ou on trouve les valeurs pour les flags (soit dans mon cas 0x40 et 0x80). Ces valeurs sont elles les mêmes pour windows xp et windows ce ?
    Aucune idée.
    Mais sous Win32, j'ai ceci:
    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define SWP_SHOWWINDOW      0x0040
    #define SWP_HIDEWINDOW      0x0080
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Réponses: 29
    Dernier message: 14/01/2013, 11h40
  2. tutoriel : La programmation de l'API Windows en C++ par Bob
    Par Aurelien.Regat-Barrel dans le forum Windows
    Réponses: 19
    Dernier message: 21/06/2008, 15h34
  3. Documentation gratuite sur l'API Windows, COM, DCOM, OLE, etc.
    Par Community Management dans le forum Windows
    Réponses: 1
    Dernier message: 16/11/2006, 16h28
  4. [API Windows] Polices de caractères disponibles
    Par bebeours dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/11/2003, 09h28
  5. Utilisation de Pointeurs dans API windows
    Par Drooxy dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 13/03/2003, 23h39

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