Process

IT技术2年前 (2022)更新 投稿用户
0

运用Process.Start(newProcessStartInfo(url))来翻开某一网址的时分,常常会被360提示相似这样的信息:

“要挟:修正此注册表项将更改IE衔接设置。少数软件会修正此项,假如随意修正,可能形成无法上网。假如您不认识此程序,请阻止。”
这是由于360会判别启动阅读器的父窗口,假如父窗口是系统或受信程序则经过,反之,若是未知的程序则提示要挟。
理解了这个,我们就能够想到用api函数ShellExecute,经过指定父窗口参数为null(0)来防止360提示。如下:

C#


复制代码
[DllImport(“shell32.dll”)]
publicexternstaticIntPtrShellExecute(inthwnd,stringlpOperation,stringlpFile,stringlpParameters,stringlpDirectory,intnShowCmd);
publicenumShowWindowCommands: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_MAX=10
}
ShellExecute(0,@”open”,@”http://www.baidu.com”,null,null,(int)ShowWindowCommands.SW_NORMAL);
复制代码
附上ShellExecute的一些参考信息:
1.函数功用:
你能够给它任何文件的名字,它都能辨认出来并翻开它。
2.函数原型:
HINSTANCEShellExecute(
HWNDhwnd,
LPCTSTRlpOperation,
LPCTSTRlpFile,
LPCTSTRlpParameters,
LPCTSTRlpDirectory,
INTnShowCmd
);
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,则表示呈现错误。
4.返回值
执行胜利会返回应用程序句柄
返回的HINSTANCE能够将它转换为一个整数(%d),并比拟它的值大于还是小于32或比拟它的错误代码
返回值大于32表示执行胜利
返回值小于32表示执行错误
msdn:Ifthefunctionsucceeds,itreturnsavaluegreaterthan32.Ifthefunctionfails,itreturnsanerrorvaluethatindicatesthecauseofthefailure.ThereturnvalueiscastasanHINSTANCEforbackwardcompatibilitywith16-bitWindowsapplications.ItisnotatrueHINSTANCE,however.Itcanbecastonlytoanintandcomparedtoeither32orthefollowingerrorcodesbelow.
返回值可能的错误有:=0{内存缺乏}
ERROR_FILE_NOT_FOUND=2;{文件名错误}
ERROR_PATH_NOT_FOUND=3;{途径名错误}
ERROR_BAD_FORMAT=11;{EXE文件无效}
SE_ERR_SHARE=26;{发作共享错误}
SE_ERR_ASSOCINCOMPLETE=27;{文件名不完整或无效}
SE_ERR_DDETIMEOUT=28;{超时}
SE_ERR_DDEFAIL=29;{DDE事务失败}
SE_ERR_DDEBUSY=30;{正在处置其他DDE事务而不能完成该DDE事务}
SE_ERR_NOASSOC=31;{没有相关联的应用程序}
5.运用办法:
例如:
ShellExecute(NULL,”open”,”iloveu.bmp”,NULL,NULL,SW_SHOWNORMAL);
用缺省的位图编辑器翻开一个叫iloveu.bmp的位图文件,这个缺省的位图编辑器可能是MicrosoftPaint,AdobePhotoshop,或者CorelPhotoPaint。
这个函数能翻开任何文件,以至是桌面和URL快捷方式(.ink或.url)。ShellExecute解析系统注册表HKEY_CLASSES_ROOT中一切的内容,判别启动那一个执行程序,并且启动一个新的实例或运用DDE将文件名连到一翻开的实例。然后,ShellExecute返回翻开文件的应用的实例句柄。
ShellExecute(NULL,”open”,”http://www.microsoft.com”,NULL,NULL,SW_SHOWNORMAL);
这个代码使你能访问微软的主页。当ShellExecute遇到文件名前面的“http:”时,能够判别出要翻开的文件是Web文件,随之启动InternetExplorer或者NetscapeNavigator或者任何你运用的别的阅读器翻开文件。
ShellExecute还能辨认其它协议,象FTP、GOPHER。以至辨认“mailto”,假如文件名指向“mailto:zxn@hq.cninfo.net”,它启动电子邮件程序并翻开一个待编辑的新邮件,例如:
ShellExecute(NULL,”open”,“mailto:zxn@hq.cninfo.net”,NULL,NULL,SW_SHOWNORMAL);翻开新邮件窗口。
总之,ShellExecute函数就是如此简单地翻开磁盘文件和Internet文件。假如将第二个参数“OPEN”改为“PRINT”或者“EXPLORE”,ShellExecute将能打印文件和翻开文件夹。ShellExecute还有一个扩展函数ShellExecuteEx,所带参数中有一个特殊的构造,功用更强,或者任何你运用的别的阅读器翻开文件。

© 版权声明
好牛新坐标 广告
版权声明:
1、IT大王遵守相关法律法规,由于本站资源全部来源于网络程序/投稿,故资源量太大无法一一准确核实资源侵权的真实性;
2、出于传递信息之目的,故IT大王可能会误刊发损害或影响您的合法权益,请您积极与我们联系处理(所有内容不代表本站观点与立场);
3、因时间、精力有限,我们无法一一核实每一条消息的真实性,但我们会在发布之前尽最大努力来核实这些信息;
4、无论出于何种目的要求本站删除内容,您均需要提供根据国家版权局发布的示范格式
《要求删除或断开链接侵权网络内容的通知》:https://itdw.cn/ziliao/sfgs.pdf,
国家知识产权局《要求删除或断开链接侵权网络内容的通知》填写说明: http://www.ncac.gov.cn/chinacopyright/contents/12227/342400.shtml
未按照国家知识产权局格式通知一律不予处理;请按照此通知格式填写发至本站的邮箱 wl6@163.com

相关文章