VB6 et VIsta

Le
Patrice Henrio
Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?

Merci du retour d'expérience.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Patrick Philippot
Le #15349261
Bonjour,

Patrice Henrio wrote:
Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?



Certains MVPs rapportent des problèmes récurrents. Je pense qu'il doit
falloir créer des fichiers manifestes pour certaines applications. La
présence d'un fichier manifeste a l'avantage de désactiver la virtualisation
pour l'application en question, ce qui élimine déjà une source potentielle
de problèmes.

Voir la description des fichiers manifestes sur cette page (fin de
document):

http://www.microsoft.com/france/msdn/windowsvista/Migrer-une-application-vers-Windows-Vista.mspx

Il suffit de créer le fichier conformément au modèle proposé (c'est du XML,
attention à la casse - la moindre erreur de majuscule/minuscule et rien ne
fonctionne), de choisir l'option adéquate pour requestedExecutionLevel et de
sauvegarder le fichier sous monappli.exe.manifest dans le même répertoire
que l'exe.

Je ne garantis pas que cela va régler tous les problèmes, cependant. Mais ça
va sûrement aider.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
SAISAS
Le #15349241
Bonjour,

nous avons testé nos produits sous Vista sans aucun problème ... nos
produits utilisent des bases de données Access et les fonctions classiques
Windows en passant par les interfaces standard (comondialog, Dataenvironment,
Les contrôles standard ...). Nous utilisons aussi l'outil de déploiement de
VB6 qui lui non plus ne semble poser aucun problème.

Le seul problème qui semble être rencontré concerne les autorisations
d'accès sur les fichiers (bases de données en lecture seule par défaut!),
mais cela existe déjà dans les versions antérieures lorsque l'on installe
sous un nom d'utilisateur et qu'on exécute sous un autre nom.

Note : ce serait un comble que cela ne marche pas !

Si tu veux tester l'installation :
http://www.accompagnement-info.fr/
option de menu Télécharger une démo.

Cordialement.

"Patrice Henrio" a écrit :

Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?

Merci du retour d'expérience.





Patrice Henrio
Le #15349191
Merci de l'ensemble de ces réponses.
Si quelqu'un a Vista ce serait sympa d'installer mon logiciel histoire et de
me renvoyer les problèmes éventuels. Je suis preneur aussi de "tout va bien"

Voici l'adresse : http://histoiremondiale.free.fr

Normalement, d'après vos réponses, il ne devrait y avoir aucun problème (que
du VB classique et des API windows standard).

A plus.

"SAISAS"
Bonjour,

nous avons testé nos produits sous Vista sans aucun problème ... nos
produits utilisent des bases de données Access et les fonctions classiques
Windows en passant par les interfaces standard (comondialog,
Dataenvironment,
Les contrôles standard ...). Nous utilisons aussi l'outil de déploiement
de
VB6 qui lui non plus ne semble poser aucun problème.

Le seul problème qui semble être rencontré concerne les autorisations
d'accès sur les fichiers (bases de données en lecture seule par défaut!),
mais cela existe déjà dans les versions antérieures lorsque l'on installe
sous un nom d'utilisateur et qu'on exécute sous un autre nom.

Note : ce serait un comble que cela ne marche pas !

Si tu veux tester l'installation :
http://www.accompagnement-info.fr/
option de menu Télécharger une démo.

Cordialement.

"Patrice Henrio" a écrit :

Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?

Merci du retour d'expérience.







Jacques
Le #15349151
Bonjour,

J'ai downloadé, installé, utilisé et désinstaller "Histoire" sans problème
avec Vista.
"Tout va bien" ... !!! :-)

Jacques



"Patrice Henrio" news:
Merci de l'ensemble de ces réponses.
Si quelqu'un a Vista ce serait sympa d'installer mon logiciel histoire et
de me renvoyer les problèmes éventuels. Je suis preneur aussi de "tout va
bien"

Voici l'adresse : http://histoiremondiale.free.fr

Normalement, d'après vos réponses, il ne devrait y avoir aucun problème
(que du VB classique et des API windows standard).

A plus.

"SAISAS" news:
Bonjour,

nous avons testé nos produits sous Vista sans aucun problème ... nos
produits utilisent des bases de données Access et les fonctions
classiques
Windows en passant par les interfaces standard (comondialog,
Dataenvironment,
Les contrôles standard ...). Nous utilisons aussi l'outil de déploiement
de
VB6 qui lui non plus ne semble poser aucun problème.

Le seul problème qui semble être rencontré concerne les autorisations
d'accès sur les fichiers (bases de données en lecture seule par défaut!),
mais cela existe déjà dans les versions antérieures lorsque l'on installe
sous un nom d'utilisateur et qu'on exécute sous un autre nom.

Note : ce serait un comble que cela ne marche pas !

Si tu veux tester l'installation :
http://www.accompagnement-info.fr/
option de menu Télécharger une démo.

