[C#] WebBrowser version 변경

Program.cs 에서 다음을 사용하도록 합니다.

using System.Runtime.InteropServices;
using Microsoft.Win32;

레지스트리에 세팅하고 값이 정상적인지 체크하도록 하는 함수 입니다.

private static void SetIEVersioneKeyforWebBrowserControl(string appName, int ieval)
        {
            string RegKeyPath = "";
            RegistryKey Regkey = null;
 
            try
            {
                // x86, x64 구분
                if (Environment.Is64BitProcess)
                {
                    RegKeyPath = @"SOFTWARE\WOW6432Node\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
                }
                else
                {
                    RegKeyPath = @"SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION";
                }
 
                //
                try
                {
                    Regkey = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(RegKeyPath, true);
                }
                catch (Exception ex)
                {
                    Console.WriteLine(" 관리자 권한이 아니여서 접근이 불가능 합니다.");
                }
                finally
                {
                    // 레지스트리의 값을 체크
                    if (Regkey == null)
                    {
                        // 찾지 못할 경우 그냥 PASS
                    }
                    else
                    {
                        // 실행 프로세스가 등록되어 있는지 값을 가져오기
                        string FindAppkey = Convert.ToString(Regkey.GetValue(appName));
 
                        // 이미 세팅 되어 있을 경우
                        if (FindAppkey == ieval.ToString())
                        {
                            Regkey.Close();
                        }
                        else
                        {
                            // 값 세팅하기
                            Regkey.SetValue(appName, unchecked((int)ieval), RegistryValueKind.DWord);
 
                            //check for the key after adding 
                            FindAppkey = Convert.ToString(Regkey.GetValue(appName));
                            if (FindAppkey != ieval.ToString())
                            {
                                Console.WriteLine("IE 에뮬레이트 값을 설정하지 못하엿습니다.");
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
 
            }
            finally
            {
                //레지스트리 수정을 종료함.
                if (Regkey != null)
                {
                    Regkey.Close();
                }
            }
        }
이전글
다음글

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다