在回答您的问题 2 时,此代码将显示连接控制面板:
Process.Start(@"\windows\ctlpnl.exe", "cplmain.cpl,19");
许多内置设置小程序通过 ctlpnl.exe 显示。我从这里的列表中获得了幻数,不确定它是否有帮助,因为您仍然需要指导用户完成其余的通信设置。
关于您的问题 1,我使用了 DMProcessConfigXML 和配置管理器设置 cabs 来配置通信设置(诚然来自 c++,但查看 api 它应该很容易按照 Shane 的建议进行 p/invoke)。这是不久前的事了,所以我现在手头没有任何示例,但我们确实可以进行新的网络设置并切换这些下拉菜单以选择新设置。稍后我会看看是否可以挖掘出 XML 的示例。
似乎不需要 P/Invoke,ConfigurationManager.ProcessConfiguration是 Microsoft.WindowsMobile 命名空间中调用 DMProcessConfigXML 的托管包装器。
我仍在寻找要发送给它的正确 xml,很可能是 CM_Networks、CM_Planner 和其他一些组合的某种组合......细节都在这里,但文档有点棘手,无法弄清楚什么是什么,我可以'不记得了,因为那是很久以前的事了:(
好的,经过一些试验(因为我没有找到 xml),这里有一些 xml,您可以将其传递给 ConfigurationManager.ProcessConfiguration 来更改这两个设置:
<wap-provisioningdoc>
<characteristic type="CM_ProxyEntries">
<characteristic type="HTTP-{ADB0B001-10B5-3F39-27C6-9742E785FCD4}">
<parm name="SrcId" value="{ADB0B001-10B5-3F39-27C6-9742E785FCD4}" options="My Work Network{18AD9FBD-F716-ACB6-FD8A-1965DB95B814}My ISP{ADB0B001-10B5-3F39-27C6-9742E785FCD4}Work{A1182988-0D73-439E-87AD-2A5B369F808B}Secure WAP Network{F28D1F74-72BE-4394-A4A7-4E296219390C}The WAP Network{7022E968-5A97-4051-BC1C-C578E2FBA5D9}The Internet{436EF144-B4FB-4863-A041-8F905A62C572}" />
<parm name="DestId" value="{436EF144-B4FB-4863-A041-8F905A62C572}" options="My Work Network{18AD9FBD-F716-ACB6-FD8A-1965DB95B814}My ISP{ADB0B001-10B5-3F39-27C6-9742E785FCD4}Work{A1182988-0D73-439E-87AD-2A5B369F808B}Secure WAP Network{F28D1F74-72BE-4394-A4A7-4E296219390C}The WAP Network{7022E968-5A97-4051-BC1C-C578E2FBA5D9}The Internet{436EF144-B4FB-4863-A041-8F905A62C572}" />
<parm name="Proxy" value="new-inet:1159" />
<parm name="Override" value="" />
<parm name="Enable" value="1" />
<parm name="Type" value="0" />
<parm name="Username" value="" />
<parm name="Password" value="" />
<parm name="ExtraInfo" value="" />
</characteristic>
<characteristic type="null-corp-{ADB0B001-10B5-3F39-27C6-9742E785FCD4}">
<parm name="SrcId" value="{ADB0B001-10B5-3F39-27C6-9742E785FCD4}" options="My Work Network{18AD9FBD-F716-ACB6-FD8A-1965DB95B814}My ISP{ADB0B001-10B5-3F39-27C6-9742E785FCD4}Work{A1182988-0D73-439E-87AD-2A5B369F808B}Secure WAP Network{F28D1F74-72BE-4394-A4A7-4E296219390C}The WAP Network{7022E968-5A97-4051-BC1C-C578E2FBA5D9}The Internet{436EF144-B4FB-4863-A041-8F905A62C572}" />
<parm name="DestId" value="{A1182988-0D73-439E-87AD-2A5B369F808B}" options="My Work Network{18AD9FBD-F716-ACB6-FD8A-1965DB95B814}My ISP{ADB0B001-10B5-3F39-27C6-9742E785FCD4}Work{A1182988-0D73-439E-87AD-2A5B369F808B}Secure WAP Network{F28D1F74-72BE-4394-A4A7-4E296219390C}The WAP Network{7022E968-5A97-4051-BC1C-C578E2FBA5D9}The Internet{436EF144-B4FB-4863-A041-8F905A62C572}" />
<parm name="Proxy" value="" />
<parm name="Override" value="" />
<parm name="Enable" value="1" />
<parm name="Type" value="0" />
<parm name="Username" value="" />
<parm name="Password" value="" />
<parm name="ExtraInfo" value="" />
</characteristic>
</characteristic>
</wap-provisioningdoc>
这是从我的 wm 6 pro 模拟器中获取的,因此您可能需要稍微调整一下设置。它将两个下拉菜单都设置为我的 ISP(ADB0B001-10B5-3F39-27C6-9742E785FCD4 guid)只需更改 type="HTTP-xxxx" 和 type="null-corp-xxxx" 中的 guid 并确保它在srcId 参数也是。
我用这个 xml(元数据设置为 true)调用 ProcessConfiguration 以获取所有已配置条目的列表,它在 xml 文档中返回它们。
<wap-provisioningdoc>
<characteristic-query type="CM_Mappings" recursive="true"/>
<characteristic-query type="CM_Planner" recursive="true"/>
<characteristic-query type="CM_Networks" recursive="true"/>
<characteristic-query type="CM_ProxyEntries" recursive="true"/>
<characteristic-query type="Wi-Fi" recursive="true"/>
<characteristic-query type="CM_PPPEntries" recursive="true"/>
<characteristic-query type="CM_VPNEntries" recursive="true"/>
<characteristic-query type="CM_NetEntries" recursive="true"/>
<characteristic-query type="CM_GPRSEntries" recursive="true"/>
</wap-provisioningdoc>
您可以使用它来查看 guid 和设置是什么,或者查看 WM sdk 中的包含文件,因为它们在那里列出以与连接管理器 api 一起使用。
一个警告是我在弄乱它们之后没有尝试使用这些连接,但是当你处理配置时 UI 确实会改变