Salut tous le monde,
Le problème:
Les applications sont installées sur un disque réseau par exemple H:\
sur les bureaux des différents Desktop est installé un Short Cut (Icon)
Quand on lance l'application à partir du Short Cut, elle doit automatiquement configurer
sa base de registre locale et enregistrer dans cette base le Path Source de l'application.
Par exemple la source est H:\Easywindows\Bin\[ICM].EXE
J'ai fait le module suivant:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 : $LEFT-CLICK S( --- Flag ) PAD 255 ERASE S( --- ) \ On purge le PAD S" [ICM].EXE" AX$ $! S( --- ) \ Nom de l'application Racine dans la chaine AX$ AX$ DROP GetModuleHandleA S( --- mHdl ) \ On passe ce nom à la fonction GetModuleHandle ?NIL SysAbort" $LEFT-CLICK MODULE_HANDEL_ERROR" S( mHdl --- mHdl | Error ) \ On teste si erreur, si oui on sort PAD 255 GetModuleFileName S( mHdl --- n ) \ On passe le Handel obtenu à la fonction GetModuleFileName PAD SWAP ROOT$ $! S( --- ) \ Qui retourne le Path. On récupère ce Path dans la Chaine ROOT$ ( ROOT$ Racine )$RegKey.Write S( --- ) \ On enregistre le contenu de ROOT$ sous l'étiquette Racine dans la base de Registre locale LPARAM LOWORD fg_xvb XMPOS ! LPARAM HIWORD fg_yvb YMPOS ! RacineMenu.Get hAPP WM_CLOSE 0 0 SendMessage DROP ;
Au lieu de retourner le Path de la source, ça me retourne le Path du Short Cut
Ce qui est souhaité H:\Easywindows\Bin\[ICM].EXE
Ce qui est obtenu C:\Users\Acer\Desktop\[ICM].EXE
LA QUESTION:
Y a t'il des fonctions autres que GetModuleHandleA et GetModuleFileNameA pour obtenir le path de la source?
Je pense qu'il doit exister quelque chose puisque Windows installe correctement les applications en mode local alors que les
sources sont sur le réseau.
Merci pour vos réponses
Cordialement
Ludwig
Partager