C#: 获取执行程序所在路径和启动资源管理器

一、 获取执行程序所在路径

1.获取和设置当前目录的完全限定路径。

string str = System.Environment.CurrentDirectory;

Result: C:\xxx\xxx

2.获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。

string str = System.Windows.Forms.Application.StartupPath;

Result: C:\xxx\xxx

3.获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名。

string str = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;

Result: C:\xxx\xxx\xxx.exe

4.获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。

string str = System.AppDomain.CurrentDomain.BaseDirectory;

Result: C:\xxx\xxx\

5.获取应用程序的当前工作目录。

string str = System.IO.Directory.GetCurrentDirectory();

Result: C:\xxx\xxx

6.获取和设置包含该应用程序的目录的名称。

string str = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

Result: C:\xxx\xxx\

7.获取当前进程的完整路径,包含文件名。

string str = this.GetType().Assembly.Location;

Result: C:\xxx\xxx\xxx.exe

8.获取启动了应用程序的可执行文件的路径,包括可执行文件的名称。string str = System.Windows.Forms.Application.ExecutablePath;

Result: C:\xxx\xxx\xxx.exe

此外,更多见的通过XML文件配置具体的路径来达到合理的规划配置文件的具体存放位置,如WEB中的配置文件中的路径。

二、启动资源管理器:

System.Diagnostics.Process.Start("explorer.exe", GlobalInfos.ClassroomRecordPath);

1.直接启动

ProcessStartInfo info = new ProcessStartInfo();
       info.FileName = Path.Combine(Environment.GetEnvironmentVariable("windir"), "explorer.exe");
       Process.Start(info).WaitForExit(); 

 2.类似1

ProcessStartInfo info = new ProcessStartInfo();
info.CreateNoWindow = true;
info.UseShellExecute = true;
info.WindowStyle = ProcessWindowStyle.Hidden;
info.FileName = Path.Combine(Environment.GetEnvironmentVariable("windir"), "explorer.exe");
Process.Start(info); 

 3.shell 外部方法

private void button1_Click(object sender, EventArgs e)
     {
         ShellExecute(IntPtr.Zero, null, "explorer.exe", null, null, ShowCommands.SW_SHOW);
     }

     public enum ShowCommands : int

     {
         SW_HIDE = 0,
         SW_SHOWNORMAL = 1,
         SW_NORMAL = 1,
         SW_SHOWMINIMIZED = 2,
         SW_SHOWMAXIMIZED = 3,
         SW_MAXIMIZE = 3,
         SW_SHOWNOACTIVATE = 4,
         SW_SHOW = 5,
         SW_MINIMIZE = 6,
         SW_SHOWMINNOACTIVE = 7,
         SW_SHOWNA = 8,
         SW_RESTORE = 9,
         SW_SHOWDEFAULT = 10,
         SW_FORCEMINIMIZE = 11,
         SW_MAX = 11

     }

     [DllImport("shell32.dll")]
     static extern IntPtr ShellExecute(
         IntPtr hwnd,
         string lpOperation,
         string lpFile,
         string lpParameters,
         string lpDirectory,
         ShowCommands nShowCmd); 

 4.shell窗口常规

Process.Start(Path.Combine(Environment.GetEnvironmentVariable("windir"), "explorer.exe"));
         ShellWindows  win= new SHDocVw.ShellWindows(); 

 5.cmd命令执行explorer.exe

System.Diagnostics.Process process = new System.Diagnostics.Process();
           System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
           startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
           startInfo.FileName = "cmd.exe";
           process.StartInfo = startInfo;
           process.StartInfo.RedirectStandardInput = true;
           process.StartInfo.RedirectStandardOutput = true;
           process.StartInfo.UseShellExecute = false;
           process.Start();
           process.StandardInput.WriteLine(Environment.GetEnvironmentVariable("windir")+"\\explorer.exe");
           process.StandardInput.Flush();
           process.StandardInput.Close();
           process.WaitForExit(); 

时间: 2024-10-13 20:10:52

C#: 获取执行程序所在路径和启动资源管理器的相关文章

delphi根据进程PID获取程序所在路径的函数(用OpenProcess取得句柄,用GetModuleFileNameEx取得程序名)

