PDA 进程篇

本文介绍了一个在PDA设备上管理进程的问题解决方案。由于PDA内存限制及.NET Compact Framework的精简,作者通过调用Win32 API实现了在PDA上终止指定进程的功能,并分享了改造后的Process类及代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

起因是在PDA上A程序需要更新,激活了B程序,B程序开始下载最新的A程序,但A程序没有完全结束导致出错。

需要在B程序激活成功后,A程序必须结束。A程序的自动退出太不过不靠谱,没办法只能另谋它路。

就想到了在激活B程序后,在B程序里加上,下载前查找所有进程,找到A程序的进程都把它干掉。OK就准备这么办了。

说来惭愧,出来一年多了,都还没碰过进程都还没操作过,先去优快云上补个20分钟资料先,心里有底了写了小程序先,拿QQ来做实验,

public void KillProc(string pro) 
        {
            ManagementObjectCollection objects = new ManagementObjectSearcher("SELECT * FROM Win32_Process").Get(); 
            foreach (ManagementObject item in objects)
            {
                if (item["Name"].ToString().ToUpper().Trim().Equals(pro.ToUpper().Trim())) 
                {
                    string[] args = new string[] { "0" };
                    item.InvokeMethod("Terminate",args);
                } 
            }
        }
代码很简单 以上只要传入进程名 就可以结束该进程了,比如我传入 KillProc("QQ.EXE");
运行下那QQ就这么挂了。这只是在PC机子上的。
我想事情不会像我的那么简单,因为PDA是一个怪胎。
果然PDA上不支持这写法,没办法,谁叫PDA内存那么小,预装的Net Compact Framework2.0 太精简了,很多事件方法都没有,如果想快速实现跟PC上一样的方式,估计自己要做很多底层工作了,要写很多方法了。
好在优快云也是很强大的,N友推荐,微软官方有相应的文章,地址如下
http://msdn.microsoft.com/en-us/library/aa446560.aspx
看了下感触颇深,就本着拿来就用的精神,先拿来再说,之后改造了下符合自己业务即可。
参考如下
http://www.microsoft.com/downloads/details.aspx?FamilyId=9DEA4A5B-4573-4ADA-AFC3-08570065FC1C&displaylang=en
其中 因为Process类与PDA自带的Process 类有冲突,建议将Process改为Process2。因为原先的业务已经用到Process类了,如果直接用难保不会影响以前的业务,所以改改更健康。
 
解决方案在安装路径下
新打开需要版本转换,转换好后需要如果没有加载请手动修改移动类库
无法生存成功在某某路径下缺少 ToolHelp.exe 请在解决方案中添加 其它项目类别 | 智能设置CAB安装项目 取名叫ToolHelp 项目主输出
在生成后的ToolHelp.exe 直接安装在PDA上即可看效果 
相关论坛文章
http://topic.youkuaiyun.com/u/20080829/10/57c4a0bb-0d15-42da-81fc-a4e5d8877666.html
 
本人提供:自己已经改造后的Process类 及相应的PC结束进程代码范例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值