Advertisement
Guest User

擬似フルスクリーン関数 / Pseudo Full Screen Function

a guest
Sep 19th, 2018
142
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ; ============================
  2. ; Pseudo Full Screen Function
  3. ; ============================
  4.  
  5. F1::PseudoFullScreen(1) ; Show Taskbar
  6. F2::PseudoFullScreen(0) ; Hide Taskbar
  7. F3::PseudoFullScreen() ; Restore
  8. Esc::ExitApp
  9.  
  10. PseudoFullScreen(Mode=-1, WinTitle="A") {
  11.     static 0:=OnExit("PseudoFullScreen"), ID, Style, X, Y, W, H, MinMax
  12.     if (WinExist(WinTitle) || WinTitle = 0) {
  13.         if (ID)
  14.             ID := RestorePFS(ID, Style, X, Y, W, H, MinMax)
  15.         if (Mode < 0 || WinTitle = 0)
  16.             return
  17.         else if (Mode) {
  18.             WinGetPos, Task_X, Task_Y, Task_W, Task_H, ahk_class Shell_TrayWnd
  19.             if (Task_X != Task_Y) ; Bottom/Right
  20.                 Task_X := Task_Y := 0
  21.             else if (Task_X = 0 && Task_Y = 0 && Task_W > Task_H) ; Up
  22.                 Task_X := 0, Task_Y := Task_H
  23.             else if (Task_X = 0 && Task_Y = 0 && Task_W < Task_H) ; Left
  24.                 Task_X := Task_W, Task_Y := 0
  25.             (Task_W > Task_H) ? Task_W := 0 : Task_H := 0 ; Length/Width
  26.         } else
  27.             Task_X := Task_Y := Task_W := Task_H := 0
  28.         SysGet, SM_CXSIZEFRAME, 32
  29.         SysGet, SM_CYSIZEFRAME, 33
  30.         WinGet, ID, ID
  31.         WinGet, MinMax, MinMax
  32.         WinGet, WS_CAPTION, Style
  33.         if (Style := WS_CAPTION & 0xC00000)
  34.             WinSet, Style, -0xC00000
  35.         WinRestore
  36.         WinGetPos, X, Y, W, H
  37.         WinMove,,, Task_X-SM_CXSIZEFRAME, Task_Y-SM_CYSIZEFRAME, A_ScreenWidth+SM_CXSIZEFRAME*2-Task_W, A_ScreenHeight+SM_CYSIZEFRAME*2-Task_H
  38.     }
  39. }
  40.  
  41. RestorePFS(ID, Style, X, Y, W, H, MinMax) {
  42.     if WinExist("ahk_id" ID) {
  43.         if (Style)
  44.             WinSet, Style, +0xC00000
  45.         WinMove,,, X, Y, W, H
  46.         if (MinMax = 1)
  47.             WinMaximize
  48.         else if (MinMax = -1)
  49.             WinMinimize
  50.         return 0
  51.     }
  52.     return 1
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement