Création d'un shell

alphamax666 Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 27 août 2005 - 21 août 2005 à 11:15
alphamax666 Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 27 août 2005 - 27 août 2005 à 16:26
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

Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
21 août 2005 à 19:18
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!
0
alphamax666 Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 27 août 2005
22 août 2005 à 07:46
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!
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 08:48
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
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 août 2005 à 10:00
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 août 2005 à 10:02
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.
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 10:03
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
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 août 2005 à 10:19
C'est rssfeeder ton appli ? parce que si si elle, elle prend au moins 30Mo ...
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 11:26
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
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 août 2005 à 11:34
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
0
sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
22 août 2005 à 11:38
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
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
22 août 2005 à 11:40
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.
0
Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
23 août 2005 à 00:17
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 ?
0
alphamax666 Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 27 août 2005
26 août 2005 à 19:54
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!
0
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
26 août 2005 à 20:01
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 ..
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 août 2005 à 20:39
Le nom de classe de la barre des tâches est "Shell_TrayWnd".

Cocoricoooooooo !!!!
coq
MVP Visual C#
0
alphamax666 Messages postés 4 Date d'inscription vendredi 14 mars 2003 Statut Membre Dernière intervention 27 août 2005
27 août 2005 à 16:26
Cool merci de vos réponses, ca aide bien, je vous préviens dés que la beta sort ...

@lphz_Max will never die!
0
Rejoignez-nous