shellexecuteex(Shellexecuteex怎么用)
一、ShellExecuteEx 如何修改窗口标题
1.函数功能:
你可以给它任何文件的名字,它都能识别出来并打开它。
2.函数原型:
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);
3.参数说明:
hwnd:
用于指定父窗口句柄。当函数调用过程出现错误时,它将作为Windows消息窗口的父窗口。
lpOperation:
用于指定要进行的操作。
“open”操作表示执行由lpFile参数指定的程序,或打开由lpFile参数指定的文件或文件夹;
“print”操作表示打印由lpFile参数指定的文件;
“explore”操作表示浏览由lpFile参数指定的文件夹。
当参数设为NULL时,表示执行默认操作“open”。
lpFile:
用于指定要打开的文件名、要执行的程序文件名或要浏览的文件夹名。
lpParameters:
若lpFile参数是一个可执行程序,则此参数指定命令行参数,否则此参数应为NULL.
lpDirectory:
用于指定默认目录.
nShowCmd:
若lpFile参数是一个可执行程序,则此参数指定程序窗口的初始显示方式,否则此参数应设置为0。
这个参数常用的常数:
SW_HIDE隐藏窗口,活动状态给令一个窗口
SW_MINIMIZE最小化窗口,活动状态给令一个窗口
SW_RESTORE用原来的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOW用当前的大小和位置显示一个窗口,同时令其进入活动状态
SW_SHOWMAXIMIZED最大化窗口,并将其激活
SW_SHOWMINIMIZED最小化窗口,并将其激活
SW_SHOWMINNOACTIVE最小化一个窗口,同时不改变活动窗口
SW_SHOWNA用当前的大小和位置显示一个窗口,不改变活动窗口
SW_SHOWNOACTIVATE用最近的大小和位置显示一个窗口,同时不改变活动窗口
SW_SHOWNORMAL与SW_RESTORE相同
若ShellExecute函数调用成功,则返回值为被执行程序的实例句柄。若返回值小于32,则表示出现错误。
SW_HIDE隐藏窗口,活动状态给另一个窗口
SW_MINI
二、ShellExecuteEx 失败 代码 2 系统找不到指定文件
右键点安装程序。选择以管理员身份运行。如果还不行就关闭杀毒软件,
继续安装游戏,然后将游戏的主程序设为可信任,再开杀毒软件进行游戏,如果
不会设置玩游戏的时候关闭杀毒软件,如果一旦误杀,就请关闭防毒软件重新安装。
安装程序在下载的时候缺损了某个文件夹,得重新下载安装文件,卸载后重装即可,还有个极小的可能性是你的磁盘缺陷,那就要换个盘符安装。比如你现在安装在E盘则改为D盘。
使用系统自带磁盘纠错功能检查硬盘错误的步骤:
通过单击「开始」按钮,然后单击“计算机”,打开“计算机”。
右键单击要检查的驱动器,然后单击“属性”。
单击“工具”选项卡,然后在“查错”下,单击“立即检查”。如果系统提示您输入管理员密码或进行确认,请键入该密码或提供确认。
若要自动修复通过扫描所检测到的文件和文件夹问题,请选择“自动修复文件系统错误”。否则,磁盘检查将报告问题,但不进行修复。
若要执行彻底的检查,请选择“扫描并尝试恢复坏扇区”。该扫描操作将尝试查找并修复硬盘自身的物理错误,可能需要较长时间才能完成。
若要既检查文件错误又检查物理错误,请选择“自动修复文件系统错误”和“扫描并尝试恢复坏扇区”。
三、c#如何调用dll中的shellexecuteex函数来打开exe文件
首先那个shellexecuteex修饰符应该是public的
这是调用:
//加载程序集(dll文件地址),使用Assembly类
Assemblyassembly=Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory+"Bin/App_Code.dll");
//获取类型,参数(名称空间+类)
Typetype=assembly.GetType("NiHao.Test");
//创建该对象的实例,object类型,参数(名称空间+类)
objectinstance=assembly.CreateInstance("NiHao.Test");
//设置SayHello方法中的参数类型,Type[]类型;如有多个参数可以追加多个
Type[]params_type=newType[1];
params_type[0]=Type.GetType("System.String");
//设置SayHello方法中的参数值;如有多个参数可以追加多个
Object[]params_obj=newObject[1];
params_obj[0]="jiaopeng";
//执行SayHello方法
objectvalue=type.GetMethod("SayHello",params_type).Invoke(instance,params_obj);
这是dll中的类:
namespaceNiHao
{
publicclassTest
{
publicstringSayHello(stringstr)
{
if(string.IsNullOrEmpty(str))
return"你没有传参数进来";
else
returnstr+"你好";
}
}
}