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.
    Siehe CreateProcess
    https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx

    ps:
    Du kannst da "die andere Software" einfach mal bei dir mit system32 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 mit CD=system32 läuft.


Anmelden zum Antworten