Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >客户首购和产品首购区别是什么?

客户首购和产品首购区别是什么?

提问于 2019-02-19 03:03:30
回答 1关注 0查看 541

回答 2

不知雨

发布于 2017-12-26 06:35:16

我有同样的问题,WebBrowser使用旧版本的IE浏览器,一些谷歌搜索我碰到以下代码,使更改到注册表,使WebBrowser使用最新的IE版本可能:

代码语言:txt
AI代码解释
复制
 public enum BrowserEmulationVersion
代码语言:txt
AI代码解释
复制
    {
代码语言:txt
AI代码解释
复制
        Default = 0,
代码语言:txt
AI代码解释
复制
        Version7 = 7000,
代码语言:txt
AI代码解释
复制
        Version8 = 8000,
代码语言:txt
AI代码解释
复制
        Version8Standards = 8888,
代码语言:txt
AI代码解释
复制
        Version9 = 9000,
代码语言:txt
AI代码解释
复制
        Version9Standards = 9999,
代码语言:txt
AI代码解释
复制
        Version10 = 10000,
代码语言:txt
AI代码解释
复制
        Version10Standards = 10001,
代码语言:txt
AI代码解释
复制
        Version11 = 11000,
代码语言:txt
AI代码解释
复制
        Version11Edge = 11001
代码语言:txt
AI代码解释
复制
    }
代码语言:txt
AI代码解释
复制
    public static class WBEmulato