Cordialement.

"Patrice Henrio" a écrit :

Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?

Merci du retour d'expérience.











Patrice Henrio
Le #15349141
Merci.

"Jacques"
Bonjour,

J'ai downloadé, installé, utilisé et désinstaller "Histoire" sans problème
avec Vista.
"Tout va bien" ... !!! :-)

Jacques



"Patrice Henrio" news:
Merci de l'ensemble de ces réponses.
Si quelqu'un a Vista ce serait sympa d'installer mon logiciel histoire et
de me renvoyer les problèmes éventuels. Je suis preneur aussi de "tout va
bien"

Voici l'adresse : http://histoiremondiale.free.fr

Normalement, d'après vos réponses, il ne devrait y avoir aucun problème
(que du VB classique et des API windows standard).

A plus.

"SAISAS" news:
Bonjour,

nous avons testé nos produits sous Vista sans aucun problème ... nos
produits utilisent des bases de données Access et les fonctions
classiques
Windows en passant par les interfaces standard (comondialog,
Dataenvironment,
Les contrôles standard ...). Nous utilisons aussi l'outil de déploiement
de
VB6 qui lui non plus ne semble poser aucun problème.

Le seul problème qui semble être rencontré concerne les autorisations
d'accès sur les fichiers (bases de données en lecture seule par
défaut!),
mais cela existe déjà dans les versions antérieures lorsque l'on
installe
sous un nom d'utilisateur et qu'on exécute sous un autre nom.

Note : ce serait un comble que cela ne marche pas !

Si tu veux tester l'installation :
http://www.accompagnement-info.fr/
option de menu Télécharger une démo.

Cordialement.

"Patrice Henrio" a écrit :

Les programmes VB6 compilés sous XP et qui fonctionnent sous 86SE à XP
fonctionnent-ils toujours en Vista ?

Merci du retour d'expérience.














Patrick Philippot
Le #15411591
Patrice Henrio wrote:
Normalement, d'après vos réponses, il ne devrait y avoir aucun
problème (que du VB classique et des API windows standard).



Bonjour,

Les problèmes potentiellement rencontrés par les applications (VB6 ou non)
sous Vista ne sont pas liés au fait qu'elles utilisent ou non des APIs
standard. Les problèmes sont en général liés soit à des mauvaises pratiques
qui étaient acceptées sous les autres OS, soit à de nouvelles contraintes
sécurité de Vista. C'est pour cela que j'ai cité le mécanisme de la
virtualisation.

