ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

如何在Windows Mobile上设置网络管理设置或使对话框显示在C#中?

2019-06-22 04:04:39  阅读:187  来源: 互联网

标签:c net compact-framework windows-mobile


Windows Mobile中,当您打开Internet Explorer并键入设备无法连接的URL时,系统会通知您,并提示您(手动)导航到可以作为用户实际执行此操作的屏幕(网络管理),如下:

alt text http://www.freeimagehosting.net/uploads/d3d95e00d2.gif

但是,如果.NET Compact Framework应用程序尝试连接到Web服务并且无法访问Web服务URL,则不会出现“无法连接”气泡,而是对Web服务的调用失败.有时我们最终会通过电话与客户讨论这个过程:

alt text http://www.freeimagehosting.net/uploads/e74a0d4230.gif

然后他们还有两个步骤要去.

问题1:是否可以以编程方式控制(在C#中)网络管理屏幕上的两个组合框设置为什么?

通常修复客户的连接问题涉及摆弄这两个盒子,直到他们可以连接.问题在于,由于客户可以自己在这里自由改变他们的网络内容,我常常不知道该告诉他们如何设置它(“它说什么?”是我说的很多).到目前为止,我的搜索看起来像DMProcessConfigXML就是这样做的方式,但到目前为止我所知道的是你调用这个方法并传递一些XML.

问题2:是否可以以编程方式(C#)触发“无法连接”气泡,或者更好的是,是否可以通过编程方式立即显示网络管理屏幕?

据推测,如果我的代码无法看到webservice URL,它可能会触发气泡或直接进入屏幕.

解决方法:

在回答您的问题2时,此代码将显示连接控制面板:

Process.Start(@"\windows\ctlpnl.exe", "cplmain.cpl,19");

很多内置的设置applet都是通过ctlpnl.exe显示的.我从列表here中得到了神奇的数字,不确定它是否有帮助,因为您仍然需要引导用户完成其余的通信设置.

关于你的问题1,我使用了DMProcessConfigXML以及配置管理器设置cab来配置通信设置(诚然来自c,但是看看api应该像Shane建议的那样直接进行p / invoke).不久之前所以我现在没有任何示例,但我们确实让它进行新的网络设置并切换这些下拉菜单来选择新的设置.我会看看我是否可以在以后挖掘XML的示例.

似乎不需要P / Invoke,ConfigurationManager.ProcessConfiguration是调用DMProcessConfigXML的Microsoft.WindowsMo​​bile命名空间中的托管包装器.

我仍然在寻找合适的xml发送给它,很可能是CM_Networks,CM_Planner和其他一些组合的一些组合…详细信息都是here但文档有点难以弄清楚什么做了什么,我可以不记得很久以前:(

好的,经过一些小实验(因为我没有找到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”中的guid并输入=“null-corp-xxxx”并确保它匹配srcId parm也是.

我使用此xml调用ProcessConfiguration(并将元数据设置为true)以获取已配置的所有条目的列表,并在xml doc中返回它们.

<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中包含的文件,因为它们列在那里用于连接管理器apis.

需要注意的是,在弄乱它们之后我还没有尝试使用这些连接,但是当你处理配置时UI确实会改变

标签:c,net,compact-framework,windows-mobile
来源: https://codeday.me/bug/20190622/1260881.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有