wince下面怎么获取进程,并关闭!

宫徵羽   2009-1-16 09:49 楼主
情况是这样的:
   我有个WINCE下面的程序,要求点2次他不执行2次,也就说程序只能运行一次,我要用的方法是获取进程的方法然后关闭!让他在界面上只能有一个程序处于执行状态。
我原来在.NET FRAMWORK下面写的代码是这样的:
  static void Main()
        {
            if (!IsExistProcess())
            {
                Application.Run(new Form1());
            }
            else
            {
                Application.Exit();
            }   
        }
        private static bool IsExistProcess()
        {
            bool result = false;
            Process[] p = Process.GetProcessesByName(Path.GetFileNameWithoutExtension(Application.ExecutablePath));
            if (p != null && p.Length > 1)
            {
                result = true;
            }
            return result;
        }   

但是我在WINCE下面不知道怎么写了?   有没有会在WINCE下面获取进程的方式来关闭这个?
(别的方法不用说了,比如文本的方法那些都不用说了,我问的只是在这种获取进程并关闭多余程序的方法)

回复评论 (21)

用Mutex
还有FindWindow
去判断是否已经启动了一个应用的实例,如果存在就退出。
点赞  2009-1-16 10:48
具体怎么写?  兄弟帮帮忙啊
点赞  2009-1-16 10:50
启动的时候创建一个Muxtex对象,要有名的,也就是名字参数要唯一。
HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,
  BOOL bInitialOwner,
  LPCTSTR lpName
);

如果Muxtex创建成功
调用 GetLastError 如果 如果返回值是ERROR_ALREADY_EXISTS,证明这个Mutex已经被创建过,就是有一个,实例已经运行,则你的应用退出。
如果返回值不为ERROR_ALREADY_EXISTS,则程序正常执行;

点赞  2009-1-16 10:56
HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,
  BOOL bInitialOwner,
  LPCTSTR lpName
);
小弟新手,上面这段代码我写在C#里面他没有变色?  怎么个写法?  我有点迷糊   麻烦再详细指点下可否?
点赞  2009-1-16 11:01
C# 也能用互斥量吧
CreateMutex  在CoreDll.Dll中,至于C#中怎么调用你该会吧,我可不会,我不懂C#。
点赞  2009-1-16 11:04
晕  死
点赞  2009-1-16 11:08
有没有会的啊?  在线等  答对就给分了   大家快上啊
点赞  2009-1-16 11:29
不用吧,只需要在初始化(未显示界面前)时,检测一个标志量(比如一个互斥量,或者程序的标题),如果已存在,就不运行,并将已存在的程序调到前台即可。
点赞  2009-1-16 11:37
具体怎么写呢?   告诉我下 好吗?
点赞  2009-1-16 11:38
互斥量和窗口调用没找过?google一下。在windows下这是基础知识,资料很多。

一般这里提供解决思路、解决方案,但是不建议给代码。
点赞  2009-1-16 11:39
兄弟我的是WINDOWSCE下面的   不是WINDOWS下面的  我在WINCE的GOOLE下面根本查不到  怎么回事
WINDOWS下的我已经搞定了   就是WINCE下面的查不到资料  我没办法弄
点赞  2009-1-16 11:43
有没有会的 快点啊  我着急  在线等
点赞  2009-1-16 11:54
有人会吗?
点赞  2009-1-16 12:31
我都给你说的这么明白了,还搞不懂呀
点赞  2009-1-16 13:02
我也说 了  我水平有限    我没听懂你说的啥   我怎么搞啊  大兄弟?
我上面那个代码都是一个小例子 ,你说的 我连原理都不知道,你说的那个东西我都不知道是什么? 我怎么搞啊?
查也的查C#.NET CF下面的    我咋弄啊?
点赞  2009-1-16 13:08
你先理解了互斥量再说吧
点赞  2009-1-16 13:14
晕    算了  我自己再查查资料吧    问也问不出啥来
点赞  2009-1-16 13:17
我自己搞定了   哎   太无奈了     我命名问的是WINCE下面的  你们都答的WINDOWS下的   
而且还咋问都不告诉我  代码就10行   我服了     100分我仍了     太郁闷了   
我对这个帖子完全不满意
点赞  2009-1-17 09:56
请问以下 X87050418X
你是怎么解决的
我现在也遇到这样的问题吖....
点赞  2009-2-20 09:32
12下一页
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复