View unanswered posts | View active topics



Reply to topic  [ 3 posts ] 
AHK Script to start FlashDevelop on my second monitor 
Author Message
Member

Joined: Fri Jul 23, 2010 10:26 am
Posts: 146
Reply with quote
My secondary monitor (on the wall) is above my first one (laptop on the desk), and that's where I run my FlashDevelop.
In the Windows display setup, it's convenient for me to position the secondary monitor above and to the left of the primary one as well (so the mouse going up-left at the top-left corner of the laptop monitor goes into the wall-mounted screen).
FlashDevelop doesn't want to remember which monitor I've used it on, or maybe it just has a problem remembering negative coordinates, since the top-left corner of my secondary screen with these settings is at coordinates -1920, -1080. My current workaround is this AutoHotKey script, I use it to run FlashDevelop, and also hide/activate FlashDevelop (using Win+F hotkey):
Code:
EnvGet, ProgramFiles32, ProgramFiles(x86)
EnvGet, ProgramFiles64, ProgramFiles
if (!ProgramFiles32)
   ProgramFiles32 := ProgramFiles64

; ************************************************************************************************************************************************************
; Run/show/hide FlashDevelop
;
#f::
   State := RunOrShowHideApp(ProgramFiles32 . "\FlashDevelop\FlashDevelop.exe")
   if (State == 3) {
      WinWait, ahk_exe FlashDevelop.exe
      if WinExist("ahk_exe FlashDevelop.exe") {
         WinRestore
         WinMove -1920, -1080
         WinMaximize
         WinActivate
      }
   }
   return

; ************************************************************************************************************************************************************
;   Returns 1 if a window is visible, 0 otherwise
;
IsWindowVisible(WindowTitle) {
   WinGet, Style, Style, % WindowTitle
   Transform, IsVisible, BitAnd, %Style%, 0x10000000
   return IsVisible
}

; ************************************************************************************************************************************************************
;   If an app is running, toggle it's window's minimized/active state, otherwise run the app
;
; Returns:
;      0 on no action
;      1 on show window
;      2 on hide window
;      3 on run app
;
RunOrShowHideApp(Program, DetectHidden = "off", WindowTitle = "") {
   Result := 0
   SplitPath Program, ExeFile
   Process, Exist, %ExeFile%
   PID := ErrorLevel
   if (PID == 0) {
      Run, %Program%, %WorkingDir%, %WindowSize%
      Result := 3
   }   
   else {
      DetectHiddenWindows, %DetectHidden%
      if (WindowTitle == "")
         WindowTitle := "ahk_pid " . PID
      if WinActive(WindowTitle) {
         WinMinimize
         Result := 2
      }
      else if WinExist(WindowTitle) {
         if (!IsWindowVisible(WindowTitle))
            WinShow
         WinActivate
         Result := 1
      }
   }
   DetectHiddenWindows, Off
   return Result
}


Last edited by heilong on Thu Sep 03, 2015 2:04 pm, edited 1 time in total.



Wed Aug 26, 2015 6:38 pm
Profile
Admin

Joined: Tue Aug 30, 2005 6:14 pm
Posts: 3050
Location: Finland
Reply with quote
Thanks for sharing. There are cases where negative values are truly incorrect and we forcefully restore them so the FD doesn't open in incorrect negative positions.


Thu Sep 03, 2015 12:56 pm
Profile WWW
Member

Joined: Fri Jul 23, 2010 10:26 am
Posts: 146
Reply with quote
Mika, this was my theory on why it's like that. It would be nice if FD could be smarter about auto-remembering position/display in this case, or at least if there was an option to explicitly disable the current sanity checks (to force the negative coordinates).


Thu Sep 03, 2015 2:03 pm
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 3 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.