current working directory problem
-
hallo leute
hab ein problem mit einem programm das auf einem server von einer anderen software aufgerufen wird.
OS ist ein windows server 2012 glaub ich. oberflaeche wie windows 8.
die andere software ist 32bit und meine genau so.
wenn die andere software nun mein programm aufruft, dann hat mein programm als current working directory "C:\\Windows\system32" obwohl es in "C:\directory\my_directory" liegt. woher kommt das ?
mein programm wird ueberigens nicht instaliert sondern nur drauf kopiert. in der anderen software wird der pfad angegeben und dann wird meine software periodisch aufgerufen.
ich konnte das verhalten bei mir auf meinem rechner nicht nach vollziehen.weiß wer was darueber ?
Meep Meep
-
Current Directory wird - sofern nicht anders angegeben - vererbt. Wo das Programm liegt ist dabei egal. (Also der Pfad wo die .exe liegt wird grundsätzlich nie automatisch als Current Directory hergenommen. Also ausser das Programm das CreateProcess aufruft würde genau dieses Verhalten selbst implementieren.)
D.h. wenn "die andere Software" mit Current Directory
system32
läuft, dann erbt der neue Prozess für dein Programm das einfach.
SieheCreateProcess
https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspxps:
Du kannst da "die andere Software" einfach mal bei dir mitsystem32
als Current Directory starten. Damit solltest den Effekt reproduzieren können.Achja, und
system32
ist bei vielen Tools/Services Default wenn man nix anderes angibt. Was erklären könnte warum "der Andere" auf dem Server mitCD=system32
läuft.