社区
C++ Builder
帖子详情
怎样在系统中只起动一个程序,即在系统的进程中只看到一个程序?
jerry_cao
2003-09-15 10:09:34
我有一台win server,有两台终端通过win客户端连接进来,但我只能让一台终端启动程序,而不能让两台终端同时启动程序,或让一台终端启动两个实例,我该怎样做,Help me!
...全文
25
11
打赏
收藏
怎样在系统中只起动一个程序,即在系统的进程中只看到一个程序?
我有一台win server,有两台终端通过win客户端连接进来,但我只能让一台终端启动程序,而不能让两台终端同时启动程序,或让一台终端启动两个实例,我该怎样做,Help me!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
congliu
2004-03-09
打赏
举报
回复
gz
eccalc
2004-03-09
打赏
举报
回复
互斥对象的方法不错!
不过它也有一定的缺陷,即在应用程序非法退出时,下一次就可能会被系统误解为已经有一个实例在运行,通常处理是重启计算机,这一点碰的不多。
一般处理:
设立两个变量,第一个是运行标志:程序启动时为true,关闭为false;另一个是正常退出标志:启动时为flase,在程序退出时设置为true;即正常退出时它能还原true值。
在程序启动时同时检测两个变量。发现正常退出标志为false时,无论运行标志如何,照样启动它,然后处理运行标志让它恢复正常!
asimpleman
2004-03-08
打赏
举报
回复
up
oceankang
2003-09-15
打赏
举报
回复
CreateMutex(NULL,false,"大客户信息管理系统");
ErrCd = GetLastError();
if(ErrCd == ERROR_ALREADY_EXISTS)
{
Application->MessageBox(" 程 序 已 经 运 行!"," 警 告",MB_ICONSTOP);
return 0;
}
ccrun.com
2003-09-15
打赏
举报
回复
禁止让一台终端启动两个实例,可以用互斥。至于在服务端判断当前终端数量,如果是自己的程序,在socket连接中可以搞定。
ccrun.com
2003-09-15
打赏
举报
回复
禁止一台终端启动两个实例,这个可以用互斥。
baggio_zyj
2003-09-15
打赏
举报
回复
创建一个互斥对象:
createmutex(....);
用法自己查吧!
asimpleman
2003-09-15
打赏
举报
回复
gz
swites
2003-09-15
打赏
举报
回复
楼上大家说的对!
zhpsam109
2003-09-15
打赏
举报
回复
学习!
zihan
2003-09-15
打赏
举报
回复
如何防止一个没有窗体的WINDOWS程序的重复运行?
用互斥(Mutex),Mutex本来是多线程同步用的,防止
多个线程访问同一资源而引发冲突。用CreateMutex可以
创建Mutex对象,实质上是一个kernel对象。
在任何Win32程序(包括GDI和Console)的启动部分加上
以下代码(Console程序的main函数、MFC程序的CWinApp
派生类的InitInstance成员函数、RawSDK程序的WinMain
函数):
hMutex=CreateMutex(
NULL,//nosecurityattributes
FALSE,//initiallynotowned
"RunOnlyOneInstance");//命名Mutex是全局对象
//在所有的process都可以访问到
if(hMutex==NULL||
ERROR_ALREADY_EXISTS==::GetLastError()){
//程序第二次或以后运行时,会得到Mutex已经创建的错误
returnFALSE;
}
嘿嘿,是不是不用FindWindow优雅简洁多了?
另外,如果要限定程序同时可运行n个实例怎么办?
Tips:用信号量(Semaphore)。
透析Linux
系统
编程
当你在
系统
编程
中
,调用
一个
系统
调用来解决问题时,是否考虑过 该
系统
调用是否会对
系统
性能带来影响?是否还有最优的方式? 当你在
系统
编程过程
中
,遇到问题,是否只是检查代码逻辑,而不会去深入...
第九章、
程序
和
进程
的关系
程序
和
进程
的关系什么是
进程
?我们先来了解一下
进程
的概念:我们知道操作
系统
最核心的概念就是
进程
。
进程
简单来说就是在操作
系统
中
运行的
程序
,它是操作
系统
资源管理的最小单位。但是
进程
是
一个
动态的实体,它是
程序
的一次执行过程。
进程
和
程序
的区别在于:
进程
是动态的,
程序
是静态的,
进程
是运行
中
的
程序
,而
程序
是一些保存在硬盘上的可执行代码
程序
代码的
一个
或多个执行线程。
进程
状态
程序
:二进制文件,静态/bin/date,/usr/sbin/sshd
进程
:是
程序
运行的过程,动态,有生命周期及运行状态。
程序
进程
理论 线程背包含在
程序
,
进程
,线程的区别和联系
进程
和
程序
区别和联系表现在以下方面: 1)
程序
只是一组指令的有序集合,它本身没有任何运行的含义,它只是
一个
静态的实体。而
进程
则不同,它是
程序
在某个数据集上的执行。
进程
是
一个
动态的实体,它有自己的生命周期。它因创建而产生,因调度而运行,因等待资源或事件而被处于等待状态,因完成任务而被撤消。反映了
一个
程序
在一定的数据集上运行的全部动态过程。 2)
进程
和
程序
并不是一一对应的,
一个
程序
执行在不同的数据集上...
操作
系统
——
进程
进程
的定义
程序
:
一个
指令序列 PCB:
进程
控制块,用来描述
进程
的各种信息,是
系统
为每个运行的
程序
配置的
一个
数据结构。
程序
段、数据段、PCB三部分构成了
一个
进程
实体(
进程
映像)。一般情况下,
进程
实体就是
进程
。严格来说是不一样的,
进程
实体是静态的,
进程
是动态的。 PCB是
进程
存在的唯一标志
进程
的几种典型定义:(强调“动态性” ) 1.
进程
是
程序
的一次执行过程。 2.
进程
是
一个
程序
及其数据在处理机上顺序执行时所发生的活动。 3.
进程
是具有独立功能的
程序
在数据集上运行的过程,它是
系统
进行资源分配和调度的
一个
独
计算机操作
系统
原理:
进程
前言多道
程序
环境下,
程序
的执行是动态变化的,在
系统
中
处于“走走停停、停停走走”的运行状态。为了使
程序
能够并发执行,并能够如实反映
程序
活动的动态特征,操作
系统
引入了
进程
,以对并发执行的
程序
加以控制和描述。计算机
系统
中
CPU 是以
进程
为单位进行分配和管理的。正题在开始编写文章前,有几个问题需要思考一下:什么是
进程
?
进程
具有哪些状态?
进程
由哪几部分组成?什么是
进程
?
进程
的概念是 20 世纪 60 年代...
C++ Builder
13,822
社区成员
102,680
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章