有没有可以控制一个程序不能单独运行,但可以被另一个程序调用运行?
解决方案 »
- 求救,delphi7根据x=3,y=4形成一个lable控件数组,然后给控件的caption赋值。
- 基础问题
- 哪里有<<DELPHI源代码分析>>的电子书下载
- 当oracle9i遭遇到windows server 2003(或windows xp),而你又在com+环境中使用了事务组件...
- 将一个实型的数四舍五入到小数点后两位,然后用label显示出来,如何实现?
- 串口调试助手2.1不能发数据了,有人知是什么原因吗??
- 如何用BDE在WIN2000中存取图片字段
- 急,怎样设置QQ的socket5代理呢??公司将QQ的端口给锁了。。。那位大峡有办法??
- E-R图设计求助
- 各位前辈,我是一位Delphi的菜鸟,现有个小小的问题请教。
- 急!急!急!急!请朋友们帮忙,十分感谢!
- 用ole创建application.excel做报表时,怎样实现强制分页?
你可以在程序A启动是检测调用参数,如果没有的话就退出
程序B调用程序A的时间传入参数!!不知道你有没有明白??!================================================================
◆◆◆ CSDN查询助手,查询方便快捷◆◆◆ 下载地址:
http://CoolSlob.ifood1.com/Download/CSDNFinder.exe
http://CoolSlob.8u8.com/Download/Tools/CSDNFinder.Slob[更名为.exe即可]
在B程序中project里写 Application.Initialize;
if ParamStr(1) = 'runcode'
then begin
Application.CreateForm(TForm1, Form1);
Application.Run;
end else Application.Terminate;
参数2:s1的crc校验码。B受到2个参数之后,用事先约定的密钥m解开参数1,即s2->s3,并对解密初的s3进行crc校验,如果校验码和参数2一样,那么表示解密成功。就可以继续运行,否则halt;这可以在某种程度上避免别人模仿那个固定的参数而“非法”调用B.
但是一旦事先约定好并固化的m被发现,彻底崩溃。
你可以这样。
假设有A。EXE 和B。EXE 两个文件。
在A的Project里面写var handle:integer;begin
handle:=findwindow(classname,nil);/查找B的类名
if handle=0 then
begin
messagebox(0,'该程序必须要通过B调用!','运行',0);
halt;
end;
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
不行你找我...
在Project的useswindows, //加入该句才能调用函数const classname='B的类名';
//CreateMutex(Nil, true, 'SDEEEGGHHFF');
在被调用的程序的dpr里Use Windows,
begin
if OpenMutex(MUTEX_ALL_ACCESS,false,pchar('SDEEEGGHHFF'))<> 0 then
begin
Application.Initialize;
Application.CreateForm(TFlashWindow, FlashWindow);
Application.Run;
end
else //你的提示
end.
◆◆◆ CSDN查询助手,查询方便快捷◆◆◆ 下载地址:
http://CoolSlob.ifood1.com/Download/CSDNFinder.exe
http://CoolSlob.8u8.com/Download/Tools/CSDNFinder.Slob[更名为.exe即可]
2做成DLL调用,最好也加参数
3被调用程序自动判断调用程序
(FindGlobalAtom?)就不继续执行,否则执行。主程序执行完后删除原子(GlobalDeleteAtom?),具体函数计不清了,可以查查MSDN