Précédent   Forum des professionnels en informatique > Systèmes > Windows > Windows XP
Windows XP Forum d'entraide Windows XP. Avant de poster : La F.A.Q Windows XP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/09/2011, 22h39   #1
Invité de passage
 
Inscription : février 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 5
Points : 0
Points : 0
Par défaut Comment "alléger" Windows XP ?

Bonjour à tous.
Je vous expose mon problème de façon succincte tout d'abord, en espérant par la suite le développer un peu plus.
J'ai développé, sur Mac et compilé à l'aide de RealBasic un programme destiné à tourner sur PC (XP). Une carte à µcontroleur envoie via le port USB les différentes commandes (il y en a une quinzaine). Ceci rend totalement inutile l'emploi d'un clavier et en particulier interdit les interruptions que l'on pourrait provoquer avec ce dernier. Sur table, et quand c'est moi qui l'utilise, tout ce passe très bien. Et d'ailleurs tant que l'on ne connecte pas de clavier, tout est OK quelque soit l'utilisateur.
Une partie du problème et le suivant : comment empêcher toute commande issue d'un clavier de réagir ?
Et mieux : qu'écrire dans le programme pour qu'il ne s'exécute pas si un clavier est branché ? (avant ou après qu'il eut-été lancé ?)
Ensuite, second aspect, j'envisage de ne jamais éteindre l'ordinateur hôte. Le programme est "bateau" pas besoin de ressources exotiques. J'aimerais pouvoir débrayer tout ce qui est internet, applications annexes de XP et mieux encore si possible ne pas accéder à XP lui-même. En fait, je n'ai besoin que des ressources USB et Sérial et de rien d'autres, je ne souhaite que faire tourner mon programme et rien d'autre. Vous voyez, je deviens exigeant !
Sur Mac, je sais faire une grande partie de cela, mais pas sur PC.
Et aussi, j'aimerais, si on a éteint l'ordinateur qu' à son redemarrage il boote le plus rapidement possible sur mon programme sans me signaler que mon ordi court un risque, que des icônes sont inutilisées, ou je ne sais quel autre de ces remarques dont Microsoft est friand. L'idéal serait qu'il démarre sans rien montrer de Window. ... et le plus rapidement possible.
Est-ce que je rêve ? Est ce possible ? Mes connaissances de Windows sont trop limitées pour que je solutionne moi-même.
Un grand merci, a ceux qui pourront partiellement ou en totalité m'aider. Mais qu'ils se disent bien que probablement je vais avoir besoin d'eux pendant la période de tests.
azad2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 10h47   #2
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Salut azad2b,

tu pourrais commencer par remplacer le shell par défaut de Windows (Explorer) par ton application. De cette manière, la plupart des raccourcis claviers seront bloqués.
Pour le reste, tu devrais regarder du côté de GPO.

J'espère que ça t'auras un peu avancé.
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 18h37   #3
Invité de passage
 
Inscription : février 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 5
Points : 0
Points : 0
Bonjour, Anikinisan....
Le seul problème, et il est de taille, c'est que depuis ma prime enfance je suis Mac à fond.
Alors, sans vouloir réveiller la vieille guéguerre, qui d'ailleurs semble se calmer depuis que Mac est passé en "Intel Inside", il se trouve que ma culture Windows est plutôt rudimentaire. J'ai fait quelques essais du coté du bootcfg, pas très concluants je l'avoue. Et c'est maintenant que je prends conscience que mon refus d'entrer dans la connaissance du monde Windows fut plutôt une erreur...
J'ai pourtant tenté la lecture du lien que tu m'as donné, et j'ai vaguement pigé que muni de ce Regedit (qui permet aussi, de tout casser) je pouvais configurer un KEY3 qui (peut-être) pourrait répondre à un début de mes besoins.
Alors, et si cela n'est pas trop compliqué, pourrais-tu m'indiquer "concrètement" la marche à suivre. Car mon petit doigt me susurre que si je fais cela moi-même, je suis bon pour une réinstallation de XP.
Supposons que mon application s'appelle "toto". Quoi, et où, dois-je écrire toutes ces choses bien mystérieuses.
Je devine qu'ensuite en changeant l'ordre des boot je pourrais orienter le système vers cette bien étrange KEY3.
Mais bien entendu, si cela devait te prendre trop de temps, je ne t'en voudrais pas de me laisser me dépatouiller moi-même, puisque de toutes façons, mon ignorance n'est imputable qu'à moi. Tout de même, je te dis à bientôt et te remercie de m'avoir aiguillé vres quelque chose de tangible.
azad2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 09h46   #4
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Désolé, j'ai pas vraiment détaillé. Mea culpa.
En fait, pour remplacer le Shell par défaut, il te suffit de modifier une clef de la base de registre de Windows. Pas besoin de toucher au bootcfg.
Pour lancer l'editeur de la base de registre :
- raccourcis clavier Windows + R
- tapes regedit
Ca ouvre une fenêtre avec une treeview à gauche.
Dans cette treeview, va jusqu'à la clef
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\

