Pocket PC系统应用程序中使用C#启动Internet explorer并访问指定的URL

转载 2007年09月12日 10:46:00
开发移动应用系统的时候,经常遇到这样辣手的问题,就是需要从系统应用软件例程过渡到Web程序例程。比如从PDA端应用软件的某个菜单,假如菜单的名称是在线支持,用户点击这个菜单项要进入Web上的某个页面,这种情况下技术上应该如何实现呢?
      首先我们了解一下,在像VB这样的程序语言中,我们可以使用Shell语句来完成这个功能,但是这也只适用于Windows环境,在Win CE环境下显然测不通。幸运的是,我找到了一种可以使用EVB来实现这个功能的方法,但是我并打算在本篇文章中讲解,需要了解的朋友可以在我的专栏里查看 “Pocket PC系统中使用EVB启动其他可执行文件—Shell的替代方案”一篇文章。
      那么在C#技术体系里又是用何种方式来实现的呢?一般我们会使用如下方式来实现:
Process p = new Process();
p.StartInfo.FileName = @"C:/Program Files/Internet Explorer/IEXPLORE.EXE";
p.Start();
      但是,不幸的是这同样也只适用于Windows环境,而不适用于Win CE环境。而实际上,微软到目前为止还并没有制作出针对这种功能的方便好用的组件,要实现这个功能还只能够通过调用底层API的方式来实现。
      首先,我们写个类,在类中声明API函数。代码如下:
class CeProcess
{
public class ProcessInfo
{
public IntPtr hProcess;
public IntPtr hThread;
public Int32 ProcessId;
public Int32 ThreadId;
}

[DllImport("CoreDll.DLL", SetLastError=true)]
private extern static
int CreateProcess( String imageName,
String cmdLine,
IntPtr lpProcessAttributes,
IntPtr lpThreadAttributes,
Int32 boolInheritHandles,
Int32 dwCreationFlags,
IntPtr lpEnvironment,
IntPtr lpszCurrentDir,
byte [] si,
ProcessInfo pi );

[DllImport("CoreDll.dll")]
private extern static
Int32 GetLastError();

public static bool CreateProcess( String ExeName, String
CmdLine, ProcessInfo pi )
{
if ( pi == null )
pi = new ProcessInfo();

byte [] si = new byte[128];

return CreateProcess(ExeName, CmdLine, IntPtr.Zero,
IntPtr.Zero,
0, 0, IntPtr.Zero, IntPtr.Zero, si, pi) != 0;
}
}
      接下来调用的工作就很简单了,如下所示:
CeProcess.CreateProcess("iexplore.exe","http://www.google.com",null);
 

关于 WebBrowser只对浏览器外应用程序以及在Internet Explorer 中以提升权限运行的应用程序启用

我是根据很多大神写的博客,以及我自己在做项目的时候做的关于提升Silverlight 中WebBrowser 提升信任的问题的总结: 1)选中Silverlight主程序,右键“属性”---“Sli...

在 Android 应用程序中使用 Internet 数据 解析 XML、JSON 和 protocol buffers 数据

在 Android 应用程序中使用 Internet 数据 解析 XML、JSON 和 protocol buffers 数据 Android 应用程序必须访问位于 Interne...
  • XSL1990
  • XSL1990
  • 2013年11月20日 23:20
  • 2099

Android 应用程序中使用 Internet 数据(XML、JSON 和 protocol buffers)

【转】Android 应用程序中使用 Internet 数据(XML、JSON 和 protocol buffers)(上)2011-03-03 14:21简介: 您的很多 Android 应用程序都...

构建富Internet应用程序 :使用OpenLaszlo、Eclipse Laszlo IDE和Web Tools

构建富Internet应用程序 :使用OpenLaszlo、Eclipse Laszlo IDE和Web Tools 转载自:http://www.bianceng.cn/Programming/J...

在 Android 应用程序中使用 Internet 数据

在 Android 应用程序中使用 Internet 数据 原文:http://www.ibm.com/developerworks/cn/xml/x-dataAndroid/ind...
  • dahuzix
  • dahuzix
  • 2013年02月16日 10:37
  • 492

wince应用程序(实现 获取存储设备的大小、实现 WINCE 系统重新启动、隐藏/显示 Windows 任务栏等等)【C#】

[说明:部分代码来自网上 自己整理了下 与大家分享 代码有不足之处 请指出 我会修改滴] 废话小说,代码呈上.. 【1. 总览函数体】 【2. 界面(简洁版)】 【3. 源码】 ...
  • li0531
  • li0531
  • 2012年08月15日 13:52
  • 4270

PC使用Proxifier设置ss实现应用程序级别代理(测试有效)

首先确保你的PC按照这篇文章设置ss并成功爬墙,然后确保ss处于全局模式 什么是Proxifier Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作...

PC使用Proxifier设置ss实现应用程序级别代理(测试有效)

首先确保你的PC按照这篇文章设置ss并成功爬墙,然后确保ss处于全局模式 什么是Proxifier Proxifier是一款功能非常强大的socks5客户端,可以让不支持通过代理服务器工作...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Pocket PC系统应用程序中使用C#启动Internet explorer并访问指定的URL
举报原因:
原因补充:

(最多只允许输入30个字)