windows mobile 5.0 进程管理、窗体管理、重启和关闭操作系统

1、进程管理:在NET Compact Framework里进程管理的函数相对要比net Framework里要简化,不过仍然可以比较好的控制程序进程。

A.启动进程:在启动进程后返回进程的id

/// <summary>
        /// 启动进程
        /// </summary>
        /// <param name="fileName">启动文件的目录路径</param>
        /// <returns>返回启动进程的进程ID</returns>
        public static int StartProcess(string fileName)
        {
            int progressID = 0;

            try
            {
                //这个目录是动态的
                progressID = System.Diagnostics.Process.Start(fileName).Id;
                return progressID;
            }
            catch //(Exception ex)
            {
                //throw ex;
                return 0;
            }
        }
B.获取当前进程的ID


/// <summary>
        /// 获取当前进程ID
        /// </summary>
        public static int GetCurrentProcessID()
        {
             Process currentProcess = Process.GetCurrentProcess();
             int CurrentProcessID = currentProcess.Id;
             return CurrentProcessID;
        }
 

C.终止当前进程


/// <summary>
        /// 终止当前进程
        /// </summary>
        public static void KillCurrentProcess()
        {
            System.Diagnostics.Process.GetCurrentProcess().Kill();
        }
D.通过进程ID来终止进程


/// <summary>
        /// 终止进程
        /// </summary>
        /// <param name="progressID">进程ID</param>
        /// <returns>true 表示终止成功,反之表示失败</returns>
        public static bool KillProcess(int progressID)
        {
            try
            {
                System.Diagnostics.Process.GetProcessById(progressID).Kill();
                return true;
            }
            catch //(Exception ex)
            {
                //throw ex;
                return false;
            }
        }
 

2、窗体管理。在NET Compact Framework(2.0)的窗体类(System.Windows.Forms.Form))虽然提供WindowsState属性,这个属性是 FormWindowState 枚举类型,在枚举中只有Normal 和 Maximized,不过不能通过Maximized来控制窗体最小,同时也无法控制窗体的关闭。要是实现关闭和最小化只能通过调用api来实现。下面是有关代码:


[DllImport("coredll.dll")]
        private extern static bool ShowWindow(IntPtr hWnd, int nCmdShow);
        [DllImport("coredll.dll")]
        private static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
        ///最小化窗体
public static void WindowsMin(string frmTextName)
        {

            IntPtr hwnd = FindWindow(null, frmTextName);
            ShowWindow(hwnd, 6);
        }
        ///隐藏窗体
        public static void WindowHide(string frmTextName)
        {
            IntPtr hwnd = FindWindow(null, frmTextName);
            ShowWindow(hwnd, 0);
        }
3、重启和关闭操作系统。同样是调用api来完成。

 

        [DllImport("Aygshell.dll")]
        static extern bool ExitWindowsEx(uint uFlags, int dwReserved);
        private const uint EWX_REBOOT = 2;
        private const uint EWX_POWEROFF = 8;

        ///重启操作系统
        public static void RootWindows()
        {
            ExitWindowsEx(EWX_REBOOT, 0);
        }

        ///关闭操作系统
        public static void ShutDownWindows()
        {
            ExitWindowsEx(EWX_POWEROFF, 0);
        }
 

以上代码的运行环境和开发环境:windows mobile5.0 +ppc sdk +vs2005

本文地址:http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html

1.基本系统进程   Csrss.exe:这是子系统服务器进程,负责控制Windows创建或删除线程以及16位的虚拟DOS环境。   System Idle Process:这个进程是作为单线程运行在每个处理器上,并在系统不处理其它线程的时候分派处理器的时间。   Smss.exe:这是一个会话管理子系统,负责启动用户会话。   Services.exe:系统服务的管理工具。   Lsass.exe:本地的安全授权服务。   Explorer.exe:资源管理器。   Spoolsv.exe:管理缓冲区中的打印和传真作业。   Svchost.exe:这个进程要着重说明一下,有不少朋友都有这种错觉:若是在“任务管理器”中看到多个Svchost.exe在运行,就觉得是有病毒了。其实并不一定,系统启动的时候,Svchost.exe将检查注册表中的位置来创建需要加载的服务列表,如果多个Svchost.exe同时运行,则表明当前有多组服务处于活动状态;多个DLL文件正在调用它。   至于其它一些附加进程,大多为系统服务,是可以酌情结束运行的。由于其数量众多,我们在此也不便于一一列举。   在系统资源紧张的情况下,我们可以选择结束一些附加进程,以增加资源,起到优化系统的作用。在排除基本系统及附加进程后,新增的陌生进程就值得被大家怀疑了。 更多内容请看Windows操作系统安装、系统优化大全、系统安全设置专题,或进入讨论组讨论。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值