- # 按 F5 可以放大缩小窗口,存档记录玩家的偏好 
- class << Input 
-   alias_method :update_sion_zrscreen, :update 
-   def update 
-     Graphics.switch_room if trigger?(:F5) 
-     update_sion_zrscreen 
-   end 
- end 
- class << Graphics 
-   FindWindowEx = Win32API.new('user32', 'FindWindowEx', 'llpp', 'i') 
-   GetSysMtr    = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i') 
-   KeybdEvent   = Win32API.new('user32', 'keybd_event', 'iill', 'v') 
-   SetWindowPos = Win32API.new('user32', 'SetWindowPos', 'liiiiip', 'i') 
-   HWnd = FindWindowEx.call(0, 0, 'RGSS Player', 0) 
-   # 
-   def switch_room 
-     zoom($game_system.zoom_rate == 2 ? 1 : 2) 
-   end 
-   def zoom(rate) 
-     $game_system.zoom_rate = rate 
-     __zoom__(width * rate, height * rate) 
-   end 
-   def reset 
-     SetWindowPos.call(HWnd, 0, 0, 0, GetSysMtr.call(0), GetSysMtr.call(1), 0) 
-   end 
-   # 
-   def full_screen 
-     __toggle__ if GetSysMtr.call(0) > 640 
-   end 
-   def windowed 
-     __toggle__ if GetSysMtr.call(0) < 640 
-   end 
- private 
-   def __zoom__(w, h) 
-     w += (GetSysMtr.call(5) + GetSysMtr.call(45)) * 2 
-     h += (GetSysMtr.call(5) + GetSysMtr.call(45)) * 2 + GetSysMtr.call(4) 
-     x = [0, GetSysMtr.call(0) - w].max / 2 
-     y = [0, GetSysMtr.call(1) - h].max / 2 
-     SetWindowPos.call(HWnd, 0, x, y, w, h, 0) 
-   end 
-   def __toggle__ 
-     KeybdEvent.call(0xA4, 0, 0, 0) 
-     KeybdEvent.call(0x0D, 0, 0, 0) 
-     KeybdEvent.call(0x0D, 0, 2, 0) 
-     KeybdEvent.call(0xA4, 0, 2, 0) 
-   end 
- end 
-   
- class Game_System 
-   attr_accessor :zoom_rate 
-   alias_method :on_after_load_sion_zrscreen, :on_after_load 
-   def on_after_load 
-     Graphics.zoom(@zoom_rate || 1) 
-     on_after_load_sion_zrscreen 
-   end 
- end 
- # 按 F5 可以放大缩小窗口,存档记录玩家的偏好 
 
- class << Input 
 
-   alias_method :update_sion_zrscreen, :update 
 
-   def update 
 
-     Graphics.switch_room if trigger?(:F5) 
 
-     update_sion_zrscreen 
 
-   end 
 
- end 
 
- class << Graphics 
 
-   FindWindowEx = Win32API.new('user32', 'FindWindowEx', 'llpp', 'i') 
 
-   GetSysMtr    = Win32API.new('user32', 'GetSystemMetrics', 'i', 'i') 
 
-   KeybdEvent   = Win32API.new('user32', 'keybd_event', 'iill', 'v') 
 
-   SetWindowPos = Win32API.new('user32', 'SetWindowPos', 'liiiiip', 'i') 
 
-   HWnd = FindWindowEx.call(0, 0, 'RGSS Player', 0) 
 
-   # 
 
-   def switch_room 
 
-     zoom($game_system.zoom_rate == 2 ? 1 : 2) 
 
-   end 
 
-   def zoom(rate) 
 
-     $game_system.zoom_rate = rate 
 
-     __zoom__(width * rate, height * rate) 
 
-   end 
 
-   def reset 
 
-     SetWindowPos.call(HWnd, 0, 0, 0, GetSysMtr.call(0), GetSysMtr.call(1), 0) 
 
-   end 
 
-   # 
 
-   def full_screen 
 
-     __toggle__ if GetSysMtr.call(0) > 640 
 
-   end 
 
-   def windowed 
 
-     __toggle__ if GetSysMtr.call(0) < 640 
 
-   end 
 
- private 
 
-   def __zoom__(w, h) 
 
-     w += (GetSysMtr.call(5) + GetSysMtr.call(45)) * 2 
 
-     h += (GetSysMtr.call(5) + GetSysMtr.call(45)) * 2 + GetSysMtr.call(4) 
 
-     x = [0, GetSysMtr.call(0) - w].max / 2 
 
-     y = [0, GetSysMtr.call(1) - h].max / 2 
 
-     SetWindowPos.call(HWnd, 0, x, y, w, h, 0) 
 
-   end 
 
-   def __toggle__ 
 
-     KeybdEvent.call(0xA4, 0, 0, 0) 
 
-     KeybdEvent.call(0x0D, 0, 0, 0) 
 
-     KeybdEvent.call(0x0D, 0, 2, 0) 
 
-     KeybdEvent.call(0xA4, 0, 2, 0) 
 
-   end 
 
- end 
 
-   
 
- class Game_System 
 
-   attr_accessor :zoom_rate 
 
-   alias_method :on_after_load_sion_zrscreen, :on_after_load 
 
-   def on_after_load 
 
-     Graphics.zoom(@zoom_rate || 1) 
 
-     on_after_load_sion_zrscreen 
 
-   end 
 
- end