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);
 

Internet Explorer_Server内容获取

Internet Explorer_Server内容获取 2010-07-13 20:46promiseclx | 分类:网站使用 | 浏览819次 Internet Explorer_Ser...
  • autumn20080101
  • autumn20080101
  • 2013年05月09日 14:57
  • 596

已知IWebBrowser2接口,如何获得其Internet Explorer_Server窗口句柄?

关键字:IWebBrowser2,HWND,::GetCursorPos,::ScreenToClient方法:HRESULT IWebBrowser2::get_HWND(long *pHWND);...
  • dragoo1
  • dragoo1
  • 2017年01月17日 21:32
  • 332

8月23部署maven多模块项目解决的问题汇总

1.tomcat发布乱码问题,参见http://www.lychaox.com/servers/tomcat-deployee-encoding-set.html,下面是copy内容: ...
  • u010698087
  • u010698087
  • 2016年08月23日 17:50
  • 430

VS 2008 可扩展性开发(六):操作Solution Explorer

前言 在可扩展性开发(五)中,我介绍了对于Solution、Project、ProjectItem的基本操作。可以认为它们面向的是解决方案内容的物理(文件)表示,我们需要使用VS提供的解决方案管理...
  • wangrenbao123
  • wangrenbao123
  • 2017年02月15日 13:43
  • 190

VS2008 Pocket PC 2003 SE仿真程序上网设置

本以为很简单的事情,结果百度了好久才搞定,大体分为3个步骤:Microsoft ActiveSync安装配置、Pocket PC 2003 SE仿真程序配置、Pocket PC 2003连接到Micr...
  • ysq5202121
  • ysq5202121
  • 2013年11月10日 18:40
  • 2117

配置Pocket PC 2003 SE设备仿真器的网络设置

本文介绍配置Pocket PC 2003 SE设备仿真器网络设置的方法共有六个步骤: 下载虚拟网卡驱动程序 在PC上安装虚拟网卡驱动 在Visual Studio 2005中配置仿真...
  • yanyouning
  • yanyouning
  • 2006年09月16日 22:43
  • 18720

Firefox 2.0 和 Internet Explorer 6 在执行 JavaScript 方面的性能对比!

之前曾经用Firefox 1.5.0.3 与 IE6做过一次JavaScript执行效能的对比(文章链接),昨天看到有网友回复,一时兴起,用新发布的 Firefox 2.0 再次测试了一下!新版Fir...
  • xport
  • xport
  • 2006年10月27日 09:46
  • 2163

Internet Explorer 11

微软在上周刚刚发布了用于 Windows 8.1 上的首个 Internet Explorer 11 的预览版,此举是为了回应之前泄漏关于 Internet Explorer 11 的信息。我们已经确...
  • sou3713
  • sou3713
  • 2014年01月07日 09:46
  • 614

C#启动一个外部程序

 C#启动一个外部程序(3)-CreateProcess今天还是继续说说C#调用系统Api启动外部程序的方法,今天要说的是CreateProcess这个Api函数,相比前两篇文章(一、二)中所说的Ap...
  • A_A66
  • A_A66
  • 2010年08月17日 10:13
  • 1717

Pocket PC模拟器设置上网

在开发终端系统时,有时需要访问外网调用webservice,但调试时无法连接无线,其实可以通过终端配置为连接到电脑,然后通过同步软件上网,具体配置如下: 1、同步软件连接设置截图: 2、vs中...
  • yinxing408033943
  • yinxing408033943
  • 2011年11月21日 15:53
  • 1393
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Pocket PC系统应用程序中使用C#启动Internet explorer并访问指定的URL
举报原因:
原因补充:

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