代码之家  ›  专栏  ›  技术社区  ›  maltem-za

如何在Windows7/Server2008中以编程方式编辑hosts文件?

  •  8
  • maltem-za  · 技术社区  · 16 年前

    here (使用“简单方法”)和相关问题 here .

    <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
    <assemblyIdentity version="1.0.0.0" processorArchitecture="X86" name="HostsChanger" type="win32"/>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel level="requireAdministrator"/>
            </requestedPrivileges>
        </security>
    </trustInfo>
    </assembly>
    

    有什么想法吗?

    3 回复  |  直到 9 年前
        1
  •  3
  •   Merlyn Morgan-Graham    16 年前

    从我之前的评论转述,变成了一个答案:

        2
  •  2
  •   Hans Olsson    16 年前

    我不确定它是否会有什么不同,但您的清单片段与我对它应该是什么的理解略有不同(尽管可能是不同的版本):

    <?xml version="1.0" encoding="utf-8"?>
    <asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
       <assemblyIdentity version="1.0.0.0" name="HostsChanger" />
       <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
          <security>
             <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
                <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
             </requestedPrivileges>
          </security>
       </trustInfo>
    </asmv1:assembly>
    

    否则,一个解决方法可能是有一个单独的“加载程序”应用程序,用户从中启动,并且只使用 Verb runas 详见 this 博客文章(so) Process.StartInfo.Verb = "runas"; ).

        3
  •  1
  •   Sai    16 年前

    我要在这里暗中试探一下,说这是一个authenticode签名问题。我没有听到你提到任何关于签署申请书的事。据我所知,与Vista不同,在windows2008/7中,运行提升的应用程序的唯一方法是拥有一个签名的应用程序清单,该清单标识应用程序所需的特权级别。如果您需要帮助签名,这里有一篇文章介绍如何签名您的申请: http://msdn.microsoft.com/en-us/library/bb756995.aspx