What you want to do is change the working directory of the calling program, yes?
Yes, this is what I would like to do.
I dunno if this is possible to do in any clean way.
I fear it is not

, at least not in a clean way...
Thing is, Current Working Directory is managed per-thread, not per-process. So the solution hack I'm thinking of would require finding your parent process (requires undocumented calls, iirc)
I tried something in that way. It is very very very slow

string pName = Process.GetCurrentProcess().ProcessName.ToString();
Process[] pList = Process.GetProcessesByName(pName);
// Getting the Process ID
PerformanceCounter PID
= new PerformanceCounter
("Process",
"ID Process", pName
);
// Getting the Parent Process ID
PerformanceCounter PPID
= new PerformanceCounter
("Process",
"Creating Process ID", pName
);
// Getting the Precess
Process p = Process.GetProcessById(int.Parse(PPID.NextValue().ToString()));
//trying to change the Dir... - which results in a Crash...
p.StandardInput.WriteLine("CD {0}",path);
A less hackish method would probably be running your tool from a batch file, and having the batch file CHDIR to the new folder.
This is a really good Idea and would be perfect if the Directory after finishing would be always the same (it is not), but how can I redirect only the last program Output to the Batchfile instead of all Output. The tool needs some (interactive) Userinput, so I can't capture all of the output...?
Thanks for the input f0dder

//edit: Idea:
The Batch have to look like this:
call my_tool.exe
call my_temp.bat
The my_temp.bat have to be created by my_tool.exe on the fly before finishing... I believe this will work...