首页 > 系统相关 >c#使用ShellExecute

c#使用ShellExecute

时间:2022-12-06 16:00:59浏览次数:35  
标签:c# StringBuilder ShellExecute 指定 int static 使用 new

[DllImport("kernel32.dll")]
public static extern int WinExec(string exeName, int operType);

不推荐使用以上代码。

ShellExecute
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。

 

  /// <summary>
        /// ShellExecute
        /// </summary>
        /// <param name="hwnd">指定父窗口句柄:ntPtr.Zero</param>
        /// <param name="lpszOp">指定要进行的操作:Open</param>
        /// <param name="lpszFile">指定要打开的文件名|路径</param>
        /// <param name="lpszParams">指定命令行参数: 0 | ""</param>
        /// <param name="lpszDir">用于指定默认目录:0 | ""</param>
        /// <param name="FsShowCmd">显示模式: 0:隐藏 1~11</param>
        /// <returns></returns>
        [DllImport("shell32.dll")]
        private static extern int ShellExecute(IntPtr hwnd, StringBuilder lpszOp, StringBuilder lpszFile, StringBuilder lpszParams, StringBuilder lpszDir, int FsShowCmd);


        /// <summary>
        /// 打开程序/文件夹
        /// </summary>
        /// <param name="path">路径</param>
        /// <param name="FsShow">显示模式 默认1</param>
        public static void OpenFile(string path, int FsShow = 1)
        {
            ShellExecute(IntPtr.Zero, new StringBuilder("Open"), new StringBuilder(@path), new StringBuilder(""), new StringBuilder(""), FsShow);
        }

 

标签:c#,StringBuilder,ShellExecute,指定,int,static,使用,new
From: https://www.cnblogs.com/roak/p/16955559.html

相关文章

  • oracle分析函数大全
    Oracle分析函数(一) (一)分析函数语法function_name(<argument>,<argument>...)over(<partitionbyclause><orderbyclause><windowing_clause>);function_name......
  • vue2 动态组件19 keep-alive components component exclude include
    <template><divclass="app-container"><h1>App根组件</h1><hr/><button@click="comName='Left'">展示Left</button><button@click="comN......
  • c#中实现Word、Excel、Pdf预览及音频和视频播放
    如果你做的系统和OA有关的,那肯定需要一个功能,就是附件预览。附件可能是text文本文件、image图片文件、Office文件、音频或视频文件等等。如果都能在程序里预览,绝对是系统的......
  • 浅玩 ChatGPT
    最近OpenAI推出了一个新的项目叫ChatGPT。这个项目目前是免费的,不消耗任何积分,但是需要一个OpenAI的账号才能使用。网址这几天尝试了一下,感觉非常厉害,于是记录一下一......
  • 查询oracle用户下所有表
    1.查看所有用户:select*fromdba_users;select*fromall_users;select*fromuser_users;2.查看用户或角色系统权限(直接赋值给用户或角色的系统权限):select*fr......
  • 机器学习领域中假设检验的使用
    前文已经讨论了关于置信区间的问题,具体见:机器学习领域中置信区间的使用 本文讨论假设检验的相关问题。 基本概念:样本(一般指样本集合):一次从总体抽样中获得的样本集......
  • VS 2017 调试窗口显示“ C#编译器内部错误”
    调试时,我尝试评估简单的表达式,例如inta=2;在即时窗口中。一个错误C#编译器中的内部错误解决方式:调试-》选项-》常规-》使用托管兼容模式(勾选)  ......
  • IDEA 中 git Merge Select into Current 和 Pull into Current using merge有什么区别
     今天同事更代码,问我个问题蒙住了,问这俩有啥区别?平时没注意,突然有点答不上来,感觉确实翻译过来是一样的,没区别。  先说结论,MergeSelectintoCurrent  是将本地......
  • 在Java中调用系统 Windows Shell或者Linux Shell命令行的使用
    Jdk8中的Runtime类以及Process类结合起来可用于调用系统的命令行,具体使用参考JDK8手册Jdk17版本中这两个类的使用有一定的改变,用起来会更加方便,有需要可以参考JDK17手册......
  • Spring Cloud - Ribbon
    Ribbon相关接口:参考:org.springframework.cloud.netflix.ribbon.RibbonClientConfigurationIClientConfig:Ribbon的客户端配置,默认采用DefaultClientConfigImpl实现。IR......