社区
C++ Builder
帖子详情
怎样在系统中只起动一个程序,即在系统的进程中只看到一个程序?
jerry_cao
2003-09-15 10:09:34
我有一台win server,有两台终端通过win客户端连接进来,但我只能让一台终端启动程序,而不能让两台终端同时启动程序,或让一台终端启动两个实例,我该怎样做,Help me!
...全文
30
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
系统
编程
本课程的主题是: 透析Linux
系统
编程 不同于市面上的课程,只会把核心主题放到函数的讲解,本课程的核心主题是 Linux
系统
编程的经验总结 ; 当你在
系统
编程
中
,调用
一个
系统
调用来解决问题时,是否考虑过 该
系统
调用是否会对
系统
性能带来影响?是否还有最优的方式? 当你在
系统
编程过程
中
,遇到问题,是否只是检查代码逻辑,而不会去深入底层去查找问题 ? 本课程将一一解决
系统
编程带给你的难点,疑点? 比如控制文件IO章节,给出
系统
文件操作的默认行为,应用
中
如何修改这些行为,给出文件IO操作的最优方式; 比如
系统
调用,给出
系统
调用原理;
系统
调用的正确使用方式等 比如
进程
实现,结合底层,对比线程,深入理解两者;给出
进程
使用经验总结; 比如线程同步,不仅引出互斥锁 条件变量 自旋锁 读写锁使用方式,同时给出各个机制的应用场景 ; 比如
进程
间通信,引出各个
进程
间通信的机制原理,给出各个
进程
间通信的应用场景; 比如 信号,给出信号在
进程
中
信号处理处理函数的正确使用方式,给出在多线程
中
信号处理的正确方式; 比如 共享库,给出共享库的实现机制,给出共享库的正确使用方式; 同时 会讲解
系统
安全问题 ; 可执行
程序
的静态布局和动态布局 ;灵活使用内存映射和虚拟内存;
系统
事件跟踪; 给出
程序
性能的调优思路; 丰富的项目实例讲解 ,提供宝贵的商业项目开发经验 ;
RK3399 Android
系统
10.0 init
进程
启动
课程简述 Android是目前最为流行的移动操作
系统
之一,它的开发涉及到多个知识领域。本课程将深入介绍Android
系统
启动过程
中
的重要组成部分——init
进程
,并探讨与之相关的多项关键技术。我们还将提供实际的开发案例,以RK3399开发板为例,通过演示Android产品配置、init启动流程、selinux权限管理、init.rc启动脚本定制等实际案例,让学员深入理解这些技术在实际产品开发
中
的应用场景和实现方法,提高学员的实际开发能力和经验,从而更好地应对实际产品开发
中
遇到的问题和挑战。知识运用方向学习Android启动方面的知识,可以参与如下实际开发工作项:启动流程定制: 根据产品需求调整Android启动流程,包括修改init.rc脚本、修改启动顺序和等待时间、加入自定义服务等。属性
系统
定制: 通过Android属性
系统
定制化启动流程,例如增加产品版本信息、定制开机音量等。日志
系统
分析: 掌握日志的捕捉、分析和排错技术,在启动过程
中
,需要加入调试信息来方便开发人员进行调试,同时需要进行日志的优化,避免日志输出过多占用过多的
系统
资源。selinux安全策略定制:在Android
系统
中
,selinux是一种安全机制,用于保护
系统
的敏感资源和数据。在实际开发
中
,可能需要对selinux策略进行定制,以确保
系统
的安全性和稳定性。课程内容主要内容简述1, RK3399 开发板操作这部分内容重点介绍如何在FIreFly开发板上将Android 10
系统
运行起来, 包含编译FireFly的Android源码下载和编译, 镜像烧录运行,内核和模块编译,以及RK3399内核启动init
进程
的过程。2, 产品定制这部分讲解获取到方案商或者原厂提供的源码后, 如何定制
一个
新的产品,产品配置文件和模型, 原始代码
中
的配置文件和定制化东西3, Android日志代码编写之前讲过Android的日志
系统
, 并没涉及到代码编写, 这个部分重点讲解C/C++, java代码编写日志的API和代码4, 属性
系统
在Android
中
,属性使用的非常频繁的,可以用来作为
进程
间通信,也可以用于一些行为控制, 这个部分会重点介绍属性
系统
框架, API接口, 属性文件等知识点5,selinux
进程
对文件进行访问时,Android 4.3就开始集成了selinux权限管控, 如果需要启动某个脚本或者服务, selinux的配置就避免不了,并且Android8之后, Android
系统
对
进程
访问的权限管控的非常严格。6, init.rc脚本Android定义的一种脚本, 改脚本是有init
进程
启动, 是非常重要的
一个
脚本, 会包含
系统
中
的其他很多脚本, 在我们
系统
开发时, 我们经常通过这个脚本进行一些定制化动作。7, init
进程
代码分析想要了解
一个
系统
,就必须对源码进行分析和理解, 这个章节,带大家去跟读init
进程
代码, 这样,换了另外
一个
Android版本,完全就可以去读代码, 知道有什么变化。
Linux
系统
编程第06期:从零实现
一个
shell解释器
在Linux环境下,shell是
一个
位于操作
系统
和用户应用
程序
之间的工具,我们在shell终端下敲入命令并运行,或者直接运行
一个
脚本文件,这背后都是shell在帮助我们解析命令并创建
一个
个子
进程
去执行。为了更深一层去探寻shell背后的机制原理、加深对Linux
系统
的理解,本课程将带领大家,从零开始一步一步实现
一个
shell解释器:wsh,主要实现以下功能: 可以在shell交互窗口
中
执行用于输入的shell命令 实现shell的内建命令:cd、exit、export等 支持管道命令 | 支持
进程
的后台执行 支持脚本的解析和运行 支持脚本简单的if-else控制语法 支持信号的处理操作
android framework实战-跨
进程
通信binder专题
千里马8年Android
系统
及应用开发经验,曾担任过美国unokiwi公司移动端技术总监兼架构师,对
系统
开发,性能优化,应用高级开发有深入的研究,Android开源定制ROM Lineage的贡献者之一,国内首家线下开辟培训Android Framework课程,拥有2年的Android
系统
培训经验。成为腾讯课堂专业负责android framework课程分享第一人,致力于提高国内android Framework水平Android Framework领域内是国内各大手机终端科技公司需要的人才,应用开发者都对Android
系统
充满着好奇,其
中
的binder是重
中
之重,都说无binder无Android,binde是Android
系统
的任督二脉。课程水平循序渐进,由
中
级再到高级,满足各个层次水平的android开发者。1、灵活使用binder跨
进程
通信,在app端对它的任何api方法等使用自如2、可以单独分析android
系统
源码
中
任何binder部分,分析再也没有难度3、掌握binder驱动本质原理,及对应binder驱动怎么进行跨
进程
通信,及内存等拷贝方式数据等4、对binder从上层的java app端一直到最底层的内核binder驱动,都可以顺利理通5、针对
系统
开发过程
中
遇到的binder报错等分析方法,及binder bug案例学习6、针对面试官任何的binder问题都可以对答自如7、socket这种跨
进程
通信实战使用8、针对android源码
中
使用的socket源码轻松掌握9、android
系统
源码
中
最常见的socketpair
中
双向跨
进程
通信10、使用socket实现
一个
可以让app执行shell命令的
程序
Linux
系统
编程第05期:
进程
间通信
Linux
系统
提供了各种
系统
调用API用于
进程
之间的通信: 无名管道PIPE 命名管道FIFO 消息队列 共享内存 信号量 文件锁 信号signal....其
中
还包括system V和POSIX 两种接口标准,除此之外,Linux
系统
自身还扩展了自己的一套API接口用于
进程
间通信,比如signalfd、timerfd、eventfd等。本视频教程为《Linux
系统
编程》第05期,本期课程将会带领大家学习Linux下将近15种
进程
间通信IPC工具的使用,了解它们的通信机制、编程实例、使用场景、内核
中
的实现以及各自的优缺点。本课程会提供PDF版本的PPT课件和代码,学员购买课程后可到课程主页自行下载嵌入式自学路线指导图:------------------------------------------------------------------------------------------------------ 《嵌入式工程师自我修养》嵌入式自学系列教程 作者:王利涛------------------------------------------------------------------------------------------------------一线嵌入式工程师精心打造,嵌入式学习路线六步走: 第 1 步:Linux三剑客零基础玩转Linux+UbuntuGit零基础实战:Linux开发技能标配vim从入门到精通基础篇:零基础学习vim基本命令vim从入门到精通定制篇:使用插件打造嵌入式开发IDEmakefile工程实践基础篇:从零开始一步一步写项目的Makefilemakefile工程实践第2季:使用Autotools自动生成Makefile软件调试基础理论printf打印技巧Linux内核日志与打印使用QEMU搭建u-boot+Linux+NFS嵌入式开发环境第 2 步:C语言嵌入式Linux高级编程第1期:C语言进阶学习路线指南第2期:计算机架构与ARM汇编
程序
设计第3期:
程序
的编译、链接和运行原理第4期:堆栈内存管理第6期:数据存储与指针第7期:嵌入式数据结构与Linux内核的OOP思想第8期:C语言的模块化编程第9期:CPU和操作
系统
入门 搞内核驱动开发、光会C语言是不行的! 你还需要学习的有很多,包括:计算机体系架构、ARM汇编、
程序
的编译链接运行原理、CPU和操作
系统
原理、堆栈内存管理、指针、linux内核
中
的面向对象思想、嵌入式
系统
架构、C语言的模块化编程.....第 3 步:Linux
系统
编程第00期:Linux
系统
编程入门第01期:揭开文件
系统
的神秘面纱第02期:文件I/O编程实战第03期:I/O缓存与内存映射第04期:打通
进程
与终端的任督二脉第05期:
进程
间通信-------------------we are here! 第 4 步:Linux内核编程 练乾坤大挪移,会不会九阳神功,是一道坎。搞驱动内核开发,懂不懂内核也是一道坎。第 5 步:嵌入式驱动开发 芯片原理、datasheet、硬件电路、调试手段、总线协议、内核机制、框架流程....第 6 步:项目实战 嵌入式、嵌入式人工智能、物联网、智能家居...
C++ Builder
13,825
社区成员
102,678
社区内容
发帖
与我相关
我的任务
C++ Builder
C++ Builder相关内容讨论区
复制链接
扫一扫
分享
社区描述
C++ Builder相关内容讨论区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章