2010-04-29 5 views
0

Je courais deux processus, processus A est ouverte par le procédé B en utilisant l'exemple suivant:Comment trouver le répertoire de travail qui fonctionne entre différents ordinateurs. - C

createProcessHandle = CreateProcess(
TEXT("C:\\Users\Jamie\\Documents\\Application\\Debug\\ProcessA.exe"), 
        TEXT(""), 
        NULL, 
        NULL, 
        FALSE, 
        0, 
        NULL, 
        NULL, 
        &startupinfo, 
        &process_information 
        ); 

Comme vous pouvez le voir le processus est tributaire de la voie qui lui est donné, le problème que j'ai que si je change l'emplacement de mon ProcessA.exe (comme une sauvegarde/copie) c'est un processus fastidieux pour continuer à recoder le chemin. Je veux être en mesure de le faire fonctionner, peu importe où il se trouve sans avoir à recoder le chemin manuellement.

Quelqu'un peut-il suggérer une solution à cela?

Edit: Je n'ai pas accès à l'environnement variable path

Répondre

2

Il existe essentiellement deux options.

  1. Utilisez un chemin relatif.
  2. Placez le répertoire dans votre variable d'environnement PATH. Dans ce cas, utilisez lpCommandLine, pas lpApplicationName.
+0

Malheureusement, je ne peux pas faire l'option 2, pouvez-vous m'expliquer l'option 1? –

+1

Voir http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx. Fondamentalement, si ProcessA et ProcessB étaient dans le même répertoire, vous pourriez simplement mettre ProcessA.exe. Si ProcessA se trouvait dans un sous-répertoire appelé subdir, vous pourriez mettre subidir/ProcessA.exe –

+0

Excellent, merci! –

Questions connexes