IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows XP Discussion :

Dossiers accessibles aux programmes lancés par le registre au démarrage


Sujet :

Windows XP

  1. #1
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut Dossiers accessibles aux programmes lancés par le registre au démarrage
    Bonjour à tous,
    j'ai écrit un programme de quelque lignes qui fonctionne parfaitement quand il est exécuté "normalement". En revanche, lorsqu'il est exécuté automatiquement au démarrage Windows (inscription au registre dans HK_LM\...\Run) il se comporte étrangement.

    Après quelques tests, j'ai compris que cela était du au fait qu'il était exécuté comme s'il se trouvait dans "C:\WINDOWS\SysWOW64" (je suis sous XP 64) et qu'il était impossible de modifier ce répertoire courant (!).

    J'ai pourtant absolument besoin qu'il soit lancé dans le répertoire qui contient le fichier exe ... comment faire ?

    Merci pour votre aide.
    -- Yankel Scialom

  2. #2
    Membre expérimenté
    Avatar de Senji
    Inscrit en
    Juillet 2008
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 144
    Points : 1 391
    Points
    1 391
    Par défaut
    Salut,

    il faut savoir que dans les versions x64 de Windows, un processus qui démarre à partir d'un exécutable 64 bits tel que Explorer.exe peut uniquement charger des DLL Win64, tandis qu'un processus démarré à partir d'un exécutable 32 bits peut uniquement charger des DLL Win32. Lorsqu'un processus Win32 fait un appel en mode noyau, par exemple pour lire un fichier, le code WOW64 intercepte l'appel silencieusement et appelle le code x64 équivalent correct à sa place.
    L'activité des fichiers à partir d'un processus Win32 qui devrait normalement accéder au répertoire System32 accède en fait à un répertoire nommé SysWow64. En coulisses, WOW64 change ces demandes afin qu'elles pointent vers le répertoire SysWow64. Un système Win64 comporte effectivement deux répertoires \Windows\System32 : l'un avec les fichiers binaires x64, l'autre avec les équivalents Win32.
    Autrement dit, même si tu penses travailler dans le répertoire \Windows\System32, WOW64 redirigeait les appels vers le répertoire SysWow64. En fait, si tu souhaites réellement accéder au répertoire 32 bits \Windows\System32 à partir d'une application x64, l'API GetSystemWow64Directory te donnes le chemin correct. lire la documentation MSDN® pour tout comprendre.

    Source : MSDN

    bye
    Merci de lire les réponses jusqu'à compréhension!!!
    RTFM

    Vive les bananes
    ______________

  3. #3
    Membre émérite
    Avatar de prgasp77
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Juin 2004
    Messages
    1 306
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 306
    Points : 2 466
    Points
    2 466
    Par défaut
    Merci bien,
    mais à vrai dire, je ne cherche pas à ouvrir des fichiers dans sys32 mais dans le répertoire de l'exécutable (pour info dans program files). Et toute tentative échoue, que ce soit en utilisant le nom complet du fichier (adresse absolue) ou en tentant de modifier le répertoire de travail :/
    -- Yankel Scialom

Discussions similaires

  1. Code retour d'un programme Java lancé par bat/.sh
    Par ghiwani80 dans le forum Général Java
    Réponses: 3
    Dernier message: 22/10/2012, 09h17
  2. Réponses: 0
    Dernier message: 01/05/2010, 06h56
  3. Réponses: 8
    Dernier message: 11/02/2010, 19h45
  4. tuer un programme lancé par un exec
    Par hannibal.76 dans le forum Langage
    Réponses: 11
    Dernier message: 27/04/2009, 20h59
  5. Handle (ID) d'un processus lancé par access
    Par fredoh dans le forum VBA Access
    Réponses: 4
    Dernier message: 30/05/2007, 08h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo