亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? psl_1_stop.pas

?? this is sample for traders
?? PAS
字號:
unit psl_1_STOP;

{
Copyright (C) 2004 Oleg Subachev
oleg@posolsoft.com


Prevents launching of the second instance of the application
but activates the first instance at the same time.
If second instance is launched with 'STOP' command line argument,
then the first instance is terminated but not activated.

Usage:

Changing in project file:

a) add psl_1_STOP in 'uses' clause

b) change project body as follows:

  if psl1_IS_1ST_INSTANCE( True ) then begin
// prevents launching of the second instance of the application from any directory
//  if psl1_IS_1ST_INSTANCE( False ) then begin
// prevents launching of the second instance of the application from the same directory
    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;
  end
  else
    psl1_ACTIVATE_OR_STOP_1ST_INSTANCE;
}

interface

function psl1_IS_1ST_INSTANCE( const bFROM_ANY_DIR : Boolean = True ) : Boolean;
{
bFROM_ANY_DIR = True (default) - prevents launching of the second instance
of the application from any directory
bFROM_ANY_DIR = False - prevents launching of the second instance
of the application from the same directory
}

procedure psl1_ACTIVATE_OR_STOP_1ST_INSTANCE;

implementation

uses
  Windows, SysUtils, Forms;

var
  psl1_1ST_MESSAGE,
  psl1_STOP_MESSAGE : UINT;
  psl1_MUTEX,
  psl1_SHARED_FILE : THandle;
  psl1_SHARED_DATA : ^HWND;
  psl1_PREV_WND_PROC : TFNWndProc;

function psl1_CreateMutex(lpMutexAttributes: PSecurityAttributes;
  bInitialOwner: Longint; lpName: PChar): THandle;
  stdcall; external 'kernel32.dll' name 'CreateMutexA';

function psl1_WND_PROC( Handle : HWND; MSSG : UINT;
  wParam, lParam : Longint ) : Longint; stdcall;
begin
  if MSSG = psl1_1ST_MESSAGE then begin
    Application.Restore;
    Application.BringToFront;
    Result := 0;
  end
  else
  if MSSG = psl1_STOP_MESSAGE then begin
    Application.Terminate;
    Result := 0;
  end
  else
    Result := CallWindowProc( psl1_PREV_WND_PROC, Handle, MSSG, wParam, lParam );
end;                                                            // psl1_WND_PROC

function psl1_LAST_MAX_PATH( const sNAME : String ) : String;
begin
  if Length( sNAME ) > MAX_PATH then
    Result := Copy( sNAME, Length( sNAME ) - MAX_PATH + 1, MAX_PATH )
  else
    Result := sNAME;
end;                                                       // psl1_LAST_MAX_PATH

function psl1_IS_1ST_INSTANCE( const bFROM_ANY_DIR : Boolean = True ) : Boolean;
var
  PS0 : String;                                                 // ParamStr( 0 )
