WebBrowser 中不显示 java小程序 Applet

来源:互联网 发布:数控机床的编程特点 编辑:程序博客网 时间:2024/06/04 19:29

网页中有一个 java小程序 (Applet)
用ie 或者 世界之窗 可以正常使用 这个页面 内容完整
使用 WebBrowser 打开以后就 WebBrowser java小程序的位置就会显示为 一个灰色的 矩形【本来是有内容的】
打开页面过程中 会提示错误 *****为空或不是对象 

解决方法 增加环境变量JAVA_PLUGIN_WEBCONTROL_ENABLE = TRUE
说明:可以调用API实现

Environment.SetEnvironmentVariable(StrName, strValue, EnvironmentVariableTarget.Machine);

错误提示依然存在  但是能用了

网上也有说JAVA_PLUGIN_WEBCONTROL_ENABLE=1即可解决!

转自:http://blog.163.com/xiaobingking@126/blog/static/322371372011016134892/

C# 实现环境变量(采用 Environment 类)

  private void  setEnvi(String StrName, String strValue)        {            Environment.SetEnvironmentVariable(StrName, strValue, EnvironmentVariableTarget.Machine);        }        private void setPathWithVariable(String strVariable)        {            String strHome = "%" + strVariable + "%";            setPathAfter(strHome);        }        private void setPathAfter(String strHome)//此时不会刷新path,需重启后刷新        {            String pathList = Environment.GetEnvironmentVariable("PATH");            //检测是否以;结尾                   if (pathList.Substring(pathList.Length - 1, 1) != ";")            {                Environment.SetEnvironmentVariable("PATH", pathList + ";");                pathList += ";";            }            string[] list = pathList.Split(';');            bool isPathExist = false;            foreach (string item in list)            {                if (item == strHome)                    isPathExist = true;            }            if (!isPathExist)            {                Environment.SetEnvironmentVariable("PATH", pathList + strHome + ";", EnvironmentVariableTarget.Machine);            }        }

============ 更改注册表===========================

注意,采用此方式修改的环境变量其实是修改了注册表里的变量值,修改之后,系统环境变量并没有更新,因此需要重启计算机,不推荐使用

http://www.cnblogs.com/ITBread/archive/2012/04/15/2450367.html

    class SysEnvironment    {            /// <summary>          ///         /// 获取系统环境变量          ///         /// </summary>           ///         /// <param name="name"></param>           ///         /// <returns></returns>            ///         public static string GetSysEnvironmentByName(string name)            {                    string result = string.Empty;                   try                  {                         result = OpenSysEnvironment().GetValue(name).ToString();                //读取                   }                    catch (Exception)                  {                            return string.Empty;              }                    return result;         }            /// <summary>            /// 打开系统环境变量注册表            /// </summary>            /// <returns>RegistryKey</returns>            private static RegistryKey OpenSysEnvironment()         {                    RegistryKey regLocalMachine = Registry.LocalMachine;                 RegistryKey regSYSTEM = regLocalMachine.OpenSubKey("SYSTEM", true);            //打开HKEY_LOCAL_MACHINE下的SYSTEM                     RegistryKey regControlSet001 = regSYSTEM.OpenSubKey("ControlSet001", true);            //打开ControlSet001                     RegistryKey regControl = regControlSet001.OpenSubKey("Control", true);            //打开Control                     RegistryKey regManager = regControl.OpenSubKey("Session Manager", true);            //打开Control                     RegistryKey regEnvironment = regManager.OpenSubKey("Environment", true);                   return regEnvironment;           }                   /// <summary>           /// /// 设置系统环境变量          /// /// </summary>            /// / <param name="name">变量名</param>            /// <param name="strValue">值</param>          public static void SetSysEnvironment(string name, string strValue)            {                  OpenSysEnvironment().SetValue(name, strValue);           }                    /// <summary>          /// /// 检测系统环境变量是否存在          /// /// </summary>            /// <param name="name">        /// </param>         /// /// <returns></returns>            public bool CheckSysEnvironmentExist(string name)           {                    if (!string.IsNullOrEmpty(GetSysEnvironmentByName(name)))                     return true;                    else                            return false;         }          /// <summary>            /// 添加到PATH环境变量(会检测路径是否存在,存在就不重复)           /// /// </summary>    /// <param name="strPath"></param>          public static void SetPathAfter(string strHome)           {                   string pathlist ;                pathlist = GetSysEnvironmentByName("PATH");               //检测是否以;结尾                   if (pathlist.Substring(pathlist.Length - 1, 1) != ";")              {                            SetSysEnvironment("PATH", pathlist + ";");                      pathlist = GetSysEnvironmentByName("PATH");                  }                    string[] list = pathlist.Split(';');               bool isPathExist = false;                  foreach (string item in list)                {                          if (item == strHome)                    isPathExist = true;             }                    if (!isPathExist)                 {                           SetSysEnvironment("PATH", pathlist +strHome+ ";");              }          }         public static void SetPathBefore(string strHome)         {                    string pathlist;                 pathlist = GetSysEnvironmentByName("PATH");                 string[] list = pathlist.Split(';');                bool isPathExist = false;                 foreach (string item in list)                 {                 if (item == strHome)                             isPathExist = true;                }                  if (!isPathExist)                   {                          SetSysEnvironment("PATH", strHome + ";" + pathlist);                  }           }           public static void SetPath(string strHome)           {                string pathlist;                  pathlist = GetSysEnvironmentByName("PATH");                string[] list = pathlist.Split(';');                bool isPathExist = false;                 foreach (string item in list)                   {                          if (item == strHome)                         isPathExist = true;                  }                   if (!isPathExist)                 {                         SetSysEnvironment("PATH", pathlist + strHome + ";" );               }        }    

        Kernel32.DLL内有SetEnvironmentVariable函数用于设置系统环境变量C#调用要用DllImport,代码封装如下:class SetSysEnvironmentVariable   {            [DllImport("Kernel32.DLL ", SetLastError = true)]            public static extern bool SetEnvironmentVariable(string lpName, string lpValue);      public static void SetPath(string pathValue)          {                    string pathlist;                  pathlist = SysEnvironment.GetSysEnvironmentByName("PATH");           string[] list = pathlist.Split(';');          bool isPathExist = false;               foreach (string item in list)           {                         if (item == pathValue)                isPathExist = true;                 }                  if (!isPathExist)         {                          SetEnvironmentVariable("PATH", pathlist + pathValue+";");            }          }   }

转自:http://blog.csdn.net/chenscmail/article/details/8767712
原创粉丝点击