Par exemple, une application qui écrit dans un répertoire sous Program
Files - mauvaise habitude des applications VB qui stockent et manipulent
leurs .INI dans le même répertoire que l'appli - ou qui écrit / modifie des
entrées de la registry dans HKLM, peut présenter des disfonctionnements à
cause de la virtualisation (qui va rediriger ces écritures sur un espace
privé à l'utilisateur courant et ***non partagé***).

Si des tests doivent être réalisés, il faut s'assurer de la nature du compte
utilisé pour réaliser ces tests: les résultats peuvent être très différents
et les problèmes apparaître ou non selon que l'on utilise un compte admin ou
pas. Une info du style "ça marche" n'est donc que peu informative. Ça marche
avec quel type de compte et dans quel contexte (UAC activé ou non,
virtualisation activée ou non, exe équipé d'un fichier manifeste ou non)?

Cordialement.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Patrice Henrio
Le #15411571
"Patrick Philippot" message de news:
Patrice Henrio wrote:
Normalement, d'après vos réponses, il ne devrait y avoir aucun
problème (que du VB classique et des API windows standard).



Bonjour,

Les problèmes potentiellement rencontrés par les applications (VB6 ou non)
sous Vista ne sont pas liés au fait qu'elles utilisent ou non des APIs
standard. Les problèmes sont en général liés soit à des mauvaises
pratiques qui étaient acceptées sous les autres OS, soit à de nouvelles
contraintes sécurité de Vista. C'est pour cela que j'ai cité le mécanisme
de la virtualisation.

Par exemple, une application qui écrit dans un répertoire sous Program
Files - mauvaise habitude des applications VB qui stockent et manipulent
leurs .INI dans le même répertoire que l'appli - ou qui écrit / modifie
des entrées de la registry dans HKLM, peut présenter des
disfonctionnements à cause de la virtualisation (qui va rediriger ces
écritures sur un espace privé à l'utilisateur courant et ***non
partagé***).

Si des tests doivent être réalisés, il faut s'assurer de la nature du
compte utilisé pour réaliser ces tests: les résultats peuvent être très
différents et les problèmes apparaître ou non selon que l'on utilise un
compte admin ou pas. Une info du style "ça marche" n'est donc que peu
informative. Ça marche avec quel type de compte et dans quel contexte (UAC
activé ou non, virtualisation activée ou non, exe équipé d'un fichier
manifeste ou non)?

Cordialement.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr






J'utilise les fonctions suivantes de gestion de fichier : FindFirstFile,
DeleteFile, CopyFile, GetOpenFileName, SetCurrentDirectory , FindNextFile ,
GetFileAttributes, FindClose, RemoveDirectory, CreateDirectoryEx, MoveFile

ainsi que les contantes et types afférents à cette utilisation
Const FILE_ATTRIBUTE_DIRECTORY = &H10
Private Type FILETIME
Private Type WIN32_FIND_DATA
Private Type OPENFILENAME


Ainsi que les fonctions suivantes de manipulation du registre
RegCloseKey, RegOpenKey, RegQueryValueEx, RegSetValueEx, RegCreateKey

et les constante afférente
Const REG_SZ = 1 ' Unicode nul terminated string
Const HKEY_CURRENT_USER = &H80000001
Const HKEY_LOCAL_MACHINE = &H80000002

Plus la fonction ShellExecute

Et tout cela uniquement pour l'installation et la mise à jour du logiciel.

Pensez-vous qu'il puisse y avoir en effet une incompatibilité de ce fait ?
Patrick Philippot
Le #15411541
Patrice Henrio wrote:
Pensez-vous qu'il puisse y avoir en effet une incompatibilité de ce
fait ?



Encore une fois, ce ne sont pas les APIs elles-mêmes qui posent problème
(tout est compatible sous Vista), c'est ce que l'on en fait. Les fonctions
d'écriture dans la registry n'ont pas changé. Mais si on écrit dans HKLM,
que la virtualisation est active et que l'on est en train d'exécuter sous
un compte non admin, alors oui, il peut y avoir un problème car les données
écrites ne vont pas là où l'on pense qu'elles vont.

Il n'y a qu'un seul moyen de régler le problème:

1. Se renseigner de manière approfondie sur l'UAC et la virtualisation sous
Vista.
2. Tester l'application (et/ou l'installation) sous Vista.
3. Corriger s'il y a lieu les déviances de l'application par rapport aux
règles de sécurité Vista.
4. Éventuellement créer un manifeste pour le programme d'installation et/ou
l'application.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Aski
Le #15411501
Hello Patrick Philippot,

Tu as savamment écrit :

Patrice Henrio wrote:
Pensez-vous qu'il puisse y avoir en effet une incompatibilité de ce
fait ?



Encore une fois, ce ne sont pas les APIs elles-mêmes qui posent
problème (tout est compatible sous Vista), c'est ce que l'on en fait.
Les fonctions d'écriture dans la registry n'ont pas changé. Mais si
on écrit dans HKLM, que la virtualisation est active et que l'on est
en train d'exécuter sous un compte non admin, alors oui, il peut y
avoir un problème car les données écrites ne vont pas là où l'on
pense qu'elles vont.
Il n'y a qu'un seul moyen de régler le problème:

1. Se renseigner de manière approfondie sur l'UAC et la
virtualisation sous Vista.
2. Tester l'application (et/ou l'installation) sous Vista.
3. Corriger s'il y a lieu les déviances de l'application par rapport
aux règles de sécurité Vista.
4. Éventuellement créer un manifeste pour le programme d'installation
et/ou l'application.



On a bien compris, mais cela devient ardu de programmer :
- la première règle concernant l'incursion dans le dossier Programme est
logique et facile à mettre en oeuvre
- il paraît difficile de ne pas être amené à écrire dans le registre
- il faudrait donc créer des fichiers App.exe.manifest et donc avoir une
certaine formation sur le sujet
Il serait sympa de ta part de nous orienter vers des tutos ou des docs
lisibles pour mettre en oeuvre ces dernières (manifest) règles de sécurité.
Patrick Philippot
Le #15411341
Aski wrote:
- il faudrait donc créer des fichiers App.exe.manifest et donc avoir
une certaine formation sur le sujet



Bonjour,

Écrire un fichier manifeste XML pour traiter ce pb est assez rapide:


<assemblyIdentity
version="1.4.5.0"
processorArchitecture="X86"
name="Monappli"
type="win32"
/>
<description>Mon Application</description>
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable"
uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>

Il y a 3 choix pour requestedExecutionLevel:

asInvoker:
L'application s'exécute avec le même jeton d'accès que le parent
highestAvailable:
L'application s'exécute avec les privilèges les plus hauts que l'utilisateur
puisse obtenir
require Administrator:
L'application ne peut-être exécutée que par un administrateur et
requiert que l'application soit démarrée avec le jeton complet d'un
administrateur.

uiAccess ne sera mis à true que dans certains cas exceptionnels.

On donne au fichier XML ci-dessus le nom monappli.exe.manifest et on le pose
à côté (dans le même répertoire que l'exe). C'est tout.

--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
Publicité
Poster une réponse
Anonyme