begin
  PS0 := ParamStr( 0 );
  if bFROM_ANY_DIR then            // use only filename to init names of objects
    PS0 := ExtractFileName( PS0 )
  else                                 // use full path to init names of objects
    // name of the object must not contain BackSlash
    PS0 := StringReplace( PS0, '\', '', [ rfReplaceAll ] );
  psl1_1ST_MESSAGE := RegisterWindowMessage(
    PChar( psl1_LAST_MAX_PATH( '8E43A11714D84D7D99A095BF3CF758BE' + PS0 )));
  Win32Check( psl1_1ST_MESSAGE <> 0 );
  psl1_STOP_MESSAGE := RegisterWindowMessage(
    PChar( psl1_LAST_MAX_PATH( 'F326903B6ED643DEA79D9F5BFEC2D8EB' + PS0 )));
  Win32Check( psl1_STOP_MESSAGE <> 0 );
  psl1_MUTEX := psl1_CreateMutex(
    Nil, 1, PChar( psl1_LAST_MAX_PATH( '0B18B76E492943FE97072DF38ED73BDA' + PS0 )));
  Win32Check( psl1_MUTEX <> 0 );
  Result := ( GetLastError <> Error_Already_Exists );
  try
    psl1_SHARED_FILE := CreateFileMapping( INVALID_HANDLE_VALUE, Nil, Page_ReadWrite,
      0, SizeOf( HWND ), PChar( psl1_LAST_MAX_PATH( '8789854C059D4E0B86A76907CA2E3086' + PS0 )));
    Win32Check( psl1_SHARED_FILE <> 0 );
    psl1_SHARED_DATA := MapViewOfFile( psl1_SHARED_FILE, File_Map_All_Access, 0, 0, 0 );
    Win32Check( psl1_SHARED_DATA <> Nil );
    if Result then begin
      psl1_SHARED_DATA^ := Application.Handle;
      psl1_PREV_WND_PROC := TFNWndProc( SetWindowLong( Application.Handle, GWL_WNDPROC,
        Longint( @psl1_WND_PROC )));
      Win32Check( psl1_PREV_WND_PROC <> Nil );
    end;
  finally
    if Result then
      Win32Check( ReleaseMutex( psl1_MUTEX ));
  end;
end;                                                     // psl1_IS_1ST_INSTANCE

procedure psl1_ACTIVATE_OR_STOP_1ST_INSTANCE;
begin
  WaitForSingleObject( psl1_MUTEX, INFINITE );
  try
    if FindCmdLineSwitch( 'STOP', [ '-', '/' ], True ) then
      PostMessage( psl1_SHARED_DATA^, psl1_STOP_MESSAGE, 0, 0 )
    else
      PostMessage( psl1_SHARED_DATA^, psl1_1ST_MESSAGE, 0, 0 );
  finally
    Win32Check( ReleaseMutex( psl1_MUTEX ));
  end;
end;                                       // psl1_ACTIVATE_OR_STOP_1ST_INSTANCE

initialization
finalization
  if Assigned( psl1_PREV_WND_PROC ) then
    SetWindowLong( Application.Handle, GWL_WNDPROC, Longint( psl1_PREV_WND_PROC ));
  if psl1_MUTEX <> 0 then
    CloseHandle( psl1_MUTEX );
  if psl1_SHARED_DATA <> Nil then
    UnmapViewOfFile( psl1_SHARED_DATA );
  if psl1_SHARED_FILE <> 0 then
    CloseHandle( psl1_SHARED_FILE );
end.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人你懂的| 欧美日韩高清在线| 久久久久久免费| www.一区二区| 日本va欧美va精品发布| 欧美理论电影在线| 国产成人av一区二区三区在线| 亚洲人成7777| 91精品国产乱码| bt欧美亚洲午夜电影天堂| 亚洲成人一区在线| 国产精品免费丝袜| 日韩你懂的在线观看| 波多野结衣一区二区三区| 91国内精品野花午夜精品| 日日欢夜夜爽一区| 欧美刺激脚交jootjob| 成人av在线一区二区| 美女一区二区视频| 亚洲精品写真福利| 国产丝袜美腿一区二区三区| 欧美日韩一区二区在线观看| 国产精品香蕉一区二区三区| 国产精品久久久久久久久果冻传媒 | 色婷婷精品久久二区二区蜜臂av| 久久成人精品无人区| 国产欧美一区视频| 日韩精品专区在线影院重磅| 日本黄色一区二区| 成人免费视频caoporn| 久久精品国产精品亚洲红杏| 亚洲一区av在线| 国产精品久久久久影院亚瑟 | 日韩欧美一区在线观看| 91亚洲精华国产精华精华液| 国模大尺度一区二区三区| 婷婷久久综合九色国产成人 | 亚洲影视在线观看| 久久综合色鬼综合色| 欧美猛男男办公室激情| 97aⅴ精品视频一二三区| 国产成人免费视| 久久爱另类一区二区小说| 国模一区二区三区白浆| 国产乱码一区二区三区| 大尺度一区二区| 97se亚洲国产综合自在线观| 一道本成人在线| 欧美性淫爽ww久久久久无| 精品婷婷伊人一区三区三| 69p69国产精品| 精品第一国产综合精品aⅴ| 久久精品人人做人人爽97| 国产精品免费视频观看| 中文字幕色av一区二区三区| 综合久久久久综合| 亚洲一二三四区不卡| 亚洲123区在线观看| 美女网站在线免费欧美精品| 久久国产精品72免费观看| 成人永久aaa| 欧美四级电影网| 精品蜜桃在线看| 国产精品卡一卡二卡三| 亚洲综合男人的天堂| 亚洲成人高清在线| 国内久久精品视频| 成人sese在线| 欧美精品99久久久**| 精品成人一区二区三区| 国产精品成人免费精品自在线观看 | 在线日韩国产精品| 欧美一区二区三区四区在线观看| 久久人人爽爽爽人久久久| 国产精品久久看| 青娱乐精品在线视频| 国产不卡高清在线观看视频| 欧美在线啊v一区| 久久噜噜亚洲综合| 亚洲五月六月丁香激情| 国产精品一二三四五| 欧美色网一区二区| 久久一夜天堂av一区二区三区| 亚洲欧洲另类国产综合| 免费高清视频精品| 91香蕉视频在线| 精品国产精品网麻豆系列| 亚洲综合免费观看高清完整版| 精品在线播放免费| 欧美午夜不卡视频| 亚洲久草在线视频| 国产精品一区二区在线看| 欧美无砖专区一中文字| 欧美激情中文字幕| 青青草一区二区三区| 色综合久久中文字幕综合网 | 日韩精品一区二区三区老鸭窝| 成人免费在线视频观看| 韩日av一区二区| 欧美日韩一级大片网址| 国产精品久久久久三级| 黄色成人免费在线| 欧美丰满一区二区免费视频| 日本一区二区免费在线| 麻豆国产精品视频| 欧美日韩国产区一| 亚洲人成7777| k8久久久一区二区三区| 精品国产乱码91久久久久久网站| 亚洲一区二区三区精品在线| 9i看片成人免费高清| 久久精品视频在线看| 麻豆精品视频在线观看视频| 欧美日韩一区在线| 亚洲美女免费在线| 99国产一区二区三精品乱码| 国产午夜精品一区二区三区四区 | 日韩精品免费视频人成| 在线观看不卡一区| 亚洲欧美另类小说| 99精品久久免费看蜜臀剧情介绍 | 青青青伊人色综合久久| 欧美无砖砖区免费| 亚洲一卡二卡三卡四卡| 91免费在线视频观看| 最新国产の精品合集bt伙计| 国产成人日日夜夜| 久久久五月婷婷| 狠狠色狠狠色合久久伊人| 日韩午夜在线播放| 美国精品在线观看| 日韩色在线观看| 日本视频一区二区| 日韩一区二区三区观看| 看国产成人h片视频| 91精品婷婷国产综合久久竹菊| 午夜一区二区三区视频| 欧美日韩免费观看一区三区| 亚洲第一福利一区| 欧美电影一区二区| 久久国产福利国产秒拍| 久久午夜色播影院免费高清| 国产在线视频不卡二| 中文字幕巨乱亚洲| 一本一道综合狠狠老| 亚洲第一福利视频在线| 日韩一区二区三区在线| 国产一区二区三区电影在线观看| 国产欧美一区二区精品秋霞影院 | 日韩欧美一区二区三区在线| 久久aⅴ国产欧美74aaa| 国产欧美日韩在线看| 91丨porny丨在线| 久久精品国产在热久久| 久久久精品免费网站| 成人av电影免费观看| 一区二区三区在线视频免费观看| 欧美色视频在线| 极品尤物av久久免费看| 国产精品热久久久久夜色精品三区 | 自拍偷在线精品自拍偷无码专区 | 日韩免费性生活视频播放| 国产精品一区二区三区四区| 国产精品国产自产拍高清av王其| 91麻豆国产在线观看| 日本午夜一区二区| 国产精品久线在线观看| 欧美日韩aaaaaa| 国产不卡视频一区| 亚洲h在线观看| 国产午夜精品在线观看| 欧美色手机在线观看| 国产乱码字幕精品高清av| 一区二区三区在线观看欧美| 欧美大片一区二区三区| www.视频一区| 免费观看在线综合| 亚洲欧美另类小说| 欧美va亚洲va在线观看蝴蝶网| 97久久人人超碰| 久久精品免费看| 洋洋av久久久久久久一区| 精品国产免费人成电影在线观看四季 | 麻豆国产精品一区二区三区| 国产精品久久三| 欧美xxx久久| 欧美亚洲综合另类| 国产白丝精品91爽爽久久| 视频一区视频二区中文| 国产精品久久久久久久久快鸭| 制服丝袜日韩国产| 91麻豆精品在线观看| 国产一区二区成人久久免费影院| 亚洲小说春色综合另类电影| 久久色成人在线| 欧美一区二区视频在线观看 | 欧美r级在线观看| 91福利国产成人精品照片| 国产一区二区三区免费观看| 天天综合网天天综合色|