Trymado 766 Posted October 4, 2019 Report Share Posted October 4, 2019 (edited) Salut à tous, j'ai actuellement 2 scripts que je voudrais joindre en 1. Séparement ils fonctionnent, mais dès que je veux intégré le script 2 dans le 1 ca marche plus. Explication du Script 1: Lors de l'appuie sur F8, la fenêtre se met en plein écran. Explication du Script 2: Lorsque la fenetre M-Drive(NNDXG20-WIN) est détécté, Un appuie sur F8 est fait. Comme vous l'aurait compris mon but et de faire en sorte que l'appuie sur F8 soit automatique quand je lance mon jeu pour qu'il s emette en fullscreen. Merci Script 1 Fullscreen lorsque l'on appui sur "F8": #SingleInstance force ;;; Known issues: ;;; ;;; - Weird results for windows with custom decorations such as ;;; Chrome, or programs with a Ribbon interface. ;;; - Emacs will be maximized behind instead of in front of ;;; the taskbar. Workaround: WinHide ahk_class Shell_TrayWnd ToggleFakeFullscreen() { CoordMode Screen, Window static WINDOW_STYLE_UNDECORATED := -0xC40000 static savedInfo := Object() ;; Associative array! WinGet, id, ID, A if (savedInfo[id]) { inf := savedInfo[id] WinSet, Style, % inf["style"], ahk_id %id% WinMove, ahk_id %id%,, % inf["x"], % inf["y"], % inf["width"], % inf["height"] savedInfo[id] := "" } else { savedInfo[id] := inf := Object() WinGet, ltmp, Style, A inf["style"] := ltmp WinGetPos, ltmpX, ltmpY, ltmpWidth, ltmpHeight, ahk_id %id% inf["x"] := ltmpX inf["y"] := ltmpY inf["width"] := ltmpWidth inf["height"] := ltmpHeight WinSet, Style, %WINDOW_STYLE_UNDECORATED%, ahk_id %id% mon := GetMonitorActiveWindow() SysGet, mon, Monitor, %mon% WinMove, A,, %monLeft%, %monTop%, % monRight-monLeft, % monBottom-monTop } } GetMonitorAtPos(x,y) { ;; Monitor number at position x,y or -1 if x,y outside monitors. SysGet monitorCount, MonitorCount i := 0 while(i < monitorCount) { SysGet area, Monitor, %i% if ( areaLeft <= x && x <= areaRight && areaTop <= y && y <= areaBottom ) { return i } i := i+1 } return -1 } GetMonitorActiveWindow(){ ;; Get Monitor number at the center position of the Active window. WinGetPos x,y,width,height, A return GetMonitorAtPos(x+width/2, y+height/2) } F8::ToggleFakeFullscreen() Escape::ExitApp Script 2, Appuie sur F8 quand la fenetre M-Drive(NNDXG20-WIN) est detecté #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases. ; #Warn ; Enable warnings to assist with detecting common errors. SendMode Input ; Recommended for new scripts due to its superior speed and reliability. ;SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory. #SingleInstance force Loop while WinExist("M-Drive(NNDXG20-WIN)") { Send, {F8} ExitApp } Edited October 4, 2019 by Trymado 0 Quote Link to comment Share on other sites More sharing options...
Trymado 766 Posted October 4, 2019 Author Report Share Posted October 4, 2019 Resolu #SingleInstance force ;;; Known issues: ;;; ;;; - Weird results for windows with custom decorations such as ;;; Chrome, or programs with a Ribbon interface. ;;; - Emacs will be maximized behind instead of in front of ;;; the taskbar. Workaround: WinHide ahk_class Shell_TrayWnd SetTimer, M_Drive_Exist, 500 Return M_Drive_Exist: IF WinExist("M-Drive(NNDXG20-WIN)") { ToggleFakeFullscreen() SetTimer, M_Drive_Exist, Off } Return ToggleFakeFullscreen() { CoordMode Screen, Window static WINDOW_STYLE_UNDECORATED := -0xC40000 static savedInfo := Object() ;; Associative array! WinGet, id, ID, A if (savedInfo[id]) { inf := savedInfo[id] WinSet, Style, % inf["style"], ahk_id %id% WinMove, ahk_id %id%,, % inf["x"], % inf["y"], % inf["width"], % inf["height"] savedInfo[id] := "" } else { savedInfo[id] := inf := Object() WinGet, ltmp, Style, A inf["style"] := ltmp WinGetPos, ltmpX, ltmpY, ltmpWidth, ltmpHeight, ahk_id %id% inf["x"] := ltmpX inf["y"] := ltmpY inf["width"] := ltmpWidth inf["height"] := ltmpHeight WinSet, Style, %WINDOW_STYLE_UNDECORATED%, ahk_id %id% mon := GetMonitorActiveWindow() SysGet, mon, Monitor, %mon% WinMove, A,, %monLeft%, %monTop%, % monRight-monLeft, % monBottom-monTop } } GetMonitorAtPos(x,y) { ;; Monitor number at position x,y or -1 if x,y outside monitors. SysGet monitorCount, MonitorCount i := 0 while(i < monitorCount) { SysGet area, Monitor, %i% if ( areaLeft <= x && x <= areaRight && areaTop <= y && y <= areaBottom ) return i i := i+1 } return -1 } GetMonitorActiveWindow() { ;; Get Monitor number at the center position of the Active window. WinGetPos x,y,width,height, A return GetMonitorAtPos(x+width/2, y+height/2) } F8::ToggleFakeFullscreen() Escape::ExitApp 0 Quote Link to comment Share on other sites More sharing options...
spiderzsoft 3,352 Posted October 5, 2019 Report Share Posted October 5, 2019 (edited) ... Edited April 12, 2021 by spiderzsoft 0 Quote Link to comment Share on other sites More sharing options...
Bootleg 91 Posted March 8, 2021 Report Share Posted March 8, 2021 how would u set this to full screen thought the RH loader? 0 Quote Link to comment Share on other sites More sharing options...
Bootleg 91 Posted March 8, 2021 Report Share Posted March 8, 2021 figured this out =) 0 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.