<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>守望轩 &#187; 进程管理</title>
	<atom:link href="http://www.watch-life.net/tag/%e8%bf%9b%e7%a8%8b%e7%ae%a1%e7%90%86/feed" rel="self" type="application/rss+xml" />
	<link>http://www.watch-life.net</link>
	<description>关注IT,审视自我,守望生活, 宁静雅致的小轩馆.</description>
	<lastBuildDate>Tue, 20 Jul 2010 00:46:12 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>windows mobile 5.0 进程管理、窗体管理、重启和关闭操作系统</title>
		<link>http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html</link>
		<comments>http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html#comments</comments>
		<pubDate>Fri, 01 Feb 2008 19:59:43 +0000</pubDate>
		<dc:creator>xjb</dc:creator>
				<category><![CDATA[windows mobile]]></category>
		<category><![CDATA[vs2005]]></category>
		<category><![CDATA[windows mobile 5.0]]></category>
		<category><![CDATA[操作系统]]></category>
		<category><![CDATA[窗体]]></category>
		<category><![CDATA[进程]]></category>
		<category><![CDATA[进程管理]]></category>

		<guid isPermaLink="false">http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html</guid>
		<description><![CDATA[1、进程管理：在NET Compact Framework里进程管理的函数相对要比net Framework里要简化，不过仍然可以比较好的控制程序进程。
A.启动进程:在启动进程后返回进程的id


/// &#60;summary&#62;
        /// 启动进程
        /// &#60;/summary&#62;
        /// &#60;param name=&#34;fileName&#34;&#62;启动文件的目录路径&#60;/param&#62;
        /// &#60;returns&#62;返回启动进程的进程ID&#60;/returns&#62;
        public static int StartProcess(string fileName)
  [...]]]></description>
			<content:encoded><![CDATA[<p>1、<a href="http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html">进程管理</a>：在NET Compact Framework里进程管理的函数相对要比net Framework里要简化，不过仍然可以比较好的控制程序进程。</p>
<p>A.启动进程:在启动进程后返回进程的id</p>
<div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:0be93e99-546c-4789-b884-8a55aeb13ba2" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 启动进程
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;/summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;param name=&quot;fileName&quot;&gt;</span><span style="color: #008000; ">启动文件的目录路径</span><span style="color: #808080; ">&lt;/param&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;returns&gt;</span><span style="color: #008000; ">返回启动进程的进程ID</span><span style="color: #808080; ">&lt;/returns&gt;</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> StartProcess(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; "> fileName)
        {
            </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> progressID </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;

            </span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">
            {
                </span><span style="color: #008000; ">//</span><span style="color: #008000; ">这个目录是动态的</span><span style="color: #008000; ">
</span><span style="color: #000000; ">                progressID </span><span style="color: #000000; ">=</span><span style="color: #000000; "> System.Diagnostics.Process.Start(fileName).Id;
                </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> progressID;
            }
            </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">(Exception ex)</span><span style="color: #008000; ">
</span><span style="color: #000000; ">            {
                </span><span style="color: #008000; ">//</span><span style="color: #008000; ">throw ex;</span><span style="color: #008000; ">
</span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;
            }
        }</span></div>
</pre>
</div>
<p>B.获取当前进程的ID</p>
<p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:944bd65e-0866-4d47-a8b8-e87dc2c48556" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 获取当前进程ID
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;/summary&gt;</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> GetCurrentProcessID()
        {
             Process currentProcess </span><span style="color: #000000; ">=</span><span style="color: #000000; "> Process.GetCurrentProcess();
             </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> CurrentProcessID </span><span style="color: #000000; ">=</span><span style="color: #000000; "> currentProcess.Id;
             </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> CurrentProcessID;
        }</span></div>
</pre>
</div>
<p>&nbsp;</p>
<p>C.终止当前进程</p>
<p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:d286afd6-e8ed-4b74-b3d7-896292d6d0f9" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 终止当前进程
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;/summary&gt;</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> KillCurrentProcess()
        {
            System.Diagnostics.Process.GetCurrentProcess().Kill();
        }</span></div>
</pre>
</div>
<p>D.通过进程ID来终止进程</p>
<p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:5b79e65f-325b-4ac7-9026-19621af1a9e6" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> 终止进程
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;/summary&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;param name=&quot;progressID&quot;&gt;</span><span style="color: #008000; ">进程ID</span><span style="color: #808080; ">&lt;/param&gt;</span><span style="color: #008000; ">
        </span><span style="color: #808080; ">///</span><span style="color: #008000; "> </span><span style="color: #808080; ">&lt;returns&gt;</span><span style="color: #008000; ">true 表示终止成功，反之表示失败</span><span style="color: #808080; ">&lt;/returns&gt;</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> KillProcess(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> progressID)
        {
            </span><span style="color: #0000FF; ">try</span><span style="color: #000000; ">
            {
                System.Diagnostics.Process.GetProcessById(progressID).Kill();
                </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">true</span><span style="color: #000000; ">;
            }
            </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> </span><span style="color: #008000; ">//</span><span style="color: #008000; ">(Exception ex)</span><span style="color: #008000; ">
</span><span style="color: #000000; ">            {
                </span><span style="color: #008000; ">//</span><span style="color: #008000; ">throw ex;</span><span style="color: #008000; ">
</span><span style="color: #000000; ">                </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">false</span><span style="color: #000000; ">;
            }
        }</span></div>
</pre>
</div>
<p>&nbsp;</p>
<p>2、窗体管理。在NET Compact Framework（2.0）的窗体类（System.Windows.Forms.Form)）虽然提供WindowsState属性，这个属性是 FormWindowState 枚举类型，在枚举中只有Normal 和 Maximized，不过不能通过Maximized来控制窗体最小，同时也无法控制窗体的关闭。要是实现关闭和最小化只能通过调用api来实现。下面是有关代码：</p>
<p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:f5aaccc8-b0a9-4fa9-a227-3047d5d2ff27" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #000000; ">[DllImport(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">coredll.dll</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">)]
        </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">extern</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> ShowWindow(IntPtr hWnd, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> nCmdShow);
        [DllImport(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">coredll.dll</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">)]
        </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">extern</span><span style="color: #000000; "> IntPtr FindWindow(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; "> lpClassName, </span><span style="color: #0000FF; ">string</span><span style="color: #000000; "> lpWindowName);
        </span><span style="color: #808080; ">///</span><span style="color: #008000; ">最小化窗体</span><span style="color: #808080; ">
</span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> WindowsMin(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; "> frmTextName)
        {

            IntPtr hwnd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> FindWindow(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">, frmTextName);
            ShowWindow(hwnd, </span><span style="color: #000000; ">6</span><span style="color: #000000; ">);
        }
        </span><span style="color: #808080; ">///</span><span style="color: #008000; ">隐藏窗体</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> WindowHide(</span><span style="color: #0000FF; ">string</span><span style="color: #000000; "> frmTextName)
        {
            IntPtr hwnd </span><span style="color: #000000; ">=</span><span style="color: #000000; "> FindWindow(</span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">, frmTextName);
            ShowWindow(hwnd, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);
        }</span></div>
</pre>
</div>
<p>3、重启和关闭操作系统。同样是调用api来完成。</p>
<p><div class="wlWriterSmartContent" id="scid:57F11A72-B0E5-49c7-9094-E3A15BD5B5E7:e24d7542-b7e7-466c-b032-5f04cb09e4a7" style="padding-right: 0px; display: inline; padding-left: 0px; float: none; padding-bottom: 0px; margin: 0px; padding-top: 0px">
<pre style="background-color:White;">
<div><!--

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

--><span style="color: #000000; ">
        [DllImport(</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">Aygshell.dll</span><span style="color: #000000; ">&quot;</span><span style="color: #000000; ">)]
        </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">extern</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">bool</span><span style="color: #000000; "> ExitWindowsEx(</span><span style="color: #0000FF; ">uint</span><span style="color: #000000; "> uFlags, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> dwReserved);
        </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">uint</span><span style="color: #000000; "> EWX_REBOOT </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">2</span><span style="color: #000000; ">;
        </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">const</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">uint</span><span style="color: #000000; "> EWX_POWEROFF </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">8</span><span style="color: #000000; ">;

        </span><span style="color: #808080; ">///</span><span style="color: #008000; ">重启操作系统</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> RootWindows()
        {
            ExitWindowsEx(EWX_REBOOT, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);
        }

        </span><span style="color: #808080; ">///</span><span style="color: #008000; ">关闭操作系统</span><span style="color: #808080; ">
</span><span style="color: #000000; ">        </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> ShutDownWindows()
        {
            ExitWindowsEx(EWX_POWEROFF, </span><span style="color: #000000; ">0</span><span style="color: #000000; ">);
        }</span></div>
</pre>
</div>
<p>&nbsp;</p>
<p>以上代码的运行环境和开发环境：windows mobile5.0 +ppc sdk +vs2005</p>
<p>本文地址：<a href="http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html">http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html</a></p>
<p class="akst_link">
</p>
	<h4>你可能也会喜欢以下文章：</h4>
	<ul class="st-related-posts">
	<li><a href="http://www.watch-life.net/vs2005/vss2005-internet.html" title="vss2005，支持internet访问，进步不大？ (2006-09-29)">vss2005，支持internet访问，进步不大？</a> (2)</li>
	<li><a href="http://www.watch-life.net/windows-mobile/windows-mobile-sms-received-mapirule.html" title="windows moblie 5.0在托管程序中实现短信接收和拦截 (2008-01-12)">windows moblie 5.0在托管程序中实现短信接收和拦截</a> (1)</li>
	<li><a href="http://www.watch-life.net/visual-studio/vs2008-sp1-intellisense.html" title="中文版Visual Studio 2008  SP1 智能提示为英文的补丁发布 (2008-11-28)">中文版Visual Studio 2008  SP1 智能提示为英文的补丁发布</a> (3)</li>
	<li><a href="http://www.watch-life.net/it-review/visual-studio-2008-ambition.html" title="&#8220;Visual Studio 2008&#8243;背后的勃勃野心 (2008-02-10)">&#8220;Visual Studio 2008&#8243;背后的勃勃野心</a> (0)</li>
	<li><a href="http://www.watch-life.net/vs2005/vs2005-tools-lost.html" title="vs2005 工具箱控件消失的解决办法 (2007-02-01)">vs2005 工具箱控件消失的解决办法</a> (1)</li>
	<li><a href="http://www.watch-life.net/windows-mobile/windows-mobile-sim.html" title="Windows mobile 下读取手机SIM卡信息 (2007-02-07)">Windows mobile 下读取手机SIM卡信息</a> (3)</li>
	<li><a href="http://www.watch-life.net/aspnet/aspnet-textbox-readonly.html" title="比较郁闷的textbox（asp.net 2.0）控件 (2007-11-07)">比较郁闷的textbox（asp.net 2.0）控件</a> (0)</li>
	<li><a href="http://www.watch-life.net/aspnet/iis-contorl-err.html" title="创建控件时出错/lm/w3svc/&#8230; 不是一个有效的iis应用程序&#8221; 的解决办法 (2007-12-13)">创建控件时出错/lm/w3svc/&#8230; 不是一个有效的iis应用程序&#8221; 的解决办法</a> (0)</li>
</ul>

转载请注明作者，出处，以及原始超链接。<br />评论数：5 | <b><a href='http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html#comment'>评论这篇文章</a></b>|关注作者最近动态,欢迎 follow me <a href='https://twitter.com/xjb' target='_blank'>xjb@twitter.com</a>|联络作者：iamxjb@gmail.com<br/>© 2010 守望轩 <a href='http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html'>www.watch-life.net</a>]]></content:encoded>
			<wfw:commentRss>http://www.watch-life.net/windows-mobile/process-window-form-system-manager.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
