=begin ´ÙÁß ½ÇÇà ¹æÁö ½ºÅ©¸³Æ® Author @cheapmunk.naver Refer MSDN, °í±¸¸¶S Date 2014.05.18 =end # À̸§ ¼³Á¤ : ÀÏÁ¾ÀÇ ¾ÏÈ£(?). °ãÄ¡Áö ¾Ê°Ô °¡´ÉÇÏ¸é ±æ°Ô Áö¾î¾ß ÇÕ´Ï´Ù. MutexName = "!@#$´Ù¶÷Áã Çå ùÙÄû¿¡ Ÿ°íÆÄ." CreateMutex = Win32API.new('kernel32', 'CreateMutexA', 'llp', 'l') ReleaseMutex = Win32API.new('kernel32', 'ReleaseMutex', 'l', 'l') WaitForSingleObject = Win32API.new('kernel32', 'WaitForSingleObject', 'll', 'l') CloseHandle = Win32API.new('kernel32', 'CloseHandle', 'l', 'l') module Kernel alias :exit_mutex :exit def exit(int=0) ReleaseMutex.call($mutex) if $mutex CloseHandle.call($mutex) if $mutex exit_mutex end end def mutex $mutex = CreateMutex.call(0, 0, MutexName) if $mutex == 0 print "Error!" exit end if WaitForSingleObject.call($mutex, 0) != 0 # µð¹ö±× »óÅ°ųª ÀüÅõ Å×½ºÆ® Áß¿¡´Â Àû¿ëµÇÁö ¾Ê½À´Ï´Ù. exit unless $DEBUG || $BTEST || $TEST end end;mutex