À droite de la treeview se trouve une liste où tu dois créer une nouvelle valeur.
Pour ce faire :
- click droit dans la liste : NEW => String Value
- Tu la nomme Shell
- Tu changes sa valeur (double click dessus) par le chemin complet de ton application (ex: C:\Program Files\MonAppli\toto.exe)

Et c'est tout pour le changement de Shell au démarrage.
Avec ça, l'utilisateur ne verra plus la barre des taches, ne pourra (presque) plus utiliser de raccourcis clavier et ne pourra pas ouvrir de fenêtre explorateur de fichier.
Le truc c'est qu'il pourra toujours afficher le gestionaire des tâches et depuis ce dernier, relancer l'Explorer.

Il faudrait donc aussi bloquer l'acces au gestionnaire des tâches qui peut se faire à l'aide de GPO (je n'ai encore jamais fait ça).
Si quelqu'un qui s'y connait pouvait prendre le relais, ça serait sympa.
(Sinon j'essaierai d'y jetter un oeil)
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 12h53   #5
Invité de passage
 
Inscription : février 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 5
Points : 0
Points : 0
Bonjour
Je viens de faire un test en respectant tes instructions.
Au redémarrage, j'ai eu droit au message : "l'application MonAppli.exe à rencontré une erreur et doit fermer....."
J'ai redémarré mais en mode sans échec? Et là ça a marché très correctement. Je me suis donc dit que mon appli devait utiliser des ressources rendues inaccessibles avec le démarrage sur "Shell"
A partir du gestionnaire de tâches, j'ai relancé Regedit, et supprimé la valeur Shell que je venais de créer. Tout est rentré dans l'ordre.
Sur ma lancée, j'ai réécrit une petite appli toute bête qui se contente d'afficher une image et dotée d'un bouton "Quitter". Nouveau Shell donc avec cette appli en cible et elle fonctionne parfaitement selon tes conseils.
Il y a donc dans mon appli d'origine des choses qui ne plaisent pas au système quand il boote sur mon Shell. Mais là bien entendu, c'est à moi de rechercher. Comme j'utilise des thread (du genre "on iddle -> fait ceci ou cela" je pense que l'erreur vient de là") En tout cas, ton idée est excellente et me convient tout particulièrement.
Sauf bien sûr, que mon amour propre en a pris un sacré coup.... Il va falloir que que me mette à potasser un peu ce Windows que je croyais fermé à toute manipulation. Un grand merci, donc, mais prudent, je ne ferme pas le post. car j'aurais sans doute à abuser à nouveau de ton savoir.

PS J'ajoute que la lecture du rapport d'erreurs, ne m'a pas apporté grand chose
azad2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 13h22   #6
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Citation:
Envoyé par azad2b Voir le message
PS J'ajoute que la lecture du rapport d'erreurs, ne m'a pas apporté grand chose
T'inquiètes pas ça c'est normal.

Citation:
Envoyé par azad2b Voir le message
j'aurais sans doute à abuser à nouveau de ton savoir
Ah ah, elle est bien bonne celle-là. Tu risques pas d'abuser de grand chose alors.

Content de voir que ça avance.
Sinon pour avoir un peu plus de précision quant à l'erreur qui fait crasher ton appli, tu pourrais utiliser Dependency Walker.
C'est un programme de Microsoft qui t'affiche toutes les dépendances d'une application.
En l'installant par exemple sur "C:\Program Files\DependencyWalker" tu pourrais l'utiliser en tant que Shell (réutiliser la manip de tout à l'heure).
Pour ce faire :
- changer la valeur de HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell et utiliser C:\Program Files\DependencyWalker\Depends.exe "C:\Program Files\MonAppli\toto.exe"Ca devrait démarrer dependency walker en tant que Shell.
Une fois démarré, il faudra aller dans le menu "Profile=>Start Profiling" et valider en conservant les paramètres par défaut.
Ca lancera ton appli en loggant tous les appels aux librairies et tu pourras peut-être faire un lien entre le moment du crash et la dernière lib utilisée...

Attention :
Ceci peut ne pas t'avancer du tout...
C'est juste une proposition qui peut éventuellement te mettre sur le chemin du comment du pourquoi de cette erreur.

Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 13h47   #7
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Je viens de repenser à un problème que j'avais rencontré en utilisant ce système de custom Shell.

En fait lors du démarrage de Windows, il va chercher dans la BDR(base de registre) cette fameuse clef pour savoir s'il doit démarrer un custom Shell ou non.
Et si y'en a un il l'execute mais depuis je ne sais quel working directory.


Je sais pas si ce système de working directory existe aussi sur Mac, alors je vais expliquer un peu (surement pas avec les bons termes et pas 100% exact mais ça suffira pour la compréhension dans notre cas).

Dans ton application, si jamais tu utilises des chemins de fichier relatif, Windows va utiliser le chemin que tu lui as donné à partir du working directory.
Dans 99% des cas, le working directory est le répertoire où se trouve ton executable. Mais tu peux aussi lancer ton appli depuis un autre répertoire et donc dans ce cas, le working directory ne sera pas le répertoire de ton appli.
Exemple : tu peux depuis ta console, lancer ton appli située dans "C:\Program Files\MonAppli\toto.exe" depuis le répertoire "C:".
Et si ton appli cherche un fichier nommé "monFichier.txt", ben ici, il cherchera dans "C:" et non pas dans "C:\Program Files\MonAppli\".

Tout ça pour dire que si jamais tu utilises dans ton appli à un moment des chemins, fais le en chemin absolu. Sinon, ça peut faire bobo.
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 14h57   #8
Invité de passage
 
Inscription : février 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 5
Points : 0
Points : 0
hé bien, je viens à partir du Mac, de télécharger Dependency Walker. Je cours l'installer sur mon pauvre PC qui n'a jamais tant travaillé que ces dernières heures...
Sur Mac on a aussi les mêmes notions de chemins relatifs ou absolus, mais je ne pense pas que le défaut provienne de là, car d'une part je met toujours pour mes fichiers le path complet, et d'autre part, le fait qu'en mode "sans échec" le programme tourne (pas dans la fenêtre appropriée, mais tourne quand même), semble indiquer qu'il a parfaitement trouvé les fichiers "prefs" et "data")
Il me semble que Depency pourra m'aider, d'autant que j'utilise assez souvent un debugger desassembleur du nom de IDA qui m'aide assez souvent pour déboguer les petites choses que j'écris sur PC. Sur le Mac je préfère, et de loin, utiliser des choses comme GDB. Mais je crois que par nature, on aime avant tout ce que l'on connaît. Pas vrai ?
Néanmoins, comme mon programme est compilé par un Basic, je crains que naviguer dans les bibliothèques du Basic ne vas pas être très simple. Et puis il faut reconnaître aussi que le RealBasic, qui tourne aussi bien sur Win, sous Unix et sur Mac et qui compile pour les trois systèmes, ne génère pas un code objet particulièrement optimisé, si tu me permet cet euphémisme !
Merci de penser à moi. Mais au fait, tu peux modestement te considérer comme borgne, mais dis-toi bien tout de même qu'au royaume des aveugles, les borgnes sont rois
azad2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 10h02   #9
Invité de passage
 
Inscription : février 2007
Messages : 5
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 5
Points : 0
Points : 0
Bonjour Anikinisan...
Je viens de trouver ce qui empêchait mon appli de tourner correctement et j'avoue que la raison est assez subtile.
En gros , mes images s'affichent dans des "containers" qui sous RealBasic portent le nom de "Canvas". Ces objets sont dotés de pas mal de propriétés et l'une d'elle concerne leur "focus". Il se trouve que sur Mac et sur PC la gestion de ces focus n'est pas tout à fait identique et étrangement le mode de fonctionnement, qui n'était pas affecté avec le shell normal, devenait aléatoire avec le nouveau shell que tu m'as fait installer. J'avais déjà constaté en temps normal des anomalies légères entre les versions destinées aux deux plates-formes, anomalies que j'avais corrigé en insérant quelques lignes de compilation conditionnelles qui corrigeaient le tir. C'est ce que j'ai fait aujourd'hui en ajoutant des conditions supplémentaires à la compilation.
Je t'avoue que ta solution me convient très bien, comme base de départ. Si je trouve quelques petites choses qui viendraient me chagriner, je t'appellerais à mon secours. M'autorises-tu à pour cela, le faire en MP ?
Parce que, vois-tu, quand on trouve un borgne dont la vision est aussi fine, on se le garde au chaud.....
Merci.
azad2b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/09/2011, 10h37   #10
Membre chevronné
 
Inscription : juin 2006
Messages : 444
Détails du profil
Informations personnelles :
Localisation : Allemagne

Informations forums :
Inscription : juin 2006
Messages : 444
Points : 680
Points : 680
Content de voir que tu as résolu ton problème !

Si tu as d'autres problèmes tu peux les poster ici et me prévenir par mp.
Anikinisan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h17.


 
 
 
 
Partenaires

Hébergement Web