10654|21

95

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

wince下面怎么获取进程,并关闭! [复制链接]

情况是这样的:
   我有个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下面获取进程的方式来关闭这个?
(别的方法不用说了,比如文本的方法那些都不用说了,我问的只是在这种获取进程并关闭多余程序的方法)

最新回复

#region Api_Call CreateMutex;             IntPtr hMutex;             hMutex = CreateMutex(null, false, "Manager");             if (GetLastError() != ERROR_ALREADY_EXISTS)             {                 Application.Run(new FrmMainForm());             }             else             {                 ReleaseMutex(hMutex);             }             #endregion const int ERROR_ALREADY_EXISTS = 0183;         [DllImport("coredll.Dll")]         private static extern int GetLastError();         [DllImport("coredll.Dll")]         private static extern int ReleaseMutex(IntPtr hMutex);         [DllImport("coredll.Dll")]         private static extern IntPtr CreateMutex(SECURITY_ATTRIBUTES lpMutexAttributes, bool bInitialOwner, string lpName);         [StructLayout(LayoutKind.Sequential)]         public class SECURITY_ATTRIBUTES         {             public int nLength;             public int lpSecurityDescriptor;             public int bInheritHandle;         }   详情 回复 发表于 2010-5-7 16:36
点赞 关注

回复
举报

105

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
用Mutex
还有FindWindow
去判断是否已经启动了一个应用的实例,如果存在就退出。
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
具体怎么写?  兄弟帮帮忙啊
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

4
 
启动的时候创建一个Muxtex对象,要有名的,也就是名字参数要唯一。
HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,
  BOOL bInitialOwner,
  LPCTSTR lpName
);

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

 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
HANDLE CreateMutex(
  LPSECURITY_ATTRIBUTES lpMutexAttributes,
  BOOL bInitialOwner,
  LPCTSTR lpName
);
小弟新手,上面这段代码我写在C#里面他没有变色?  怎么个写法?  我有点迷糊   麻烦再详细指点下可否?
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

6
 
C# 也能用互斥量吧
CreateMutex  在CoreDll.Dll中,至于C#中怎么调用你该会吧,我可不会,我不懂C#。
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

7
 
晕  死
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

8
 
有没有会的啊?  在线等  答对就给分了   大家快上啊
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

9
 
不用吧,只需要在初始化(未显示界面前)时,检测一个标志量(比如一个互斥量,或者程序的标题),如果已存在,就不运行,并将已存在的程序调到前台即可。
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

10
 
具体怎么写呢?   告诉我下 好吗?
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

11
 
互斥量和窗口调用没找过?google一下。在windows下这是基础知识,资料很多。

一般这里提供解决思路、解决方案,但是不建议给代码。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

12
 
兄弟我的是WINDOWSCE下面的   不是WINDOWS下面的  我在WINCE的GOOLE下面根本查不到  怎么回事
WINDOWS下的我已经搞定了   就是WINCE下面的查不到资料  我没办法弄
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

13
 
有没有会的 快点啊  我着急  在线等
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

14
 
有人会吗?
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(初级)

15
 
我都给你说的这么明白了,还搞不懂呀
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

16
 
我也说 了  我水平有限    我没听懂你说的啥   我怎么搞啊  大兄弟?
我上面那个代码都是一个小例子 ,你说的 我连原理都不知道,你说的那个东西我都不知道是什么? 我怎么搞啊?
查也的查C#.NET CF下面的    我咋弄啊?
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

17
 
你先理解了互斥量再说吧
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

18
 
晕    算了  我自己再查查资料吧    问也问不出啥来
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

19
 
我自己搞定了   哎   太无奈了     我命名问的是WINCE下面的  你们都答的WINDOWS下的   
而且还咋问都不告诉我  代码就10行   我服了     100分我仍了     太郁闷了   
我对这个帖子完全不满意
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

20
 
请问以下 X87050418X
你是怎么解决的
我现在也遇到这样的问题吖....
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表