Création d'un shell

Signaler
Messages postés
4
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
27 août 2005
-
Messages postés
4
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
27 août 2005
-
Bonjour a tous, je suis un programmeur C# et ASp.NET (C# aussi ^^) sinon, je vous expose mon problème :



Il y a un ans, Krosoft à été assigné par la cour européenne a
"dévoiler" le principe d'intégration de son shell. Il n'en a rien fait
a ma connaissance.



But du post : réunir des informations sur l'intégration/remplacement du shell EXPLORER



Alors voila les sujet de recherches :



1) Listage des icones dans le system tray --> j'ai aucune info
dessus, et j'arrive pas a en avoir a part lire les sources des shells
sur sourceforge :s



2) Trouver et inscrire la taille de la barre des taches --> aucune info



3) Lister les fenetres réduites (surement dans le registre ? nan ?) --> aucune info



4) Lister les icones sur le desktop --> j'ai pas cherché mais ca devrai aller.



Voila mes différents problèmes.



Ca serai cool de me donner 2-3 coups de pouces car je trouve rien.

Merci de votre sympathie ^^






@lphz_Max will never die!

16 réponses

Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
tu comptes serieusement programmer un shell en c# ? je ne pense pas
que cela soit une très bonne idée. Un a cause des performances et
d'autre part a cause du fait que cela soit un langage managée .. après,
c'est une qestion de point de vue!
Messages postés
4
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
27 août 2005

Au contraire, peut etre meme en 3D, c vrai que le C# te prendra en
mémoire 10Mo pour un hello wolrd mais il en fera autant pour un proxy
qui gerera 30connect a la minute. je sais de koi je parle.



De plus, je compte le faire le + complet possible. Mp3- video - image, il gerera tout, peut etre meme window manager. (*reve*)



Avec le C#, avec peu tu fait bcp. (et au pire je passe au C++ lol)

@lphz_Max will never die!
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
euh... les performances du C# ne sont pas si médiocre que ça.
en référence, je peux citer la réécriture de Quake en C#... qui est 5% moins rapide que la version C++.


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
Performances, OK. Mais utilisationn de la mémoire, c'est vraiment pas terrible, et comme je l'ai deja dit c'est un langage managé. Un shelle qui prendra au bas mot (vu les fonctions a y mettre) 80Mo de RAM, c'est pas viable! Je sais bien que les machines actuellement possèdent de psu en plus de mémoire, mais quand meme un shell se doit de ne pas suconsommer de la mémoire pour en laisser aux autres programmes de 'travail'. Enfin, après tout cela ne reste que mon avis.
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
Pour toutes les fonctions dont tu as parlé dans ta description il va falloir que tu passes par les API windows. Par exemple, pour ce qui est de ta fonction de trouver les fenetres qui sont réduites, il va falloir tout d'abord que tu liste les fenetres du système (avec l'api enumwindow) et ensuite que pour chaque fenetre trouvées, tu regarde si oui ou non elle est réduite.
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
niveau ram... ca va... ma derniere appli ne prend que 1,5Mo... pourtant c'est du C#

pour en savoir plus : http://www.codeproject.com/smartclient/rssfeeder.asp


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
C'est rssfeeder ton appli ? parce que si si elle, elle prend au moins 30Mo ...
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
ce n'est pas mon appli...
mais regarde la classe MemoryHelper... et tu vas comprendre pourquoi, une fois masquée, elle ne prend plus que 2 ou 3 Mo.


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
Franchement, je connaissais pas. Merci pour l'astuce. cependant, je
continue a rester persuader que C# n'est pas un langage propice au
developpement d'un shell. Le shell étant un élément critique pour
l'utilisation d'un OS, je ne pense pas que les capacités du langage
soit suffisante. Encore merci sebmafate
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
36
je suis d'accord sur le point que C# n'est pas (pour l'instant) fait pour créer un shell. Mais ses capacités ne sont pas si pauvres que ça.


<HR>
Sébastien FERRAND

Blog : http://blogs.developpeur.org/sebmafate
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
Tout a fait d'accord, le C# est un très bon langage (je l'utilise tout
les jours au boulot). c'est un langage que je trouve meme riches aux
niveaux deses fonctionnalités. Mais c'est et cela restera un langage
managé, ce qui n'est pas ce qu'on fait de mieux pour un shell.
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
38
Si j'ai compris qlq'chose à la chose, il faut utiliser cette classe MemoryHelper quand la forme perd le focus ou quand on la masque c'est bien ca ? Est-ce utile aussi lorsque la forme est minimisée ?
Messages postés
4
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
27 août 2005

Ok merci pour vos réponses, en ce qui concerne mon post, ca a Trollé dur ...



J'ai quelques éléments de réponses, style rechercher du coté des API et memory helper aussi en astuce



Voila comment ca marchera, le but de mon shelle est la rapidité je vous
parle pas de place en mémoire... M'en fout royal a vrai dire... Si ca
fait 80Mo en mémoire voire 100, ca prendra 10% de ma rame, alors c le
cadet de mes soucis. Je veux un truc qui pulse, qui soit tout le temps
en mémoire.



2 ou 3 fonctions a implémenter :



la premiere : "Dodo shell" le shell se décharge de l'ordi et il reste k'un bouton "Wake Up" pour lancer des progs gourmands.

2) je déchargerai en mémoire chaque parti de mon shell (ex explorateur,
ou visualisateur d'image, ou zipeur) si l'utilisateur les demandes pas.
Mais seulement si ca joue pas sur la rapidité.



Enfin, merci a tous d'avoir répondu et continuez :



Shell Windows, api et

1) Listage des icones dans le system tray --> j'ai aucune info
dessus, et j'arrive pas a en avoir a part lire les sources des shells
sur sourceforge :s



2) Trouver et inscrire la taille de la barre des taches --> aucune info



3) Lister les fenetres réduites (surement dans le registre ? nan ?) --> aucune info



Pas en dehors du sujet. Merci




@lphz_Max will never die!
Messages postés
721
Date d'inscription
dimanche 10 juin 2001
Statut
Membre
Dernière intervention
27 mars 2011
7
La barre des tâches est une fenetre comme les autres. Donc il suffit de
faire une énumération et de trouver son nom .. un truc du genre
systray. comme c'est une fenetre, tu pourra ensuite récupérer un tas
d'info sur elle, entre autre sa taille. ce qui dans le cas présent
t'interesse. Pour le listage des fenetres, il te faudra voir du coté de
l'api enumwindow (qui au passage, utilise un callback)

Ensuite pour lister les fenetres réduites, quand tu auras ta liste il
te suffira d'utiliser l'api IsIconic qui indique si une fenetre est
réduite. Pas de registre ici ..
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Le nom de classe de la barre des tâches est "Shell_TrayWnd".

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
4
Date d'inscription
vendredi 14 mars 2003
Statut
Membre
Dernière intervention
27 août 2005

Cool merci de vos réponses, ca aide bien, je vous préviens dés que la beta sort ...

@lphz_Max will never die!