小编Mig*_*tov的帖子

每台计算机应用程序的一个实例,如何?

我试图让我的应用程序只在计算机上运行一次,我的应用程序需要通信到web服务,所以让它运行不止一次是不好的,目前我正在使用Mutex:

MyMsg := RegisterWindowMessage('My_Unique_App_Message_Name');
Mutex := CreateMutex(nil, True, 'My_Unique_Application_Mutex_Name'); 
if (Mutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then
exit;
Run Code Online (Sandbox Code Playgroud)

目前这可以限制每个用户的1个应用程序实例,但我的应用程序正在Windows服务器环境中使用,其中有20个用户同时进入,所以我需要严格要求每个服务器只运行一次,我的我试图做的是声明Mutex作为全局互斥,但我没有这样做,当我做下一个代码它根本不起作用.

 MyMsg := RegisterWindowMessage('My_Unique_App_Message_Name');
 Mutex := CreateMutex(nil, True, 'Global\My_Unique_Application_Mutex_Name'); 
 if (Mutex = 0) OR (GetLastError = ERROR_ALREADY_EXISTS) then
 begin
 exit
Run Code Online (Sandbox Code Playgroud)

我做错了什么?有没有其他可靠的方法不让我的应用程序的第二个实例运行?

delphi mutex

7
推荐指数
1
解决办法
4968
查看次数

如何使用Delphi在Win7防火墙中打开端口

我想在Windows 7防火墙中打开一个端口,用于通过Delphi进行端口转发,但正如其他线程所述,Windows 7在防火墙中有多个配置文件(公共,私有),下一个代码只会将例外添加到其中一个.

码:

procedure addPortToFirewall(EntryName:string;PortNumber:Cardinal); 
Const 
  NET_FW_PROFILE_DOMAIN = 0; 
  NET_FW_PROFILE_STANDARD = 1; 
  NET_FW_IP_VERSION_ANY = 2; 
  NET_FW_IP_PROTOCOL_UDP = 17; 
  NET_FW_IP_PROTOCOL_TCP = 6; 
  NET_FW_SCOPE_ALL = 0; 
  NET_FW_SCOPE_LOCAL_SUBNET = 1;var 
  fwMgr,port:OleVariant; 
  profile:OleVariant; 
begin 
  fwMgr := CreateOLEObject('HNetCfg.FwMgr'); 
  profile := fwMgr.LocalPolicy.CurrentProfile; 
  port := CreateOLEObject('HNetCfg.FWOpenPort'); 
  port.Name := EntryName; 
  port.Protocol := NET_FW_IP_PROTOCOL_TCP; 
  port.Port := PortNumber; 
  port.Scope := NET_FW_SCOPE_ALL; 
  port.Enabled := true; 
  profile.GloballyOpenPorts.Add(port); 
end; 
Run Code Online (Sandbox Code Playgroud)

我知道这是用于Windows XP的代码,但是Win 7的代码无法找到如何打开端口而不是应用程序.

码:

procedure TForm1.Button4Click(Sender: TObject);
const
NET_FW_PROFILE2_DOMAIN  = 1;
NET_FW_PROFILE2_PRIVATE = 2;
NET_FW_PROFILE2_PUBLIC  = 4;
NET_FW_IP_PROTOCOL_TCP = 6;
NET_FW_ACTION_ALLOW    = 1; …
Run Code Online (Sandbox Code Playgroud)

windows delphi port firewall delphi-xe2

6
推荐指数
1
解决办法
3817
查看次数

标签 统计

delphi ×2

delphi-xe2 ×1

firewall ×1

mutex ×1

port ×1

windows ×1