uses psapi; {根据进程PID获取程序所在路径的函数}function GetProcessExePath(PID: Cardinal): string;varpHandle: THandle;buf: array[0..MAX_PATH] of Char;begin{获取进程句柄}pHandle := OpenProcess(PROCESS_QUERY_INFORMATION or PROCESS_VM_READ, False, PID);{获取进程路径}GetModuleFileN

查找进程所在路径和启动命令

ps -def 或者pid可以查看到进程id和启动命令的相对路径,要想查看详细的,请查找目录 /proc/${pid} 比如: [email protected]:~# root root 0 Aug 6 23:52 cwd -> /home/benny/logserver -r-------- 1 root root 0 Aug 6 23:52 environ lrwxrwxrwx 1 root root 0 Aug 6 23:52 exe -> /home/benny/logserver/

批处理文件中获取当前所在路径的几种方法

原文:批处理文件中获取当前所在路径的几种方法 @echo off setlocal EnableDelayedExpansion echo 当前正在运行的批处理文件所在路径:!cd! pause @echo off echo 当前目录是:%cd% pause @echo off :: set "abc=%cd%" echo 当前正在运行的批处理文件所在路径:%~dp0 pause @echo off echo 当前的盘符及路径:%~dp0 echo 当前的盘符及路径的短文件名格式:%~

Qt 程序获取程序所在路径、用户目录路径、临时文件夹等特殊路径的方法

Qt 程序获取程序所在路径.用户目录路径.临时文件夹等特殊路径的方法 经常我们的程序中需要访问一些特殊的路径,比如程序所在的路径.用户目录路径.临时文件夹等.在 Qt 中实现这几个功能所用的方法虽然都不难,但是各不相同,每次用到时还要现去查,很不方便.因此就写了这篇博客,把这几种需求的实现方式总结了一下.算是个备忘录吧. 程序所在路径 获取程序所在路径,QCoreApplication 类里就实现了相关的功能: QString QCoreApplication::applicationDirPa

一点一点学写Makefile(5)-获取文件所在路径

我们在开发一套代码时,应该保证工程放到任何一个目录中均可以编译成功,但是有时候链接库的时候会造成编译错误,本次就会告诉大家如何动态的获得工程所在的绝对路径 代码下载目录 选择Makefile-5 [sql] view plain copy //makefile CROSS = CC = $(CROSS)gcc CXX = $(CROSS)g++ DEBUG = CFLAGS = $(DEBUG) -Wall -c MV = mv -f RM = rm -rf LN = ln -sf TOP_PA

python定时器用法 + 获取脚本所在绝对路径 + 定义日志格式 + shell将脚本直接启动到后

python定时器用法 + 获取脚本所在绝对路径 + 定义日志格式 的测试代码 如果用python写好一个有定时器的脚本后,如果脚本里还读了配置文件,那么配置文件路径如果写死的话,有一天要换了存放目录的话,需要修改脚本的配置文件路径,而且每次都要到脚本所在路径用 nohup 启动到后台很麻烦.用 os.path.split(os.path.realpath(sys.argv[0]))[0] 来获取文件所在的绝对路径,配置文件同样扔到和它同级,这样就可以在任意地方启动,一劳永逸~~~ 此用法站在运

Oracle资源管理器(二)-- 创建和使用数据库资源计划

(参考 http://blog.csdn.net/mrluoe/article/details/7969436 -- 整理并实践通过) 第1步,创建3个用户 SQL> create user srcb identified by srcb; User created. SQL> create user kso identified by kso; User created. SQL> create user hr identified by hr; User created SQL>

C#获取当前应用程序所在路径及环境变量

C#获取当前应用程序所在路径及环境变量 一.获取当前文件的路径 string str1=Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名. string str2=Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径.(备注:按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”).如果该进程

Atitit. 软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动、停止、重启

Atitit.   软件GUI按钮与仪表盘--web服务器区--获取apache配置文件路径 linux and apache的启动.停止.重启 可以通过"netstat -anp" 来查看哪些端口被打开.定位到需要的apache...俄要的是80端口映射的apache Ps -aux查看进程命令行参数...三,字有个httpd,没看见参数....查询myusql,是能看见参数了.... 查看linux版本,cenos....查询httpd.conf文件位置... /etc/httpd