重启PocketPC移动设备

PocketPC运行程序经常由于某些不确定的因素,导致程序就死在那里了.但在PocketPC上又没有象桌面Windows一样的任务管理器.所有出现了此问题要么就等个半天,要么就硬重启.下面给大家介绍一段软重启的代码.看过就可以直接拿来使用.
using  System; using  System.Collections.Generic; using  System.Text; using  System.Runtime.InteropServices; namespace  ResetPocketPC {   class ResetPocketPC   {     public const uint FILE_DEVICE_HAL = 0x00000101;     public const uint METHOD_BUFFERED = 0;     public const uint FILE_ANY_ACCESS = 0;     public   uint CTL_CODE(uint DeviceType, uint Function, uint Method, uint Access)     {       return ((DeviceType << 16| (Access << 14| (Function << 2| Method);     }     [DllImport("Coredll.dll")]     public extern static uint KernelIoControl     (         uint dwIoControlCode,         IntPtr lpInBuf,         uint nInBufSize,         IntPtr lpOutBuf,         uint nOutBufSize,         ref uint lpBytesReturned     );     //调用此方法软重启     public  uint ResetPocketPC()     {       uint bytesReturned = 0;       uint IOCTL_HAL_REBOOT = CTL_CODE(FILE_DEVICE_HAL, 15,METHOD_BUFFERED, FILE_ANY_ACCESS);       return KernelIoControl(IOCTL_HAL_REBOOT, IntPtr.Zero, 0,IntPtr.Zero, 0ref bytesReturned);     }   } }
// 调用   private   void  button1_Click( object  sender, EventArgs e)      {       DialogResult r = MessageBox.Show(         "你确定要重启吗?",         "Test",         MessageBoxButtons.YesNo,         MessageBoxIcon.Question,         MessageBoxDefaultButton.Button2     );       if (r == DialogResult.Yes)       {         ResetMobile RsMobile = new ResetMobile();         RsMobile.ResetPocketPC();       }

在仿真设备中使用主机网络

在vs2005调试Mobile移动开发程序要使用到仿真设备,因为这样调试速度更快(在vs2008中调试跟方便了,因为vs2008的单元测试已经支持移动设备项目了). 在vs2005中,要在仿真设备中调试程序,有时,因某些程序要访问网络资源,因此必须解决仿真要能使用主机网络的问题. 看过下面的介绍你会觉得很简单,原先我也以为在仿真设备中不能使用主机网络的: 1.打开vs2005,工具->设备仿真管理器 2.选中你要打开的仿真设备,右击选择"Connect" 3.同时右击选择"Cradle",这步是关键决定是否使用主机网络 4.打开 ActiveSync,文件->连接设置,在"允许连接到以下其中一个端口"的下拉中选择"DMA" 5.按照上面的设置就已完成了设置,这样就可以打开项目,选择和上面设置的同一个仿真设备就可以了
Windows Mobile创建桌面快捷方式
  新建智能设备CAB 项目,就可以直接创建特殊的目录下创建快捷方式,但是并没有象桌面安装包程序一样可以,在桌面上创建一个快捷方式。怎样用代码在Windows Mobile 桌面上创建一个快捷方式呢?我开始也尝试用像创建Windows 应用程序一样在桌面上创建一个快捷方式,但是在Windows Mobile 上根本不行。经过研究和Windows 快捷方式创建,发现快捷方式其实就是创建一个特定的lnk 文件, 在这个文件中写入一定的代码,在点击时就能自动运行。

Windows Mobile 中怎么样创建快捷方式的呢?复制一个Windows Mobile中的一个快捷方式,然后把它拖到记事本中你就会发现它的结构组成了。

如:37#"/Windows/桌面/PDA.exe.lnk"这是我拖拽一个快捷方式到记事本中出现的

看到里这个就很简单,比创建Windows 快捷方式简单多了。

Code参考:

///<summary>

    ///创建快捷方式

    ///</summary>

    ///<param name="ExePath">exe程序所在路径</param>

    ///<param name="where">快捷方式的路径</param>

    public static void CreateShortcut(string ExePath,string where)

    {     try

      {

        if (!System.IO.File.Exists(where))

        {

          System.IO.StreamWriter objWriter = System.IO.File.CreateText(where);

          objWriter.WriteLine(string.Format("37#""{0}""", ExePath));

          objWriter.Close();

        }

      }

      finally

      {

        where = null;

        ExePath = null;

      } }

string where = @"/Windows/桌面/PDA.exe.lnk";

string ExePath=Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName;

CreateShortcut(ExePath,where);

posted @
  1. 获取输入法
新建Form ,拖入设备组件 inputPanel
foreach (InputMethod im in this.inputPanel1 .InputMethods)
    {
        this.listBox1.Items.Add(im.Name);
    }
2. 显示输入面板
   [System.Runtime.InteropServices.DllImport("coredll.dll")]
internal static extern uint SipShowIM(long flags);
SipShowIM(0);// 隐藏
SipShowIM(0);// 显示
3. 设置控件输入法
   Microsoft.WindowsCE.Forms.InputModeEditor.SetInputMode(this.textBox1, InputMode. Numeric);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值