C#调用exe工作目录

C#程序中调用exe发现一个现象。

分别是A.exe一个路径,B.exe和C.exe在另一个相同路径。

A.exe调用B.exe,然后B.exe调用C.exe就出现了C.exe调用不正常的现象。

原来A调用B,B的工作目录发生了改变,虽然B,C在同一个目录,但是C在一些初始化配置上出现错误。

解决办法就是在A调用B的时候加上一句话:

System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.WorkingDirectory = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
p.StartInfo.FileName = AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "B.exe";
p.Start();

B的工作目录还是自己所在路径,则B调用C不会出现问题。

时间: 2024-11-10 17:44:19

C#调用exe工作目录的相关文章

取工程当前工作目录 及 取exe目录

(1)取当前工作目录: 相关函数:get_current_dir_name, getwd, chdir 头文件:#include 定义函数:char * getcwd(char * buf, size_t size); 函数说明:getcwd()会将当前的工作目录绝对路径复制到参数buf 所指的内存空间,参数size 为buf 的空间大小. 注: 1.在调用此函数时,buf 所指的内存空间要足够大.若工作目录绝对路径的字符串长度超过参数size 大小,则返回NULL,errno 的值则为ERAN

ShellExecuteA加载exe文件指定工作目录找不到文件的问题

使用ShellExecuteA调用exe文件时,指定工作目录需要注意 函数原型为: HINSTANCE ShellExecuteA( HWND hwnd, LPCTSTR lpOperation, LPCTSTR lpFile, LPCTSTR lpParameters, LPCTSTR lpDirectory, INT nShowCmd ); MSDN中对lpDirectory是这样说明的: [in] A pointer to a null-terminated string that spe

设置当前exe执行文件为进程工作目录

设置当前exe执行文件为进程工作目录 两种办法: 1,   API void _splitpath( const char *path, char *drive, char *dir, char *fname, char *ext ); 这个函数将文件全名(带路径)分解成路径名,文件名,后缀名. 2, API BOOL PathRemoveFileSpec(           LPTSTR pszPath ); 使用例子: #include <windows.h> #include <

VC中调用exe

目前知道三种方式:WinExec,ShellExecute ,CreateProcess,别人已经总结的很好了<vc中调用其他应用程序的方法(函数) winexec,shellexecute ,createprocess>,我全文转载一下,另外后面加点自己的总结(黑体部分,除了标题). 三个SDK函数: WinExec,ShellExecute ,CreateProcess可以实现调用其他程序的要求,其中以WinExec最为简单,ShellExecute比WinExec灵活一些,CreateP

.NET 获取项目的工作目录和执行目录

1.获取和设置当前工作目录 a)          System.IO.Directory.GetCurrentDirectory() 说明:获取应用程序的当前工作目录的完全限定路径.该方法是对Win32 API的GetCurrentDirectory函数的一个封装. 例如:'"C:\Documents and Settings\Administrator\My Documents" b)         System.Environment.CurrentDirectory 说明:获

使用java代码调用exe程序 (包括参数传递)

使用Java代码调用exe 1使用场景 我现在使用eclipse+tomcat的架构建立了web server, 在这个web project中我需要建立一个定时任务,在定时任务中执行本地的一个C#工程生成的exe. 2Java代码 public class MyTask extends TimerTask { public void run() { System.out.println("call at " + (new Date())); // TODO æ­¤å¤?æ·»å? å

.NET中的工作目录一览!

定义:       当前工作目录——进行某项操作的目的目录,会随着OpenFileDialog.SaveFileDialog等对象所确定的目录而改变. 当前执行目录——该进程从中启动的目录,即文件自身所在目录.工作目录与执行目录可以不同,例如一个人住在北京,但他的工作地点不一定在北京,可能在天津. 方法: 1.获取和设置当前工作目录 a)          System.IO.Directory.GetCurrentDirectory() 说明:获取应用程序的当前工作目录的完全限定路径.该方法是

Go语言的GOPATH与工作目录详解

这篇文章主要介绍了Go语言的GOPATH与工作目录详解,本文详细讲解了GOPATH设置.应用目录结构.编译应用等内容,需要的朋友可以参考下 GOPATH设置 go 命令依赖一个重要的环境变量:$GOPATH1 (注:这个不是Go安装目录.下面以笔者的工作目录为说明,请替换自己机器上的工作目录.) 在类似 Unix 环境大概这样设置: 复制代码 代码如下: export GOPATH=/home/apple/mygo 为了方便,应该把新建以上文件夹,并且把以上一行加入到 .bashrc 或者 .z

升级Windows10,安装程序无法正常启动&无法初始化工作目录

这里主要针对使用微软官方升级助手升级Windows10,遇到安装程序无法正常启动&安装程序无法初始化工作目录错误提示的解答 一.通过微软http://www.microsoft.com/zh-cn/software-download/windows10下载适用于个人操作系统的升级助手 二.保持网络通畅,下载完成后以管理员身份运行,正常情况下按照向导即可完成升级. ===================================================================