代码语言:txt
AI代码解释
复制
    {
代码语言:txt
AI代码解释
复制
        private const string InternetExplorerRootKey = @"Software\Microsoft\Internet Explorer";
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
        public static int GetInternetExplorerMajorVersion()
代码语言:txt
AI代码解释
复制
        {
代码语言:txt
AI代码解释
复制
            int result;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            result = 0;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            try
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                RegistryKey key;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                key = Registry.LocalMachine.OpenSubKey(InternetExplorerRootKey);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                if (key != null)
代码语言:txt
AI代码解释
复制
                {
代码语言:txt
AI代码解释
复制
                    object value;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    value = key.GetValue("svcVersion", null) ?? key.GetValue("Version", null);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    if (value != null)
代码语言:txt
AI代码解释
复制
                    {
代码语言:txt
AI代码解释
复制
                        string version;
代码语言:txt
AI代码解释
复制
                        int separator;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                        version = value.ToString();
代码语言:txt
AI代码解释
复制
                        separator = version.IndexOf('.');
代码语言:txt
AI代码解释
复制
                        if (separator != -1)
代码语言:txt
AI代码解释
复制
                        {
代码语言:txt
AI代码解释
复制
                            int.TryParse(version.Substring(0, separator), out result);
代码语言:txt
AI代码解释
复制
                        }
代码语言:txt
AI代码解释
复制
                    }
代码语言:txt
AI代码解释
复制
                }
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (SecurityException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the permissions required to read from the registry key.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (UnauthorizedAccessException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the necessary registry rights.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            return result;
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
        private const string BrowserEmulationKey = InternetExplorerRootKey + @"\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
        public static BrowserEmulationVersion GetBrowserEmulationVersion()
代码语言:txt
AI代码解释
复制
        {
代码语言:txt
AI代码解释
复制
            BrowserEmulationVersion result;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            result = BrowserEmulationVersion.Default;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            try
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                RegistryKey key;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);
代码语言:txt
AI代码解释
复制
                if (key != null)
代码语言:txt
AI代码解释
复制
                {
代码语言:txt
AI代码解释
复制
                    string programName;
代码语言:txt
AI代码解释
复制
                    object value;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
代码语言:txt
AI代码解释
复制
                    value = key.GetValue(programName, null);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    if (value != null)
代码语言:txt
AI代码解释
复制
                    {
代码语言:txt
AI代码解释
复制
                        result = (BrowserEmulationVersion)Convert.ToInt32(value);
代码语言:txt
AI代码解释
复制
                    }
代码语言:txt
AI代码解释
复制
                }
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (SecurityException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the permissions required to read from the registry key.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (UnauthorizedAccessException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the necessary registry rights.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            return result;
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
        public static bool SetBrowserEmulationVersion(BrowserEmulationVersion browserEmulationVersion)
代码语言:txt
AI代码解释
复制
        {
代码语言:txt
AI代码解释
复制
            bool result;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            result = false;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            try
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                RegistryKey key;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                key = Registry.CurrentUser.OpenSubKey(BrowserEmulationKey, true);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                if (key != null)
代码语言:txt
AI代码解释
复制
                {
代码语言:txt
AI代码解释
复制
                    string programName;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    programName = Path.GetFileName(Environment.GetCommandLineArgs()[0]);
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    if (browserEmulationVersion != BrowserEmulationVersion.Default)
代码语言:txt
AI代码解释
复制
                    {
代码语言:txt
AI代码解释
复制
                        // if it's a valid value, update or create the value
代码语言:txt
AI代码解释
复制
                        key.SetValue(programName, (int)browserEmulationVersion, RegistryValueKind.DWord);
代码语言:txt
AI代码解释
复制
                    }
代码语言:txt
AI代码解释
复制
                    else
代码语言:txt
AI代码解释
复制
                    {
代码语言:txt
AI代码解释
复制
                        // otherwise, remove the existing value
代码语言:txt
AI代码解释
复制
                        key.DeleteValue(programName, false);
代码语言:txt
AI代码解释
复制
                    }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
                    result = true;
代码语言:txt
AI代码解释
复制
                }
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (SecurityException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the permissions required to read from the registry key.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            catch (UnauthorizedAccessException)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                // The user does not have the necessary registry rights.
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            return result;
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
        public static bool SetBrowserEmulationVersion()
代码语言:txt
AI代码解释
复制
        {
代码语言:txt
AI代码解释
复制
            int ieVersion;
代码语言:txt
AI代码解释
复制
            BrowserEmulationVersion emulationCode;
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            ieVersion = GetInternetExplorerMajorVersion();
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            if (ieVersion >= 11)
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                emulationCode = BrowserEmulationVersion.Version11;
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
AI代码解释
复制
            else
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                switch (ieVersion)
代码语言:txt
AI代码解释
复制
                {
代码语言:txt
AI代码解释
复制
                    case 10:
代码语言:txt
AI代码解释
复制
                        emulationCode = BrowserEmulationVersion.Version10;
代码语言:txt
AI代码解释
复制
                        break;
代码语言:txt
AI代码解释
复制
                    case 9:
代码语言:txt
AI代码解释
复制
                        emulationCode = BrowserEmulationVersion.Version9;
代码语言:txt
AI代码解释
复制
                        break;
代码语言:txt
AI代码解释
复制
                    case 8:
代码语言:txt
AI代码解释
复制
                        emulationCode = BrowserEmulationVersion.Version8;
代码语言:txt
AI代码解释
复制
                        break;
代码语言:txt
AI代码解释
复制
                    default:
代码语言:txt
AI代码解释
复制
                        emulationCode = BrowserEmulationVersion.Version7;
代码语言:txt
AI代码解释
复制
                        break;
代码语言:txt
AI代码解释
复制
                }
代码语言:txt
AI代码解释
复制
            }
代码语言:txt
复制
代码语言:txt
AI代码解释
复制
            return SetBrowserEmulationVersion(emulationCode);
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
        public static bool IsBrowserEmulationSet()
代码语言:txt
AI代码解释
复制
        {
代码语言:txt
AI代码解释
复制
            return GetBrowserEmulationVersion() != BrowserEmulationVersion.Default;
代码语言:txt
AI代码解释
复制
        }
代码语言:txt
AI代码解释
复制
    } 

您只需要创建一个类并将其放入该代码中,然后在程序启动时运行以下代码:

代码语言:txt
AI代码解释
复制
 if (!WBEmulator.IsBrowserEmulationSet())
代码语言:txt
AI代码解释
复制
            {
代码语言:txt
AI代码解释
复制
                WBEmulator.SetBrowserEmulationVersion();
代码语言:txt
AI代码解释
复制
            }

最爱开车啦

发布于 2017-12-26 06:34:29

用set -e内建:

代码语言:txt
AI代码解释
复制
#!/bin/bash
代码语言:txt
AI代码解释
复制
set -e
代码语言:txt
AI代码解释
复制
# Any subsequent(*) commands which fail will cause the shell script to exit immediately

或者,您可以传递-e命令行:

bash -e my_script.sh

您也可以使用禁用此行为set +e。

注意:

壳确实不退出如果失败的命令是紧跟在所述命令列表的一部分而或直到关键字,以下测试的一部分,如果或elif的保留字,在执行任何命令的一部分&&或|| 列表,除了最后的&&或||之后的命令 ,在管道中的任何命令,但最后,或者如果命令的返回值被反转 !

(从man bash)

和开发者交流更多问题细节吧,去 写回答
相关文章
启动Linux时自动执行Shell脚本
我们假定使用的是 Bash 作为登录及注销的主 Shell。如果你使用的是其他 Shell,那么有些方法可能会无效。如果有其他的疑问,请参考对应的 Shell 文档。
用户7639835
2021/08/30
4.1K0
unix 的 bash shell 脚本
1. test01   test02 1 200    1 100 2 500    2 300 3 200    3 50 4 100    4 150 输出 200 100 100 500 300 200 300 50  150 100 150 -50 awk 减法数组 awk ‘ NR == FNR { a[NR]=$2 } NR != FNR { print a[FNR], $2,(a[FNR]-$2)} ' /root/test* 2. 123abc456 45
bear_fish
2018/09/20
1.7K0
Node 脚本遭遇异常时如何安全退出
一个 Node 相关的项目中,总是少不了跑脚本。跑一个脚本拉取配置、处理一些数据以及定时任务更是家常便饭。
山月
2020/08/28
1.9K0
如何在Bash Shell脚本中使用`exec`命令?
exec 是一个在Bash Shell脚本中使用的命令,它允许您替换当前进程的内容,包括进程ID和文件描述符。使用exec命令可以实现一些有用的功能,例如替换脚本当前的Shell进程、切换到不同的命令解释器、重定向标准输入输出等。本文将详细介绍如何在Bash Shell脚本中使用exec命令,并提供一些常见的用例和示例。
网络技术联盟站
2023/06/08
4.2K0
如何用 10 行 bash shell 脚本监控 Linux?
监控我们的环境对于服务器运维来说至关重要,尤其是在部署新的应用程序时。如今,公司每天都使用开源解决方案来监控系统资源。但是,当出于测试的目的来监控一定时间时,bash 脚本会派上用场。
IT运维技术圈
2022/08/05
3.7K0
如何用 10 行 bash shell 脚本监控 Linux?
SHELL(bash)脚本编程一:变量
本篇开始,介绍shell脚本编程,更确切的说是bash脚本编程(版本:4.2.46(1)-release)。我们从变量开始。
用户5030870
2019/04/11
2.9K0
SHELL(bash)脚本编程二:语法
token 是指被shell看成一个单一单元的字符序列 bash中包含三种基本的token:保留关键字,操作符,单词。 保留关键字是指在shell中有明确含义的词语,通常用来表达程序控制结构。包括:
用户5030870
2019/04/11
1.4K0
SHELL(bash)脚本编程八:技巧
至此,我们介绍了linux系统中常用命令的使用方法,简述了bash程序的使用方法和工作流程。在使用bash编写脚本程序时,熟练掌握这些工具的用法,往往能够达到事半功倍的效果。
用户5030870
2019/04/11
6940
如何在 Bash Shell 脚本中显示对话框
这个教程给出几个如何使用类似zenity和whiptail的工具在Bash Shell 脚本中提供消息/对话框的例子。使用这些工具,你的脚本能够告知用户当前程序运行的状态并能与用户进行交互。这两个工具的不同之处在于显示消息框或者对话框的方式。Zenity用GTK工具包创建图形用户界面,而whiptail则在终端窗口内创建消息框。
哲洛不闹
2018/09/14
3.2K0
如何在 Bash Shell 脚本中显示对话框
Bash 脚本实现每次登录到 Shell 时可以查看 Linux 系统信息
Linux 中有很多可以查看系统信息如处理器信息、生产商名字、序列号等的命令。你可能需要执行多个命令来收集这些信息。同时,记住所有的命令和他们的选项也是有难度。
jwangkun
2021/12/23
3.2K0
SHELL(bash)脚本编程五:内置命令
bash的内置命令和外部命令的使用方法相同,我们已经介绍了一部分内置命令的用法,本文接着介绍另一些常用内置命令的用法。
用户5030870
2019/04/11
6540
SHELL(bash)脚本编程四:其他扩展
在之前的文章中我们讲述了变量扩展、数学扩展和命令替换。本篇接着介绍shell中用到的其他扩展。
用户5030870
2019/04/11
8240
SHELL(bash)脚本编程六:执行流程
bash命令的执行分为四大步骤:输入、解析、扩展和执行。 本文将详述bash命令的一般处理过程: 如图所示
用户5030870
2019/04/11
1.8K0
SHELL(bash)脚本编程六:执行流程
SHELL(bash)脚本编程三:重定向
在这一篇中,我们介绍了一点关于输入输出重定向和管道的基础知识,本篇将继续重定向的话题。 在开始前,先说一说shell中的引用。
用户5030870
2019/04/11
1.8K0
如何在 Bash shell 脚本中解析命令行选项
在 Bash 中解析选项的策略是循环遍历所有传递给 shell 脚本的参数,确定它们是否是一个选项,然后转向下一个参数。重复这个过程,直到没有选项为止。
用户8639654
2021/09/01
2K0
使用bash编写Linux shell脚本--复合命令
除了最简单的脚本,你很少想要执行每一个命令。执行一组命令或者重复执行一组命令若干次比执行单个命令更加有助。复合命令是将命令封装在一组其他命令中。 从可读性来说,封装后的命令使用缩进格式将会使复合命令的代码清晰并便于阅读。管理员曾经抱怨过我的缩进比标准的缩进少了一个空格(我必须使用尺子在屏幕上测量才能确定此事),我认为这不是什么问题,但是他说,当输入 0 时,它的程序会崩溃。 复合命令总是有两个命令组成。命令的结束符是该命令相反拼写顺序,就像使用括号将命令括住了。例如:神秘莫测的命令 esac 实际上是复合命
猿人谷
2018/01/17
2.6K0
SHELL(bash)脚本编程七:源码简析
bash是用C语言写成的,其源码中只使用了少量的数据结构:数组,树,单向链表,双向链表和哈希表。几乎所有的bash结构都是用这些基本结构实现的。
用户5030870
2019/04/11
2K0
【shell脚本】$ 在shell脚本中的使用
注释:$* 和 $@ 都表示传递给函数或脚本的所有参数,不被双引号(" ")包含时,都以"$1" "$2" … "$n" 的形式输出所有参数。但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"的形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 的形式输出所有参数
码缘
2019/07/01
7.1K0
用Supervisor实现进程守护,在异常退出时自动重启
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。
MavenTalker
2019/07/19
2.3K0
用Supervisor实现进程守护,在异常退出时自动重启
Bash Shell
shell为用户与Kernel之间的一个接口:shell主要是一个命令解释器,它接受并解释用户输入的命令,然后将这些命令传给内核,最后由内核来执行这些命令。Bourn shell是现在所有shell的始祖,C shell增加了若干Bourn shell没有的特性,如命令行历史、别名和作业控制等。Korn shell增加了若干Bourn shell的超集,它具有类似C shell的加强功能。bash与Bourn shell兼容同时加入了csh、ksh和tcsh的一些有用的功能、GNU项目开发、也是实际上的标准Linux shell。系统中所有shell都存放在/etc/shells文件中。
狼啸风云
2019/01/18
1.6K0

相似问题

在Bash脚本中,如果出现某种情况,怎样才能退出整个脚本?

2390

如何自动运行shell命令?

1624

有没有bash shell方法?

1215

请问oozie如何创建shell脚本运行?

1414

可以在SSH上运行Bash脚本?

2333
相关问答用户
某公司 | 程序员擅长1个领域
新浪微博 | 高级总监擅长4个领域
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档