Détection de Windows par les applications MS-Dos

cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 3 mars 2005 à 12:40
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 - 5 mars 2005 à 11:15
Bonjour,


Dans les propriétés avancées des raccourcis PIF, il y a une case à cocher «Empêcher la détection de Windows par les applications MS-Dos».

Quel est donc le code C++ permettant à une application 16 bits de Turbo C++ de détecter Windows ? C'est le principe utilisé par l'application ScanDisk.exe qui se lance ou qui lance ScanDiskW.exe si Windows est lancé.

Ce doit être compatible avec Turbo C++, car l'EXE doit être en 16 bits. Mais si vous avez une solution pour les consoles 32 bits en C++, alors il sera possible d'adapter par la suite.

Cordialement

===========
ViewVite : HTML

2 réponses

ShareVB Messages postés 2676 Date d'inscription vendredi 28 juin 2002 Statut Membre Dernière intervention 13 janvier 2016 26
3 mars 2005 à 18:52
salut,

ca se fait surement avec les varaibles globales _osmajor et _osminor de dos.h...

ShareVB
0
cs_grandvizir Messages postés 1106 Date d'inscription samedi 8 novembre 2003 Statut Membre Dernière intervention 3 septembre 2006 22
5 mars 2005 à 11:15
Tu as raison de nous faire penser à des variables d'environnement. Je viens de piger comment on les récupère. Mais comme j'ai quelques soucis avec le C++, je propose plutôt un exemple naturel en Turbo Pascal:


program Environn;
uses Dos;
var I : integer;
begin
for I := 1 to EnvCount do
WriteLn(EnvStr(I));
end.


Sous Windows, dans les résultats, on note celui-ci:
CMDLINE =WIN


En mode Ms-Dos après reboot spécial, on a:
CMDLINE=environn.exe


En résumé:
=> sous Windows, CMDLINE vaut "WIN"
=> sous Dos, CMDLINE vaut le nom de l'application


Cependant, c'est pas encore bon, car en lançant l'application depuis COMMAND.COM, l'application se détecte hors Windows (ce qui est faux). Quant à l'application WIN.COM, elle ne se fait pas piéger. Y'a donc autre chose... Ca serait sympa que qqn regarde les variables que le C++ affiche, car de mon côté avec Turbo Pascal, certaines ne se récupèrent pas, comme 'WINDIR' par exemple qui apparaît en minuscules (les autres étant en majuscules).

===========
ViewVite : HTML
0
Rejoignez-nous