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 :

[winAPI] Programme au démarrage ? rechercher sur le disque ? listbox transparente ?


Sujet :

Windows

  1. #1
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut [winAPI] Programme au démarrage ? rechercher sur le disque ? listbox transparente ?
    Bonjour,

    Je rencontre dans le cadre de mon projet 3 problèmes :

    - Comment démarrer mon programme au démarrage de windows ? Il me semble que l'utilisation des HKEY est appropriée. Mais comment faire ?

    - Comment rechercher sur le(s) partition(s) tous les fichiers (par exemple musicaux : *.mp3, *.wav, *.wma, *.ogg) que l'on veut ? (y aurait il moyen de les récupérer sous la forme engendrée par une opendialogbox puisque j'ai déjà une fonction pour celle ci )

    - Pourquoi, quand je rends ma listbox transparente, (avec un copié collé d'un ctrlcolorstatic) le scroll fait se chevaucher ses éléments... comment y remédier ?

    Merci d'avance.
    Vive l'embarqué.

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    1. Par "démarrage de Windows", il y a deux significations possibles: Démarrage de Windows proprement dit (voir "services") ou ouverture de session (Là, divers moyens: Dossier Programmes\Démarrage, ou clé du registre HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run (HKEY_CURRENT_USER ou HKEY_LOCAL_MACHINE, selon tes besoins)).
    2. Pour cela, je pense que tu dois faire une recherche récursive dans les répertoires. Pour cela, sous Windows, il me semble bien qu'on utilise FindFirstFile()/FindNextFile()/FindClose().
    3. 'Sais pas, jamais eu l'idée de rendre transparente une listbox... Cela me parait assez inapproprié...
    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.

  3. #3
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    1. Je n'ai pas compris comment (d'ailleurs la fin m'est incomprise) implémenter cela dans un code C ou C++ ... Comment faire pour manipuler une variable ? Il me semble que cette variable est le point de départ...

    2. D'accord je vais essayer, bien que l'utilisation des FindFirstFile, FindNextFile, FindClose me paraisse assez floue ... (à vrai dire je ne vois pas comment ça marche mais bon ... vive msdn...)

    3. En fait je cherche à rendre transparente le fond de la listbox (et un SetBkMode transparent pour le texte) afin que le bitmap derrière (énervant celui là pas vrai ?) apparaisse derriere le texte. (d'ailleurs si vous saviez comment retirer la bordure de celle ci cela m'arrangerait )

    Merci d'avance.
    Vive l'embarqué.

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    1. RegOpenKeyEx().
    2. Bonne chance
    3. Je ne suis pas sûr que ce soit approprié pour une listbox. Essaie peut-être de la rendre translucide à la place (j'ignore si WS_EX_LAYERED marche sur les ChildWindows...
    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
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    1. D'accord je vais me renseigner.
    2. Merci je suppose que j'en aurais besoin
    3. Transparente - translucide ... il y a très peu de nuances ! et qu'est ce que WS_EX_LAYERED ?
    Vive l'embarqué.

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    3/ Tu peux oublier, ça ne marche pas pour les Child Windows : C'était pour avoir des fenêtres avec un % de transparence...[/list]
    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.

  7. #7
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Oui je viens de le voir ... alors comment faire ? Ton code de ctrlcolorstatic marche dans un ctrlcolorlistbox mais comme dit plus haut, on garde des traces du texte ... je me demande comment faire alors parce que cela fait vraiment moche ... Et la bodure (de la listbox) ? Saurais tu comment faire pour la supprimer ?
    Vive l'embarqué.

  8. #8
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Si tu peux détecter le scroll de la listbox, tu peux sans doute forcer un InvalidateRect() dessus avec le paramètre bErase à TRUE, ce qui devrait l'obliger à effacer le texte...

    Pour la bordure, je ne sais pas, ça doit dépendre (peut-être) des styles...

    Ou bien, en dernier recours, tu mets ta listbox en OwnerDraw et tu la dessines toi-même, ce qui devrait permettre de la skinner autant que tu pourrais le vouloir...
    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.

  9. #9
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    D'accord je vais voir tout ça, je poste si j'ai un problème (comme d'habitude )
    Merci.
    Vive l'embarqué.

  10. #10
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Je viens de comprendre ce que tu voulais dire conçernant les clés registre. Mais il y a quelque chose que je ne comprends pas : Après "Run" de CurrentVersion je mets quoi ? Comment spécifier le chemin d'accès à mon programme ? Y a t il encore plus simple si le programme est installé ? (puisque cela va être le cas ... je prévois un installeur)
    Vive l'embarqué.

  11. #11
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Ben, quand la clé Run est ouverte, tu fais comme les autres (tu n'as jamais regardé cette clé dans regedit ?) : Tu crées une valeur avec le nom de ton programme et en tant que données, le chemin de l'exe...

    La fonction pour cela est RegSetValueEx().
    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.

  12. #12
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Et si je veux la retirer comment fais-je ?
    Vive l'embarqué.

  13. #13
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    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.

  14. #14
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    Merci pour le lien c'est exactement ce que je cherchais ...je ne pensais pas qu'on pouvait faire une recherche par "thème" sur msdn...
    Je vais m'atteler à tout cela.

    En attendant, j'ai depuis un bon mois une question qui me trotte dans la tête : Comment pourrais je changer le curseur en fonction de sa position dans la fenêtre ? (par exemple charger l'index face à un bouton "actif" dans un bitmap)
    Vive l'embarqué.

  15. #15
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 : Septembre 2005
    Messages : 27 369
    Points : 41 518
    Points
    41 518
    Par défaut
    Tu peux chercher du coté de SetCursor(), mais l'aide invite à la prudence...
    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.

  16. #16
    Membre régulier Avatar de kidpaddle2
    Inscrit en
    Avril 2006
    Messages
    430
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 430
    Points : 95
    Points
    95
    Par défaut
    C'est exactement ça. A vrai dire je n'y avais pas du tout pensé Shame on me !
    Vive l'embarqué.

Discussions similaires

  1. [VB.NET] Comment rechercher des fichiers sur un disque.
    Par vijeo dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/08/2017, 10h17
  2. Réponses: 4
    Dernier message: 04/12/2012, 15h45
  3. Problème d'éxécution de programme sur 2ème disque dur
    Par thepinguin dans le forum Composants
    Réponses: 3
    Dernier message: 20/02/2007, 10h30
  4. Réponses: 3
    Dernier message: 16/11/2006, 11h54
  5. Installation de programmes sur un disque externe
    Par Niktou dans le forum Composants
    Réponses: 5
    Dernier message: 29/11/2005, 22h59

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