zoukankan      html  css  js  c++  java
  • C#: 获取执行程序所在路径和启动资源管理器

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

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

    string str = System.Environment.CurrentDirectory;  //获取的是主程序目录,线程启动的子程序内获取的路径也是主程序的工作目录

    Result: C:xxxxxx

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

    string str = System.Windows.Forms.Application.StartupPath;  //exe 执行目录

    Result: C:xxxxxx

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

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

    Result: C:xxxxxxxxx.exe

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

    string str = System.AppDomain.CurrentDomain.BaseDirectory;

    Result: C:xxxxxx

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

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

    Result: C:xxxxxx

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

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

    Result: C:xxxxxx

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

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

    Result: C:xxxxxxxxx.exe

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

    Result: C:xxxxxxxxx.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(); 
    View Code
  • 相关阅读:
    java.lang.ClassNotFoundException: org.jaxen.JaxenException
    hdu 4882 ZCC Loves Codefires(贪心)
    C++ STL 源代码学习(之deque篇)
    算法导论学习笔记(2)-归并排序
    机器学习方法:回归(一):线性回归Linear regression
    HDU 2028 Lowest Common Multiple Plus
    C++11新特性应用--实现延时求值(std::function和std::bind)
    大数减法
    hive 运行sqlclient异常
    Oracle 12c agent install for windows
  • 原文地址:https://www.cnblogs.com/shenchao/p/5492198.html
Copyright © 2011-2022 走看看