首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > PowerDesigner >

PDA 过程篇

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

PDA 进程篇

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

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

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

说来惭愧,出来一年多了,都还没碰过进程都还没操作过,先去CSDN上补个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上一样的方式,估计自己要做很多底层工作了,要写很多方法了。
好在CSDN也是很强大的,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.csdn.net/u/20080829/10/57c4a0bb-0d15-42da-81fc-a4e5d8877666.html
 
本人提供:自己已经改造后的Process类 及相应的PC结束进程代码范例

热点排行