zoukankan      html  css  js  c++  java
  • Delphi 服务程序[4] 两栖服务(系统服务和桌面程序)

    Delphi 服务程序[4] 两栖服务(系统服务和桌面程序)

    方法1:

    uses
      {$IFDEF DEBUG}
      Forms,
      {$ELSE}
      SvcMgr,
      {$ENDIF}
      Unit1 in 'Unit1.pas' {SerTest: TSerT},
      Unit2 in 'Unit2.pas' {Form2};
    
    {$R *.RES}
    
    begin
      Application.Initialize;
      {$IFDEF DEBUG}
      Application.CreateForm(TForm2, Form2);
      {$ELSE}
      Application.CreateForm(TSerTest, SerTest);
      {$ENDIF}
      Application.Run;
    

    方法2:

    uses
      SvcMgr,
      Forms,
      SysUtils,
      Windows,
      Dialogs,
      Unit2 in 'Unit2.pas' {Form2},
      Unit1 in 'Unit1.pas' {SerTest: TService};
    
    {$R *.RES}
    
    const
      CSMutexName = 'GlobalServices_Application_Mutex';
    
    var
      OneInstanceMutex: THandle;
      SecMem: SECURITY_ATTRIBUTES;
      aSD: SECURITY_DESCRIPTOR;
    
    begin
      InitializeSecurityDescriptor(@aSD, SECURITY_DESCRIPTOR_REVISION);
      SetSecurityDescriptorDacl(@aSD, True, nil, False);
      SecMem.nLength := SizeOf(SECURITY_ATTRIBUTES);
      SecMem.lpSecurityDescriptor := @aSD;
      SecMem.bInheritHandle := False;
      OneInstanceMutex := CreateMutex(@SecMem, False, CSMutexName);
      if (GetLastError = ERROR_ALREADY_EXISTS) then
      begin
        ShowMessage('程序或服务已经运行!');
        Exit;
      end;
      if FindCmdLineSwitch('svc', True) or FindCmdLineSwitch('install', True) or FindCmdLineSwitch('uninstall', True) then
      begin
        SvcMgr.Application.Initialize;
        SvcMgr.Application.CreateForm(TSerTest, SerTest);
        SvcMgr.Application.Run;
      end
      else
      begin
        Forms.Application.Initialize;
        Forms.Application.CreateForm(TForm2, Form2);
        Forms.Application.Run;
      end;
    

      

     

    创建时间:2021.01.21  更新时间:

    博客园 滔Roy https://www.cnblogs.com/guorongtao 希望内容对你所有帮助,谢谢!
  • 相关阅读:
    java课堂作业(四)
    java听课笔记(五)
    rsync 无密码传输文件
    HTTP返回码总结 (zz)
    打印1到最大的n位数
    两个栈模拟队列
    合并有序数组
    vim MiniBufExplorer 插件
    crontab 定时任务格式
    JNI调用测试
  • 原文地址:https://www.cnblogs.com/guorongtao/p/14306542.html
Copyright © 2011-2022 走看看