有没有可以控制一个程序不能单独运行,但可以被另一个程序调用运行?(50分)

  • 主题发起人 主题发起人 d_delphi
  • 开始时间 开始时间
D

d_delphi

Unregistered / Unconfirmed
GUEST, unregistred user!
有没有可以控制一个程序不能单独运行,但可以被另一个程序调用运行?
 
在那个程序中判断调用程序是不是在运行

只有在加了正确的参数才能运行,在调用程序中用带参调用
 
带参数, 参数不对就禁止运行;
或者,
做成Dll
 
那就是动态连接库,为什么不做成动态连接库,想得这么复杂
 
主调程序代码:
var
FileName, Version: string;
ExeInfo: SHELLEXECUTEINFO;
begin
ExeInfo.cbSize := SizeOf(SHELLEXECUTEINFO);
ExeInfo.fMask := 0;
ExeInfo.Wnd := Handle;
ExeInfo.lpVerb := 'open';
//这里是要打开文件的绝对路径
ExeInfo.lpFile := 'C:/MyFile/MyExe.exe';
//写入参数,使用空格分开
ExeInfo.lpParameters := PChar(edtIP.Text + ' ' + edtPort.Text +
' ' + edtInterceptorGUID.Text);
ExeInfo.lpDirectory := 'C:/MyFile';
ExeInfo.nShow := SW_SHOWNORMAL;
ExeInfo.hInstApp := Handle;
ShellExecuteEx(@ExeInfo);
end;
被调程序的代码
if ParamCount = 0 then
begin
Application.MessageBox('客户端无法直接运行,请运行客户端加载程序启动系统!',
'非法运行', MB_OK + MB_ICONSTOP);
Application.Terminate;
end;
 
我也遇到类似的问题
听课
:)
 
用findwindow判断主控程序是否运行,然后决定是否退出
 
DLL就是这一类的.
也可以自己做一个这样的 EXE.然后自己建立进程.
但你必须先熟悉一下 PE 格式.
 
用信号量就行了!
 
这样做其实没什么意义,为什么要限制运行呢?要不都做在一个项目中,不就没问题了吗?
我真的不明白,好想是没事情找事情做。如果是为了重复使用,做成DLL最好。
 
首先一个程序是不能单独运行,做成dll好了。
别的程序运行中调用他不就得了,呵呵,town说得很对。
 
理由和用途?
 
接受答案了.
 
后退
顶部