C#オペレーティングシステムファイアウォール(続編)


前に書いたC#オペレーティングシステムファイアウォールのブログでは、ネットユーザーのフィードバックによると、操作追加プログラムの例外で異常が発生した.今日はまたテストしたが、確かに異常が発生した.現在、NetFwAddApps(string name、string executablePath)の方法を修正した.テストの結果、使用可能になった.コードは以下の通りである.
  •         /// <summary>
            ///  
            /// </summary>
            /// <param name="name"> </param>
            /// <param name="executablePath"> </param>
            public static void NetFwAddApps(string name, string executablePath) {
                Type TfwMgr = Type.GetTypeFromProgID("HNetCfg.FwMgr");
                // firewall 
                INetFwMgr netFwMgr = (INetFwMgr)Activator.CreateInstance(TfwMgr);
                Type tapp = Type.GetTypeFromProgID("HNetCfg.FwAuthorizedApplication");
                INetFwAuthorizedApplication app = (INetFwAuthorizedApplication)Activator.CreateInstance(tapp);
                // , 
                app.Name = name;
                // 
                app.ProcessImageFileName = executablePath;
                // 
                app.Enabled = true;
                // 
                netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app);
                bool exist = false;
                // 
                foreach(INetFwAuthorizedApplication mApp in netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications)
                {
                    if(app == mApp)
                    {
                        exist = true;
                        break;
                    }
                }
                if(!exist)
                {
                    netFwMgr.LocalPolicy.CurrentProfile.AuthorizedApplications.Add(app); 
                }
            }


  • <!--
    .csharpcode, .csharpcode pre
    {
    font-size: small;
    color: black;
    font-family: Consolas, "Courier New", Courier, Monospace;
    background-color: #ffffff;
    /*white-space: pre;*/
    }
    .csharpcode pre { margin: 0em; }
    .csharpcode .rem { color: #008000; }
    .csharpcode .kwrd { color: #0000ff; }
    .csharpcode .str { color: #006080; }
    .csharpcode .op { color: #0000c0; }
    .csharpcode .preproc { color: #cc6633; }
    .csharpcode .asp { background-color: #ffff00; }
    .csharpcode .html { color: #800000; }
    .csharpcode .attr { color: #ff0000; }
    .csharpcode .alt
    {
    background-color: #f4f4f4;
    width: 100%;
    margin: 0em;
    }
    .csharpcode .lnum { color: #606060; }
    -->
     
    <!--
    .csharpcode, .csharpcode pre
    {
    font-size: small;
    color: black;
    font-family: consolas, "Courier New", courier, monospace;
    background-color: #ffffff;
    /*white-space: pre;*/
    }
    .csharpcode pre { margin: 0em; }
    .csharpcode .rem { color: #008000; }
    .csharpcode .kwrd { color: #0000ff; }
    .csharpcode .str { color: #006080; }
    .csharpcode .op { color: #0000c0; }
    .csharpcode .preproc { color: #cc6633; }
    .csharpcode .asp { background-color: #ffff00; }
    .csharpcode .html { color: #800000; }
    .csharpcode .attr { color: #ff0000; }
    .csharpcode .alt
    {
    background-color: #f4f4f4;
    width: 100%;
    margin: 0em;
    }
    .csharpcode .lnum { color: #606060; }
    -->