hs程序之启动(保证程序单实例、 程序自启动、判断程序是否有实例运行、查找对话框窗体)

 

2010-04-29

如何保证单实例运行

 

对有窗口的程序_WINMAIN 入口函数的

可以通过 FindWindow来查找是否有窗口存在而跳出启动的进程来保证单例

 

而我需求的这个程序需要没界面的进程常驻内存,所以我决定以_tmain()作为程序入口,

 

在需要UI时createWindow 但经过实验发现还是DialogBox(模态对话框)适合我的需求

 

由于程序自启动时是不需要界面的,所以我想,由程序自启动时传入启动参数标明 程序为自启动

而无需启动界面,

当程序由用户激活,则不传启动参数,程序会启动UI,但是当用户点退出,则销毁这个界面,程序继续驻如内存,

 

以后用户再激活程序,则查找是否存在UI窗口,找到则把窗口置前,然后退出当前进程,保证单例,

如果没有找到 则创建UI界面,用户操作完成 销毁UI,然后判断是否已经存在同名进程,如果存在则返回,结束当前进程

 

 

然后说一下如何让程序 开机自启动

 

网上说 (WinCE):

[HKEY_LOCAL_MACHINE/init]

替代explorer.exe 这项

但是我没找到这项(windows mobile)

我就自己加了一项

Launch123   程序绝对路径

Depend123 0

重启机器,程序启动成功,并且传入参数, 这个参数就是Launch后面的数字(传入时 为字符串型)

我在想能不能传入字符作为参数呢,多种尝试 均失败

 

最后就想那就传入一个有意义的数字吧

就以我们程序的名字的首字母的Asiic码值作为启动参数7283

好了自启动 及自启动的判断也有了开始程序吧

 

 

//----------------------------------------------------------------

//如何查找一个对话框窗体

1.在对话框初始化函数里 SetWindowText(hWndDlg, TEXT("FindDlg"));

2.可以去查找了 (HWND hWnd = FindWindow(NULL, TEXT("FindDlg")));

哈哈找到了

 

具体代码:

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值