Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: WoosterTech/Quest-Tools
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.2
Choose a base ref
...
head repository: WoosterTech/Quest-Tools
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref

Commits on Jan 7, 2019

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    d3ec3e9 View commit details
  2. Merge pull request #6 from WoosterFromWA/add_3cx

    add 3CX as an option (Ctrl+Shift+3)
    WoosterInitiative authored Jan 7, 2019
    Copy the full SHA
    6ce1ecd View commit details
  3. Copy the full SHA
    e7a4b14 View commit details

Commits on Jan 9, 2019

  1. Copy the full SHA
    94d1f30 View commit details
  2. Merge pull request #8 from WoosterFromWA/fix_selection

    make more reliable if text is selected
    WoosterInitiative authored Jan 9, 2019
    Copy the full SHA
    33fb06b View commit details

Commits on Jan 15, 2019

  1. add ability to view HC for 500ms using ctrl+alt+f1 and removed hack t…

    …hat dealt with selected text in HC
    WoosterInitiative committed Jan 15, 2019
    Copy the full SHA
    cee9089 View commit details
  2. Merge pull request #9 from WoosterFromWA/check_HC_status

    add ability to view HC for 500ms using ctrl+alt+f1
    WoosterInitiative authored Jan 15, 2019
    Copy the full SHA
    3d3e328 View commit details
  3. update readme

    WoosterInitiative committed Jan 15, 2019
    Copy the full SHA
    3c30b1a View commit details

Commits on Jan 24, 2019

  1. Copy the full SHA
    f14c86f View commit details
  2. Merge pull request #10 from WoosterFromWA/add_3cx_status_change

    add support for 3CX status changes
    WoosterInitiative authored Jan 24, 2019
    Copy the full SHA
    19446a8 View commit details
  3. Copy the full SHA
    c6ad115 View commit details
  4. Copy the full SHA
    09410e9 View commit details
  5. Copy the full SHA
    9601595 View commit details
  6. Copy the full SHA
    3fd0818 View commit details
  7. Copy the full SHA
    87653cf View commit details

Commits on Jan 25, 2019

  1. Copy the full SHA
    904733b View commit details
  2. Copy the full SHA
    7ebb371 View commit details

Commits on Jan 29, 2019

  1. some new stuff

    WoosterInitiative committed Jan 29, 2019
    Copy the full SHA
    2e964f4 View commit details
  2. add icons

    WoosterInitiative committed Jan 29, 2019
    Copy the full SHA
    317a898 View commit details
  3. Copy the full SHA
    77d78b1 View commit details
  4. Copy the full SHA
    6cf79c5 View commit details

Commits on Jan 30, 2019

  1. Copy the full SHA
    f1b4256 View commit details

Commits on Feb 12, 2019

  1. Copy the full SHA
    6f61a56 View commit details
  2. Copy the full SHA
    8f984fc View commit details
  3. Copy the full SHA
    b2a6c0e View commit details
  4. add tooltip

    WoosterInitiative committed Feb 12, 2019
    Copy the full SHA
    b5c0b92 View commit details
  5. add tooltips

    WoosterInitiative committed Feb 12, 2019
    Copy the full SHA
    7838f12 View commit details
  6. red on blue for qsc

    WoosterInitiative committed Feb 12, 2019
    Copy the full SHA
    f462046 View commit details
  7. Copy the full SHA
    5b0d092 View commit details
  8. Copy the full SHA
    914be25 View commit details

Commits on Feb 13, 2019

  1. first attempt at nsis installer... doesn't autorun after install, but…

    … everything else *seems* to be working
    WoosterInitiative committed Feb 13, 2019
    Copy the full SHA
    7d021a3 View commit details
  2. Merge pull request #13 from WoosterFromWA/nsis_installer

    first attempt at nsis installer... doesn't autorun after install, but…
    WoosterInitiative authored Feb 13, 2019
    Copy the full SHA
    308893c View commit details
  3. Copy the full SHA
    e44c6bd View commit details
  4. Merge pull request #14 from WoosterFromWA/nsis_installer

    remove advanced installer file
    WoosterInitiative authored Feb 13, 2019
    Copy the full SHA
    67dc198 View commit details
  5. Copy the full SHA
    9e1249c View commit details
  6. support dynamic shortcuts (from INI file) in 3CX app; added basic sho…

    …rtcuts which forces numlock on (can't be turned off!)
    WoosterInitiative committed Feb 13, 2019
    Copy the full SHA
    595d27c View commit details

Commits on Feb 14, 2019

  1. Copy the full SHA
    183a163 View commit details
  2. Copy the full SHA
    72d72cc View commit details

Commits on Feb 17, 2019

  1. backup

    WoosterInitiative committed Feb 17, 2019
    Copy the full SHA
    3f2d546 View commit details

Commits on Feb 18, 2019

  1. create components

    WoosterInitiative committed Feb 18, 2019
    Copy the full SHA
    0b8c545 View commit details

Commits on Feb 22, 2019

  1. major installer changes

    remove all HC references and changing status in 3CX
    WoosterInitiative committed Feb 22, 2019
    Copy the full SHA
    296794a View commit details
  2. Copy the full SHA
    3ccd8de View commit details
  3. Copy the full SHA
    b2b118b View commit details

Commits on Apr 3, 2019

  1. Copy the full SHA
    1c85442 View commit details
  2. Merge pull request #19 from WoosterFromWA/dev-2

    use dial codes for 3cx status change, update installer to 0.0.12
    WoosterInitiative authored Apr 3, 2019
    Copy the full SHA
    88701ea View commit details
  3. Copy the full SHA
    fe8dddd View commit details

Commits on Apr 5, 2019

  1. Copy the full SHA
    4242547 View commit details
  2. Copy the full SHA
    97f5dbe View commit details
  3. Copy the full SHA
    adcdd78 View commit details

Commits on Apr 16, 2019

  1. Copy the full SHA
    7f9dd5c View commit details
Showing with 1,520 additions and 328 deletions.
  1. +20 −0 .gitignore
  2. +18 −0 .vscode/launch.json
  3. +24 −0 3DConnexion Reset.ahk
  4. +63 −0 AppKill.ahk
  5. +28 −0 Basic Shortcuts.ahk
  6. +29 −0 Close_All.ahk
  7. +40 −0 Compile All.ahk
  8. +0 −91 HipChat Scripts.ahk
  9. +32 −0 Lib/WTSFunctions.ahk
  10. +76 −0 Master.ahk
  11. +50 −0 QI Tools INI Generator.ahk
  12. BIN QI Tools/.vs/QI Tools/v16/TestStore/0/000-0000.testlog
  13. BIN QI Tools/.vs/QI Tools/v16/TestStore/0/testlog.manifest
  14. +224 −0 QI Tools/Product.wxs
  15. +25 −0 QI Tools/QI Tools.sln
  16. +7 −0 QI Tools/QuestUp.bat
  17. BIN QI Tools/UpgradeLog.htm
  18. +47 −0 QI Tools/Wooster AHK Scripts.wixproj
  19. BIN QI Tools/WoosterGraphic.ico
  20. +9 −0 QI Tools/WoosterTech.ini
  21. +208 −0 QI Tools/licenseagrmt.rtf
  22. BIN QI Tools/q_on_green_bkgd.ico
  23. BIN QI Tools/q_on_red_bkgd.ico
  24. BIN QI Tools/q_on_yellow_bkgd.ico
  25. BIN QI Tools/qonlybig-edited.png
  26. BIN QI Tools/red_q_on_blue_bkgd.ico
  27. +202 −0 Quick Status Change.ahk
  28. +47 −35 README.md
  29. +52 −0 SOLIDWORKS Kill.ahk
  30. +50 −0 SOLIDWORKS Reset.ahk
  31. +47 −0 ScriptStart.ahk
  32. +0 −42 Teams Scripts.ahk
  33. +0 −155 Window Switching.ahk
  34. +209 −0 Window Wizard.ahk
  35. +13 −0 WoosterTech.ini
  36. BIN WoosterTech/images/3CX.xcf
  37. BIN WoosterTech/images/3CX_screen.png
  38. BIN WoosterTech/images/3cx.ico
  39. BIN WoosterTech/images/WoosterGraphic.ico
  40. BIN WoosterTech/images/available.jpg
  41. BIN WoosterTech/images/q_on_green_bkgd.ico
  42. BIN WoosterTech/images/q_on_green_bkgd.xcf
  43. BIN WoosterTech/images/q_on_red_bkgd.ico
  44. BIN WoosterTech/images/q_on_red_bkgd.xcf
  45. BIN WoosterTech/images/q_on_yellow_bkgd.ico
  46. BIN WoosterTech/images/q_on_yellow_bkgd.xcf
  47. BIN WoosterTech/images/qonly.ico
  48. BIN WoosterTech/images/quick_change.ico
  49. BIN WoosterTech/images/quick_change.xcf
  50. BIN WoosterTech/images/red_q_on_blue_bkgd.bmp
  51. BIN WoosterTech/images/red_q_on_blue_bkgd.ico
  52. BIN WoosterTech/images/red_q_on_blue_bkgd.xcf
  53. BIN images/3CX.xcf
  54. BIN images/3CX_screen.png
  55. BIN images/3cx.ico
  56. BIN images/WoosterGraphic.ico
  57. BIN images/available.jpg
  58. BIN images/q_on_green_bkgd.ico
  59. BIN images/q_on_green_bkgd.xcf
  60. BIN images/q_on_red_bkgd.ico
  61. BIN images/q_on_red_bkgd.xcf
  62. BIN images/q_on_yellow_bkgd.ico
  63. BIN images/q_on_yellow_bkgd.xcf
  64. BIN images/qonly.ico
  65. BIN images/qonlybig-edited.png
  66. BIN images/qonlybig.png
  67. BIN images/qonlybig.xcf
  68. BIN images/quick_change.ico
  69. BIN images/quick_change.xcf
  70. BIN images/red_q_on_blue_bkgd.bmp
  71. BIN images/red_q_on_blue_bkgd.ico
  72. BIN images/red_q_on_blue_bkgd.xcf
  73. +0 −5 remap win key.ahk
20 changes: 20 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,21 @@
*.exe
*.msi
*.lnk
*.log
QITools-karl.ini

# VS stuff
*.suo
*.user
*.userosscache
*.sln.docstates
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
x64/
x86/
bld/
[Bb]in/
[Oo]bj/
*.wixproj.BindContentsFileListnull.txt
18 changes: 18 additions & 0 deletions .vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "ahkdbg",
"request": "launch",
"name": "AHKDebug",
"program": "${file}",
"stopOnEntry": true,
"captureStreams": true,
"AhkExecutable": "C:\\\\Program Files\\\\AutoHotkey\\\\AutoHotkey.exe",
"port": 9005
}
]
}
24 changes: 24 additions & 0 deletions 3DConnexion Reset.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: 3DConnexion Reset ; Change tooltip on icon in tray

; #Include BSC_Properties.ahk

Process, Exist, 3DxService.exe
If ErrorLevel {
ToolTip, Stopping 3DConnexion Driver
Run, "C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\3DxService.exe" "-quiet -shutdown"

Process, WaitClose, 3DxService.exe
}

ToolTip, Starting 3DConnexion Driver
Run, "C:\Program Files\3Dconnexion\3DxWare\3DxWinCore64\3DxService.exe"

Process, Wait, 3DxService.exe, 5
If not ErrorLevel {
MsgBox, 8208, Error, "3DConnexion Driver Timed Out"
}

ToolTip
MsgBox, 4160, Driver Reset, 3DConnexion Driver Reset, 3
63 changes: 63 additions & 0 deletions AppKill.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: AppKill ; Change tooltip on icon in tray

DetectHiddenWindows, On
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for 3CX
iniSection = AppKill

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["process_name"] := "Teams.exe"
iniProps["program_name"] := "Teams"
iniProps["wait_time"] := 3
iniProps["enableAppKill"] := true
iniProps["keyAppKill"] := "<^<!Numpad5"

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

process_name := iniProps["process_name"]
program_name := iniProps["program_name"]
wait_time := iniProps["wait_time"]
enableAppKill := iniProps["enableAppKill"]
keyAppKill := iniProps["keyAppKill"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if enableAppKill
{
Hotkey, %keyAppKill%, appkill
return

appkill:
if WinExist("ahk_exe Teams.exe")
{
; MsgBox, Found Teams
; Process, Exist, %process_name% ; Check to make sure that it's running
; If ErrorLevel { ; Returns 0 if no matching program
ToolTip, Stopping %program_name%
Process, Close, %process_name%
; Process, Close, %process_name%
WinWaitClose, , , 3
if ErrorLevel
{
; Process, WaitClose, %process_name%, %wait_time% ; Ensure process is killed before continuing
; If ErrorLevel {
Tooltip
MsgBox, 16, AppKill, Unable to close %program_name%, 5
Exit
}
Tooltip, Teams Stopped
Sleep, 3000
ToolTip
; }
} else {
MsgBox, 16, AppKill, % "Did not find " program_name
}
return
}
28 changes: 28 additions & 0 deletions Basic Shortcuts.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: Basic Shortcuts ; Change tooltip on icon in tray

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for 3CX
iniSection = BasicShortcuts

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["numLockOn"] := 0

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

numLockOn := iniProps["numLockOn"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
if numLockOn {
SetNumLockState, AlwaysOn
}

; Opens a G2M prompt to start or join a meeting
; ^!g::Run, "gotomeeting://SALaunch?Action=Host"
29 changes: 29 additions & 0 deletions Close_All.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
; #SingleInstance, force ; Forces only one instance, allows to re-run script without reloading

listAHK := ["Master", "3CX", "3DConnexion Reset", "Basic Shortcuts", "Quick Status Change", "Run All", "SOLIDWORKS Reset", "Window Wizard", "AppKill"]
counter := 0

For index, AHK in listAHK
{
ahkEXE := % AHK ".exe"

Process, Exist, % ahkEXE
While ErrorLevel
{
ToolTip, % "Closing " AHK
Process, Close, % ahkEXE
if not ErrorLevel
{
MsgBox, 16, Error, % "Unable to close " ahkEXE "!`n`nPlease close all scripts manually"
ExitApp
}
Process, Exist, % ahkEXE
counter += 1
}
Process, WaitClose, % ahkEXE, 5
if ErrorLevel
MsgBox, "What the hell?"
}

ToolTip, % counter " scripts closed"
Sleep, 2000
40 changes: 40 additions & 0 deletions Compile All.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading

listAHK := ["Master", "3DConnexion Reset", "Basic Shortcuts", "Quick Status Change", "SOLIDWORKS Reset", "ScriptStart", "Window Wizard", "AppKill", "SOLIDWORKS Kill"]
destFolder := "QI Tools"

For index, AHK in listAHK
{
ahkEXE := % AHK ".exe"

; MsgBox, %ahkEXE%

Process, Exist, % ahkEXE
; MsgBox, % ErrorLevel
While ErrorLevel
{
ToolTip, % "Closing " AHK
Process, Close, % ahkEXE
if not ErrorLevel
{
MsgBox, 16, Error, % "Unable to close " ahkEXE "!`n`nPlease close all scripts manually`nand run ""Run All"" from the`nStart Menu"
ExitApp
}
Process, Exist, % ahkEXE
}
Process, WaitClose, % ahkEXE, 5
if ErrorLevel
MsgBox, "What the hell?"

try
{
ToolTip, % "Compiling " AHK
; RunWait, % "Ahk2Exe.exe /in """ AHK ".ahk"" /icon images/red_q_on_blue_bkgd.ico" ; Run compiler for AHK files
RunWait, % "Ahk2Exe.exe /in """ AHK ".ahk"" /out """ destFolder "\" AHK ".exe"" /icon images/WoosterGraphic.ico" ; Run compiler for AHK files
} catch e {
MsgBox, % "Unable to compile """ AHK """, exiting"
ExitApp
}
}

ToolTip
91 changes: 0 additions & 91 deletions HipChat Scripts.ahk

This file was deleted.

32 changes: 32 additions & 0 deletions Lib/WTSFunctions.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
WTSFunctions_readINI(iniPath, iniKeys, ini_section) ; Reads keys from defined INI file based on 'iniKeys'
{
For key, value in iniKeys
{
IniRead, valCheck, %iniPath%, %ini_section%, %key%
if (valCheck = "ERROR") {
IniWrite, %value%, %iniPath%, %ini_Section%, %key%
iniKeys[(key)] := value
} else {
iniKeys[(key)] := valCheck
}
}

return iniKeys
}

WTSFunctions_winShow(WindHide := true)
{
WinGet, Style, Style

IfWinNotActive
{
WinGet, winid, ID
DllCall("SwitchToThisWindow", "UInt", winid, "UInt", 1) ; This seems to be more reliable than WinRestore, woohoo!
} else {
WinMinimize
If WindHide ; Allows for the INI file to control hiding if the app doesn't like it (fixed with DllCall I think)
WinHide
}

return
}
76 changes: 76 additions & 0 deletions Master.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: Master Shortcut Script ; Change tooltip on icon in tray

; system verbs

; #NumLock::
; setNumLockState, AlwaysOn
; return

#c::Run, explore "C:\"

; #h::Run, explore "C:\Users\karl\Documents\GitHub"

; #n::Run, explore "C:\temp\Customers"
#n::Run, "C:\Users\KarlWooster\OneDrive - Wooster Technical Solutions\Documents\PdmVaultBrowser.exe"

; #n::Run, explorer.exe shell:appsFolder\Microsoft.MicrosoftStickyNotes_8wekyb3d8bbwe!App

:*:kw@::karlwooster@gmail.com
:*:kt@::karl@woostertech.com
:*:sw@::samlsanderson@gmail.com
:*:wts*::Wooster Technical Solutions

; + & CapsLock::CapsLock
CapsLock & s::SendInput SOLIDWORKS
; CapsLock::Esc

; :*:cu/::C:\temp\Customers{enter}

; +!p::run, "cmd.exe" "/c presentationsettings.exe"

; Use with the Windows Action Center to clear all notifications; may do weird things if AC isn't up, will expand/collapse if AC is already blank
#z::Send {shift down}{tab}{tab}{shift up}{space}{esc}

; A quick way to make a window "always on top"
#Space:: WinSet, AlwaysOnTop, Toggle, A

; ^!+s:: ; Fill out HGTV/diynetwork forms for Sam
;
; SendInput, Samantha{Tab}
; SendInput, Wooster{Tab}{Tab}
; SendInput, Pasco{Tab}
; SendInput, w{Tab}
; Sleep, 200
; SendInput, 99301{Tab}
; Sleep, 200
; SendInput, 5093862817{Tab}
; MsgBox, Choose Gender and click OK
; SendInput, {Tab}
; SendInput, {Down 7}{Tab}
; Sleep, 200
; SendInput, 10{Tab}1986{Tab}{Tab}
; SendInput, {Down 8}{Tab}
;
; Return
;
; ^!+k:: ; Fill out HGTV/diynetwork forms for Karl
;
; SendInput, Karl{Tab}
; SendInput, Wooster{Tab}{Tab}
; SendInput, 7711 Thetis Dr{Tab}
; SendInput, Pasco{Tab}
; SendInput, w{Tab}
; Sleep, 200
; SendInput, 99301{Tab}
; Sleep, 200
; SendInput, 5098761792{Tab}
; MsgBox, Choose Gender and click OK
; SendInput, {Tab}
; SendInput, {Down 4}{Tab}
; Sleep, 200
; SendInput, 11{Tab}1985{Tab}{Tab}
; SendInput, {Down 8}{Tab}
;
; Return
50 changes: 50 additions & 0 deletions QI Tools INI Generator.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
defINILoc := % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; INIexist := FileExist(defINILoc)

QuickStatusChange.hcSleep := 50
QuickStatusChange.teamsSleep := 250

MsgBox, % QuickStatusChange.hcSleep

; sectionList := QuickStatusChange.hcSleep: 50, QuickStatusChange.teamsSleep: 250

; [QuickStatusChange]
; #hcSleep=50
; #teamsSleep=250
; #3cxSleep=100
; #buttonAvail="30,45"
; #posAvail="30,80"
; #posAway="30,120"
; #posDND="30,155"
; #awayInterval=15
; #roundInterval=5
; #onCallPos="80,500"
; #onCallColors="0x0000FF,0x575757,0xC1C1C1,0xFF0000"

; [3CX]
; #3cxSleep=100
; #numEnter=F11
; #phoneFocus=F12
; #pnRegEx := "^\s*(?:\+?(\d{1,3}))?[-. (]*(\d{3})[-. )]*(\d{3})[-. ]*(\d{4})(?: *x(\d+))?\s*$"
; #RegExOut := "($2) $3-$4"
; #debug0 : = 0

; [BasicShortcuts]
; #numLockOn=0
; #zoomEnable=0
; setVol=0
; ringWav="ringtone_-20db.wav"
; numLockOn=1

; [SW_Reset]
; #process_name="sldworks.exe"
; #program_name="SOLIDWORKS"
; start_path="C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SOLIDWORKS 2019\SOLIDWORKS 2019.lnk"

; [RunAll]
; #fileNames="uninstall.exe,SOLIDWORKS Reset.exe,3DConnexion Reset.exe"
; #runPath="Quest Integration\QI Tools"
; [Test]
; Test1=test value 1
; Test2=test value
Binary file not shown.
Binary file not shown.
224 changes: 224 additions & 0 deletions QI Tools/Product.wxs
Original file line number Diff line number Diff line change
@@ -0,0 +1,224 @@
<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<!--replace this Id-->
<Product Id="80BBE378-4772-4A9E-9BB2-5D5B0E9FEF51"
Name="Wooster AHK Scripts"
Language="1033"
Version="0.0.4.0"
Manufacturer="Wooster Technical Solutions"
UpgradeCode="82FBCE35-5FAA-4996-827E-81FA2665E7AE">

<Package Id="*"
Keywords="Installer"
Description="Wooster AHK Scripts Installer"
Manufacturer="Wooster Technical Solutions"
InstallerVersion="200"
Compressed="yes"
InstallScope="perMachine" />

<Upgrade Id="82FBCE35-5FAA-4996-827E-81FA2665E7AE">
<UpgradeVersion OnlyDetect="no"
Property="PREVIOUSFOUND"
Minimum="0.0.0.0" IncludeMinimum="yes"
Maximum="0.0.4.0" IncludeMaximum="no" />
</Upgrade>


<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate EmbedCab="yes" />

<UIRef Id="WixUI_Mondo"/>
<UIRef Id="WixUI_ErrorProgressText"/>

<WixVariable Id="WixUILicenseRtf" Value="licenseagrmt.rtf" />
<WixVariable Id="WixUISupportPerUser" Value="0" />

<Icon Id="WoosterGraphic.exe" SourceFile="WoosterGraphic.ico"/>

<Property Id="ARPPRODUCTICON" Value="WoosterGraphic.exe"/>
<Property Id="ApplicationFolderName" Value="Wooster Technical Solutions" />
<Property Id="WixAppFolder" Value="WixPerMachineFolder" />

<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="AppDataFolder">
<Directory Id="progfiledir" Name="Wooster Technical Solutions">

<Component Id="commonFiles" Guid="A9AB2056-E827-468D-9290-6EC08BADE149" Permanent="yes">
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="INI Path" Type="string" Value="[progfiledir]" KeyPath="yes" />
<RemoveFolder Id="commonFiles" On="uninstall"/>
<File Id="INItemp" Name="WoosterTech.ini" Source="WoosterTech.ini">
<Shortcut Id="iniEdit" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Settings" Advertise="no"/>
</File>
</Component>

<Component Id="programInfo" Guid="0D654AB6-45AE-4271-B96E-9DA37AF2C75F">
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Name="Version" Type="string" Value="[ProductVersion]" KeyPath="yes" />
</Component>

</Directory>
</Directory>
<Directory Id="ProgramFilesFolder" Name="PFiles">
<Directory Id="APPLICATIONFOLDER" Name="Wooster Technical Solutions">
<Directory Id="INSTALLDIR" Name="Wooster AHK Scripts">
<Directory Id="images" Name="images">

<Component Id="wtsIcons" Guid="03AC50C0-FC3F-4090-9515-CB448C71E1A5">
<File Id="mainicon" Name="WoosterGraphic.ico" Source="WoosterGraphic.ico"/>
<!--<File Id="ongreen" Name="q_on_green_bkgd.ico" Source="q_on_green_bkgd.ico"/>
<File Id="onyellow" Name="q_on_yellow_bkgd.ico" Source="q_on_yellow_bkgd.ico"/>
<File Id="onred" Name="q_on_red_bkgd.ico" Source="q_on_red_bkgd.ico"/>
<File Id="splash" Name="qonlybig-edited.png" Source="qonlybig-edited.png"/>-->
</Component>

</Directory>

<Component Id="BasicShortcuts" Guid="33572042-F90D-4843-BC8F-1D1CEB42A54F">
<File Id="bscEXE" Name="Basic Shortcuts.exe" Source="Basic Shortcuts.exe" KeyPath="yes">
<Shortcut Id="startmenuBSC" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Basic Shortcuts" Advertise="yes"/>
<!--<Shortcut Id="startupBSC" Directory="StartupFolder" Icon="WoosterGraphic.exe" Name="Basic Shortcuts" Advertise="yes"/>-->
</File>
</Component>

<Component Id="QuickStatusChange" Guid="C859E024-2D8A-4684-9F97-B2B78F7815F4">
<File Id="qscEXE" Name="Quick Status Change.exe" Source="Quick Status Change.exe" KeyPath="yes">
<Shortcut Id="startmenuQSC" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Quick Status Change" Advertise="yes"/>
<!--<Shortcut Id="startupQSC" Directory="StartupFolder" Icon="WoosterGraphic.exe" Name="Quick Status Change" Advertise="yes"/>-->
</File>
</Component>

<Component Id="SOLIDWORKSReset" Guid="C539CE35-D048-49A0-8AE7-3C0084990A99">
<File Id="swReset" Name="SOLIDWORKS Reset.exe" Source="SOLIDWORKS Reset.exe" KeyPath="yes">
<Shortcut Id="startmenuSWR" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="SOLIDWORKS Reset" Advertise="yes"/>
</File>
</Component>

<Component Id="SOLIDWORKSKill" Guid="59BD05CD-2E43-494F-8E80-5E32DAA6DDAA">
<File Id="swKill" Name="SOLIDWORKS Kill.exe" Source="SOLIDWORKS Kill.exe" KeyPath="yes">
<Shortcut Id="startmenuSWK" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="SOLIDWORKS Kill" Advertise="yes"/>
</File>
</Component>

<Component Id="_3DConnexionReset" Guid="AA18780D-6F62-410E-A1B8-F27CEBB4FEDE">
<File Id="_3dcReset" Name="3DConnexion Reset.exe" Source="3DConnexion Reset.exe" KeyPath="yes">
<Shortcut Id="startmenu3DCR" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="3DConnexion Reset" Advertise="yes"/>
</File>
</Component>

<Component Id="ScriptStart" Guid="A23195D6-AE8B-4DCA-9241-78EA658799B1">
<File Id="scStart" Name="ScriptStart.exe" Source="ScriptStart.exe" KeyPath="yes">
<Shortcut Id="startmenuscStart" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="ScriptStart" WorkingDirectory="INSTALLDIR" Advertise="yes"/>
<Shortcut Id="startupscStart" Directory="StartupFolder" Icon="WoosterGraphic.exe" Name="ScriptStart" WorkingDirectory="INSTALLDIR" Advertise="yes"/>
</File>
</Component>

<Component Id="WindowWizard" Guid="202CB854-2853-476C-B833-F8ACA0C66088">
<File Id="wwEXE" Name="Window Wizard.exe" Source="Window Wizard.exe" KeyPath="yes">
<Shortcut Id="startmenuWW" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Window Wizard" Advertise="yes"/>
</File>
</Component>

<Component Id="Master" Guid="F5F948A5-5E9D-4ED1-9840-8CE300E77DCE">
<File Id="mstEXE" Name="Master.exe" Source="Master.exe" KeyPath="yes">
<Shortcut Id="startmenumstStart" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Master" WorkingDirectory="INSTALLDIR" Advertise="yes"/>
</File>
</Component>

<Component Id="AppKill" Guid="3EF8C091-8E69-43F9-B12A-3A5CAB8DB312">
<File Id="akEXE" Name="AppKill.exe" Source="AppKill.exe" KeyPath="yes">
<Shortcut Id="startmenuAK" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="AppKill" Advertise="yes"/>
</File>
</Component>

<Component Id="Master" Guid="93F08090-669E-4053-B957-22C822E8958B">
<File Id="mstEXE" Name="Master.exe" Source="Master.exe" KeyPath="yes">
<Shortcut Id="startmenuMST" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Master" Advertise="yes"/>
<Shortcut Id="startupMST" Directory="StartupFolder" Icon="WoosterGraphic.exe" Name="Master" Advertise="yes"/>
</File>
</Component>

<Component Id="WindowWizard" Guid="AFFE52E4-6829-49CF-B2C9-68CAB5252662">
<File Id="wwzEXE" Name="Window Wizard.exe" Source="Window Wizard.exe" KeyPath="yes">
<Shortcut Id="startmenuWWZ" Directory="ProgramMenuDir" Icon="WoosterGraphic.exe" Name="Window Wizard" Advertise="yes"/>
<Shortcut Id="startupWWZ" Directory="StartupFolder" Icon="WoosterGraphic.exe" Name="Window Wizard" Advertise="yes"/>
</File>
</Component>

</Directory>
</Directory>
</Directory>

<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="Wooster AHK Scripts">
<Component Id="ProgramMenuDir" Guid="CAEF3B41-8B2F-40BF-AF9B-D14C26CB4A26">
<RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Name="Start Menu Location" Value="[ProgramMenuDir]" KeyPath="yes" />
</Component>
</Directory>
</Directory>

<Directory Id="StartupFolder" Name="Startup">
</Directory>
</Directory>

<Feature Id="Complete" Title="Wooster AHK Scripts" Description="The complete package." Display="expand" Level="1" ConfigurableDirectory="INSTALLDIR">

<Feature Id="qst" Title="ScriptStart" Description="Runs at startup to get all scripts started up cleanly" Level="1">
<ComponentRef Id="ScriptStart"/>
</Feature>

<Feature Id="qsc" Title="Quick Status Change" Description="Allows for hotkeys for changing presence in 3CX and Teams" Level="1">
<ComponentRef Id="QuickStatusChange"/>
</Feature>

<Feature Id="mstr" Title="Master" Description="Ease-of-use shortcuts" Level="1">
<ComponentRef Id="Master"/>
</Feature>

<Feature Id="wwz" Title="Window Wizard" Description="Hotkeys for easy switching between standard programs (Teams/Slack/Outlook/etc.)" Level="1">
<ComponentRef Id="WindowWizard"/>
</Feature>

<Feature Id="swr" Title="SOLIDWORKS Reset" Description="A shortcut for restarting SOLIDWORKS if hung" Level="1000">
<ComponentRef Id="SOLIDWORKSReset"/>
</Feature>

<Feature Id="swk" Title="SOLIDWORKS Kill" Description="A shortcut for killing ALL SOLIDWORKS processes if hung" Level="1000">
<ComponentRef Id="SOLIDWORKSKill"/>
</Feature>

<Feature Id="_3dc" Title="3DConnexion Reset" Description="A quick shortcut for restarting the 3DConnexion drivers" Level="1000">
<ComponentRef Id="_3DConnexionReset"/>
</Feature>

<Feature Id="ww" Title="Window Wizard" Description="Use Function keys to hide/show applications" Level="1000">
<ComponentRef Id="WindowWizard"/>
</Feature>

<Feature Id="ak" Title="AppKill" Description="Kill Teams with a hotkey" Level="1000">
<ComponentRef Id="AppKill"/>
</Feature>

<ComponentRef Id="wtsIcons"/>
<ComponentRef Id="commonFiles"/>
<ComponentRef Id="ProgramMenuDir" />
<ComponentRef Id="programInfo"/>
</Feature>

<InstallExecuteSequence>
<Custom Action="LaunchQST" After="InstallFinalize"><![CDATA[&qst = 3]]></Custom>
<!--<Custom Action="LaunchQSC" After="InstallFinalize"><![CDATA[&qsc = 3]]></Custom>-->
<!--<Custom Action="LaunchBSC" After="InstallFinalize"><![CDATA[&bsc = 3]]></Custom>-->
<!--<Custom Action="LaunchQU" After="InstallFinalize"><![CDATA[&qu = 3]]></Custom>-->
<!--<Custom Action="Launch3CX" After="InstallFinalize"><![CDATA[&_3CXfeat = 3]]></Custom>-->
</InstallExecuteSequence>

<CustomAction Id="LaunchQST" Directory="INSTALLDIR" ExeCommand="[INSTALLDIR]QuestStart.exe" Return="asyncNoWait" />
<!--<CustomAction Id="LaunchBSC" FileKey="bscEXE" ExeCommand="" Return="asyncNoWait" />-->
<!--<CustomAction Id="LaunchQSC" FileKey="qscEXE" ExeCommand="" Return="asyncNoWait" />-->
<!--<CustomAction Id="LaunchQU" Directory="INSTALLDIR" ExeCommand="[INSTALLDIR]QuestUp.bat ringtone_-20db.wav" Return="asyncNoWait" />-->
<!--<CustomAction Id="Launch3CX" FileKey="_3cxEXE" ExeCommand="" Return="asyncNoWait" />-->

</Product>


</Wix>
25 changes: 25 additions & 0 deletions QI Tools/QI Tools.sln
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.29209.62
MinimumVisualStudioVersion = 10.0.40219.1
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Wooster AHK Scripts", "Wooster AHK Scripts.wixproj", "{F0AD4643-07CD-4E6A-83BF-803B5B0D72DC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x86 = Debug|x86
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{F0AD4643-07CD-4E6A-83BF-803B5B0D72DC}.Debug|x86.ActiveCfg = Debug|x86
{F0AD4643-07CD-4E6A-83BF-803B5B0D72DC}.Debug|x86.Build.0 = Debug|x86
{F0AD4643-07CD-4E6A-83BF-803B5B0D72DC}.Release|x86.ActiveCfg = Release|x86
{F0AD4643-07CD-4E6A-83BF-803B5B0D72DC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {57558EA4-C4A4-45D2-9FB7-C5DF9D54501F}
EndGlobalSection
EndGlobal
7 changes: 7 additions & 0 deletions QI Tools/QuestUp.bat
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
@echo off
IF NOT EXIST "%allusersprofile%\3CXPhone for Windows\PhoneApp\Sounds\ringtone.wav.backup" (
COPY "%allusersprofile%\3CXPhone for Windows\PhoneApp\Sounds\ringtone.wav" "%allusersprofile%\3CXPhone for Windows\PhoneApp\Sounds\ringtone.wav.backup"
)

rem ECHO %1 >> c:\log.log
COPY "sounds\%1" "%allusersprofile%\3CXPhone for Windows\PhoneApp\Sounds\ringtone.wav"
Binary file added QI Tools/UpgradeLog.htm
Binary file not shown.
47 changes: 47 additions & 0 deletions QI Tools/Wooster AHK Scripts.wixproj
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" InitialTargets="EnsureWixToolsetInstalled" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>f0ad4643-07cd-4e6a-83bf-803b5b0d72dc</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>Wooster AHK Scripts</OutputName>
<OutputType>Package</OutputType>
<Name>Wooster AHK Scripts</Name>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
</PropertyGroup>
<ItemGroup>
<Compile Include="Product.wxs" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<Import Project="$(WixTargetsPath)" Condition=" '$(WixTargetsPath)' != '' " />
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets" Condition=" '$(WixTargetsPath)' == '' AND Exists('$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets') " />
<Target Name="EnsureWixToolsetInstalled" Condition=" '$(WixTargetsImported)' != 'true' ">
<Error Text="The WiX Toolset v3.11 (or newer) build tools must be installed to build this project. To download the WiX Toolset, see http://wixtoolset.org/releases/" />
</Target>
<PropertyGroup>
<PreBuildEvent />
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>
Binary file added QI Tools/WoosterGraphic.ico
Binary file not shown.
9 changes: 9 additions & 0 deletions QI Tools/WoosterTech.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
##### Make sure to re-run script (just run from Start menu, no need to exit) for changes to take effect.

[QuickStatusChange]

[BasicShortcuts]

[SW_Reset]

[RunAll]
208 changes: 208 additions & 0 deletions QI Tools/licenseagrmt.rtf

Large diffs are not rendered by default.

Binary file added QI Tools/q_on_green_bkgd.ico
Binary file not shown.
Binary file added QI Tools/q_on_red_bkgd.ico
Binary file not shown.
Binary file added QI Tools/q_on_yellow_bkgd.ico
Binary file not shown.
Binary file added QI Tools/qonlybig-edited.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added QI Tools/red_q_on_blue_bkgd.ico
Binary file not shown.
202 changes: 202 additions & 0 deletions Quick Status Change.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,202 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: Quick Status Change ; Change tooltip on icon in tray
CoordMode, Mouse, Client

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DetectHiddenWindows, On
SetTitleMatchMode, 2

; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for QSC
iniSection = QuickStatusChange

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["teamsSleep"] := 250
iniProps["changeTeams"] := 1
; iniProps["change3CX"] := 0
iniProps["availKey"] := "^F1"
iniProps["awayKey"] := "^F2"
iniProps["dndKey"] := "^F3"
iniProps["busyKey"] := "^F4"
iniProps["lunchKey"] := "^F6"
; iniProps["qLoginKey"] := "^F7"
; iniProps["qLogoutKey"] := "^F8"

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

onCallPosXY := StrSplit(iniProps["onCallPos"], ",") ; Separate X and Y components of read value
onCallColorList := StrSplit(iniProps["onCallColors"], ",") ; Separate colors into array of n-size

codeF1 = % "*" iniProps["codeIndex"] "0" ; Available
codeF2 = % "*" iniProps["codeIndex"] "1" ; Away
codeF3 = % "*" iniProps["codeIndex"] "2" ; DND
codeF5 = % "*" iniProps["codeIndex"] "3" ; n/a
codeF6 = % "*" iniProps["codeIndex"] "4" ; Lunch
; codeF7 = % "*62" ; Queue log in
; codeF8 = % "*63" ; Queue log out

teamsSleep := iniProps["teamsSleep"]
changeTeams := iniProps["changeTeams"]
; change3CX := iniProps["change3CX"]
availKey := iniProps["availKey"]
awayKey := iniProps["awayKey"]
dndKey := iniProps["dndKey"]
busyKey := iniProps["busyKey"]
lunchKey := iniProps["lunchKey"]
; qLoginKey := iniProps["qLoginKey"]
; qLogoutKey := iniProps["qLogoutKey"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Hotkey, %availKey%, availLabel
Hotkey, %awayKey%, awayLabel
Hotkey, %dndKey%, dndLabel
Hotkey, %busyKey%, busyLabel
Hotkey, %lunchKey%, lunchLabel
; Hotkey, %qLoginKey%, qLogin
; Hotkey, %qLogoutKey%, qLogout
return

availLabel:
StatusChange("available", codeF1, "green", changeTeams)
return

awayLabel:
StatusChange("brb", codeF2, "yellow", changeTeams, 1)
return

dndLabel:
StatusChange("dnd", codeF3, "red", changeTeams)
return

busyLabel:
StatusChange("busy", codeF3, "red", changeTeams)
return

lunchLabel:
StatusChange("brb", codeF6, "red", changeTeams)
return

; ^F5::StatusChange("available", codeF5, "yellow", changeTeams)

qLogin:
StatusChange("", codeF7, , 0)
return

qLogout:
StatusChange("", codeF8, , 0)
return

;############### Actual work being done ###################
StatusChange(keysTeams, pos3CX, icoColor := "default", teams := 1, winLock := 0) ; The function that actually does the window switching and change of status
{
winid := WinExist("A") ; Store ID of current active window
MouseGetPos, ogMousePosX, ogMousePosY ; Store current mouse position

; if WinExist("3CX -") and 3CX ; Check to make sure 3CX is running
; {
; global onCallPosXY
; global onCallColorList

; WinGet, Style, Style

; WinShow
; WinActivate
; WinActivate ; Not sure why this has to be sent twice, seems to be related to virtual desktops
; WinWaitActive, , , 1 ; Make sure window got activated within 1 second
; If ErrorLevel ; Run if window did not activate within timeout value
; {
; MsgBox, 8208, Error, "3CX Timed Out, moving on...", 2
; Goto, 3cxSkip
; }

; ; MsgBox, 4132, Question, Is 3CX visible?
; ; IfMsgBox, No
; ; Return

; MouseMove, onCallPosXY[1], onCallPosXY[2], 0

; ; Check if on a call, don't change status
; PixelGetColor, onCall, onCallPosXY[1], onCallPosXY[2] ; Check color of window in "End Call" button area

; Loop % onCallColorList.MaxIndex()
; {
; if (onCall = onCallColorList[A_Index])
; Goto, 3cxSkip
; }

; If !(Style & 0x10000000) ; 0x10000000 is WS_VISIBLE
; {
; WinMinimize
; WinHide
; }

; Run, "C:\ProgramData\3CXPhone for Windows\PhoneApp\3CXClickToCall.exe" "%pos3CX%"

; 3cxSkip:
; }

if WinExist("| Microsoft Teams") and teams ; Check to make sure Teams is running
{
global teamsSleep ; Allows variable to be pulled in from outside of function

WinGet, Style, Style
; If (Style & 0x10000000) ; 0x10000000 is WS_VISIBLE
; MsgBox, My Window is Visible
; Else MsgBox, My Window is Hidden
If !(Style & 0x10000000)
WinRestore
WinActivate
WinActivate ; Not sure why this has to be sent twice, seems to be related to virtual desktops
WinWaitActive, , , 1 ; Make sure window got activated within 1 second
If ErrorLevel ; Run if window did not activate within timeout value
{
MsgBox, 8208, Error, "Teams Timed Out, moving on...", 2
Goto, teamsSkip
}
SendInput, ^e
Sleep, 50
SendInput, /
Sleep, 100
Send, %keysTeams%
Sleep, %teamsSleep% ; Seems to need a delay before sending enter
SendInput, {Enter}
Sleep, %teamsSleep% ; Seems to be more reliable with a delay before switching apps

If !(Style & 0x10000000) ; 0x10000000 is WS_VISIBLE
{
WinMinimize
WinHide
}

teamsSkip:
}

WinActivate, ahk_id %winid% ; Switch back to original active window
MouseMove, ogMousePosX, ogMousePosY, 0 ; Restore original mouse position

; if (icoColor = "green") ; Changes icon color based on call
; {
; Menu, Tray, Icon, images\q_on_green_bkgd.ico
; } else if (icoColor = "yellow") {
; Menu, Tray, Icon, images\q_on_yellow_bkgd.ico
; } else if (icoColor = "red") {
; Menu, Tray, Icon, images\q_on_red_bkgd.ico
; } else if (icoColor = "default") {
; Sleep, 1
; }

if winLock ; Locks computer
{
MsgBox, 4132, Timer, 5 Seconds until lock., 5
IfMsgBox, No
Sleep, 1
else
DllCall("LockWorkStation")
}
}
82 changes: 47 additions & 35 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,50 @@
# AutoHotKey

## HipChat Script
This is a compiled [AutoHotKey](https://autohotkey.com/ "AutoHotKey's Homepage") script that makes it easy to change HipChat status. Automatically switches back to active window.

Now also changes Teams status. Teams doesn't support messages with the status. Brackets indicate what will happen in Teams vs. what happens in HipChat.

+ Ctrl+F1 - Available
+ Ctrl+F2 - Do Not Disturb On Phone [Do Not Disturb]
+ Ctrl+F3 - Away Back ~{current time + 15 rounded **UP** to nearest 5 minutes} [Be Right Back]
+ Ctrl+F4 - Away PM Me [Be Right Back]
+ Ctrl+F5 - Away {prompt for message} [Away]
+ Ctrl+F6 - Do Not Disturb {prompt for message} [Do Not Disturb]

## Window Switching Script
Quick switching to commonly open windows

+ Ctrl+Shift+F1 - HipChat
+ Ctrl+Shift+F2 - Remote Desktop (must include "gm rdp" in title bar)
+ Ctrl+Shift+F3 - Outlook
+ Ctrl+Shift+F4 - slack
+ Ctrl+Shift+F5 - Firefox
+ Ctrl+Shift+F6 - GoToMeeting
+ Ctrl+Shift+F7 - Chrome
+ Ctrl+Shift+F8 - SOLIDWORKS

On my keyboard, I have those programmed to (in order):
+ fn+h
+ fn+g
+ fn+o
+ fn+s
+ fn+f
+ fn+m
+ fn+c
+ fn+w
# Quest Tools

## Quick Status Change
Changes status in MS Teams. Teams doesn't seem to be perfectly reliable, change *teamsSleep* value (see **Edit Settings** below).

The shortcuts below are editable in the **Settings**. See me for tips on changing these.

+ Ctrl+F1 - *Available*
+ Ctrl+F2 - *Away* (Prompts to lock computer)
+ Ctrl+F3 - *Do Not Disturb* (**NO** notifications in MS Teams)
+ Ctrl+F4 - *Busy*
+ Ctrl+F5 - *Custom 1* (**DND** in Teams)
+ Ctrl+F6 - *Custom 2* (**Away** in Teams)

## Basic Shortcuts
Provides an option to **lock** the numlock on. This means that you *cannot* turn off numlock.

By default, this option is disabled. Follow instructions in **Edit Settings** to set the *numLockOn* value to **1**.

## Window Wizard
Hides and shows different windows. Will always bring focus to the window.

+ F7 - Your Phone
+ F8 - Slack (I've had issues with hiding this, edit Settings file [see below] to set *SlackHide* to **0**)
+ F9 - Teams
+ F10 - Outlook
+ F11 - 8x8 Phone

_Commands for Teams are configured in **Settings**, if Teams changes how it launches, these may need to be updated._

## AppKill
Sometimes killing Teams from the System Tray doesn't work (Teams starts itself again). This kills the process. If you get an warning message that it couldn't kill Teams, run it a second time, that seems to work.

+ Left Ctrl+Left Alt+Numpad 5 - *Kill Teams*

_Hotkeys can be modified using **Edit Settings** below_

## Edit Settings
Click **Settings** in Start Menu>QI Tools and modify affected value.

## SOLIDWORKS Reset - *Not currently implemented*
Kills and restarts SOLIDWORKS. Version that gets started is controlled in INI file (see notes in Quick Status Change above). Change to appropriate shortcut or EXE.

I suggest pinning the icon (benign looking) onto your taskbar.

## 3DConnexion Reset - *Not currently implemented*
Automates running **Stop Driver** followed by **Start Driver**. Will make sure the driver is fully stopped before trying to start it.

**_Please submit issues/comments/suggests using Issues on GitHub_**

52 changes: 52 additions & 0 deletions SOLIDWORKS Kill.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: SOLIDWORKS Kill ; Change tooltip on icon in tray

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for 3CX
iniSection = SW_Kill

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["process_name"] := "sldworks.exe"
iniProps["program_name"] := "SOLIDWORKS"
; iniProps["start_path"] := "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SOLIDWORKS 2020\SOLIDWORKS 2020.lnk"

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

process_name := iniProps["process_name"]
program_name := iniProps["program_name"]
; start_path := iniProps["start_path"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Process, Exist, %process_name% ; Check to make sure that it's running
If ErrorLevel { ; Returns 0 if no matching program
ToolTip, Stopping %program_name%
Process, Close, %process_name%

Process, WaitClose, %process_name%, 5 ; Ensure process is killed before continuing
If ErrorLevel {
MsgBox, 8208, Error, Unable to close %program_name%, 5
Exit
}

ToolTip, %program_name% killed
; ToolTip
;
; ToolTip, Starting %program_name%
; Run, %start_path%
;
; Process, Wait, %process_name%
; If not ErrorLevel {
; MsgBox, 8208, Error, "%program_name% Timed Out", 3
; Exit
; }

Sleep, 3000 ; Keep tooltip visible for 3 seconds after process is "up"
ToolTip
}
50 changes: 50 additions & 0 deletions SOLIDWORKS Reset.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
#SingleInstance, force ; Forces only one instance, allows to re-run script without reloading
Menu, Tray, Icon, images\WoosterGraphic.ico ; Icon for this script
Menu, Tray, Tip, WTS: SOLIDWORKS Reset ; Change tooltip on icon in tray

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for 3CX
iniSection = SW_Reset

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["process_name"] := "sldworks.exe"
iniProps["program_name"] := "SOLIDWORKS"
iniProps["start_path"] := "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\SOLIDWORKS 2021\SOLIDWORKS 2021.lnk"

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

process_name := iniProps["process_name"]
program_name := iniProps["program_name"]
start_path := iniProps["start_path"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Process, Exist, %process_name% ; Check to make sure that it's running
If ErrorLevel { ; Returns 0 if no matching program
ToolTip, Stopping %program_name%
Process, Close, %process_name%

Process, WaitClose, %process_name%, 5 ; Ensure process is killed before continuing
If ErrorLevel {
MsgBox, 8208, Error, Unable to close %program_name%, 5
Exit
}
ToolTip

ToolTip, Starting %program_name%
Run, %start_path%

Process, Wait, %process_name%
If not ErrorLevel {
MsgBox, 8208, Error, "%program_name% Timed Out", 3
Exit
}

Sleep, 3000 ; Keep tooltip visible for 3 seconds after process is "up"
ToolTip
}
47 changes: 47 additions & 0 deletions ScriptStart.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#SingleInstance, force
Menu, Tray, Tip, ScriptStart

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file
iniSection = ScriptStart

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["fullList"] := "Master,Basic Shortcuts,Quick Status Change,Window Wizard,AppKill"
iniProps["startList"] := "Master,Basic Shortcuts,Quick Status Change,Window Wizard,AppKill"
iniProps["delay"] := 100

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

startList := StrSplit(iniProps["startList"], ",")
delay := iniProps["delay"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;


SplashImage, images/qonlybig-edited.png, b CWC40233, %A_Space%
Sleep, 500

For index, program in startList
{
Start(program, , %delay%)
}

SplashImage, Off

Start(file, type := "exe", fDelay := 100)
{
fFile := % file "." type
If FileExist(fFile)
{
SplashImage, , , % "Starting: " file
Run, %fFile%
Sleep, %fDelay%
}
Sleep, 500
}
42 changes: 0 additions & 42 deletions Teams Scripts.ahk

This file was deleted.

155 changes: 0 additions & 155 deletions Window Switching.ahk

This file was deleted.

209 changes: 209 additions & 0 deletions Window Wizard.ahk
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
#SingleInstance, force
Menu, Tray, Icon, images\WoosterGraphic.ico
Menu, Tray, Tip, WTS: Window Wizard

SetTitleMatchMode 2
DetectHiddenWindows, On

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Initialization ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Define INI file location
pathINI = % A_AppData "\Wooster Technical Solutions\WoosterTech.ini"

; Section of INI file for 3CX
iniSection = WindowWizard

; Initialize iniProps
iniProps := {}

; Properties from INI file with their defaults
iniProps["SlackHide"] := true
iniProps["OutlookHide"] := true
iniProps["TeamsHide"] := true
iniProps["3cxHide"] := false
iniProps["8by8Hide"] := true
iniProps["YourPhoneHide"] := true
iniProps["outlookKey"] := "F10"
iniProps["slackKey"] := "F8"
iniProps["teamsKey"] := "F9"
iniProps["8by8Key"] := "F11"
iniProps["YourPhoneKey"] := "F7"
iniProps["teamsCommand"] := """""C:\Users\" A_UserName "\AppData\Local\Microsoft\Teams\Update.exe"" --processStart ""Teams.exe"""""
iniProps["slackCommand"] := "Slack.exe"
iniProps["slackWinTitle"] := "Slack |"
iniProps["8by8WinTitle"] := "8x8 Work"
iniProps["8by8Command"] := """""C:\Users\" A_UserName "\AppData\Local\8x8-Work\8x8 Work.exe"""
iniProps["YourPhoneWinTitle"] := "Your Phone"
iniProps["YourPhoneCommand"] := "MicrosoftYourPhone_8wekyb3d8bbwe!App"

iniProps := WTSFunctions_readINI(pathINI, iniProps, iniSection)

TeamsHide := iniProps["TeamsHide"]
SlackHide := iniProps["SlackHide"]
OutlookHide := iniProps["TeamsHide"]
3cxHide := iniProps["3cxHide"]
8by8Hide := iniProps["8by8Hide"]
YourPhoneHide := iniProps["YourPhoneHide"]
outlookKey := iniProps["outlookKey"]
slackKey := iniProps["slackKey"]
teamsKey := iniProps["teamsKey"]
8by8Key := iniProps ["8by8Key"]
YourPhoneKey := iniProps["YourPhoneKey"]
teamsCommand := iniProps["teamsCommand"]
slackCommand := iniProps["slackCommand"]
slackWinTitle := iniProps["slackWinTitle"]
8by8WinTitle := iniProps["8by8WinTitle"]
8by8Command := iniProps["8by8Command"]
YourPhoneWinTitle := iniProps["YourPhoneWinTitle"]
YourPhoneCommand := iniProps["YourPhoneCommand"]

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Main Code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Hotkey, %outlookKey%, outlook
Hotkey, %teamsKey%, teams
Hotkey, %slackKey%, slack
Hotkey, %8by8Key%, 8by8
Hotkey, %YourPhoneKey%, yourPhone
return

outlook:
if WinExist("- Outlook")
{
WTSFunctions_winShow(OutlookHide)
} else {
try run Outlook.exe
catch e
MsgBox, 16, Outlook Error, Didn't find Outlook Window`nUnable to run Outlook`n%e%
}
return

teams:
if WinExist("| Microsoft Teams") or WinExist("ahk_exe Teams.exe")
{
WTSFunctions_winShow(TeamsHide)
} else {
try run %teamsCommand%
catch e
MsgBox, 16, Teams Error, Didn't find Teams window`nUnable to run Teams`n%e%
}
return

slack:
if WinExist(slackWinTitle)
{
WTSFunctions_winShow(SlackHide)
} else {
try run %slackCommand%
catch e
MsgBox, 16, Slack Error, Didn't find Slack window`nUnable to run Slack`n%e%
}
return

8by8:
if WinExist(8by8WinTitle)
{
WTSFunctions_winShow(8by8Hide)
} else {
try run %8by8Command%
catch e
MsgBox, 16, 8x8 Work Error, Didn't find 8x8 Work window`nUnable to run 8x8 Work`n%e%
}
return

yourPhone:
if WinExist(YourPhoneWinTitle)
{
WTSFunctions_winShow(YourPhoneHide)
} else {
try run %YourPhoneCommand%
catch e
MsgBox, 16, Your Phone Error, Didn't find Your Phone window`nUnable to run Your Phone`n%e%
}
return

; ^!p::gotoChannel("DE{space}-{space}TS") ; Direct access to DE - TS "general" channel

; ^!l::gotoChannel("Lunch") ; Direct access to DE - TS "lunch" channel

^!1:: ; Opens "Activities"
error := activateTeams()
if !error
{
SendInput, ^1
} else {
errorHandler("teams", error)
}
return

^!2:: ; Opens "Chat"
error := activateTeams()
if !error
{
SendInput, ^2
} else {
errorHandler("teams", error)
}
return

^!3:: ; Opens "Teams"
error := activateTeams()
if !error
{
SendInput, ^3
} else {
errorHandler("teams", error)
}
return

gotoChannel(channel)
{
error := activateTeams()
if !error
{
Send, ^e
Sleep, 50
Send, /
Sleep, 100
Send, goto
Sleep, 100
Send, {space}
Sleep, 400
Send, %channel%
Sleep, 200
Send, {tab}{enter}
} else {
errorHandler("teams", error)
}
}

activateTeams()
{
if WinExist("| Microsoft Teams") ; Check to make sure Teams is running
{
WinGet, Style, Style
If !(Style & 0x10000000)
WinRestore
WinActivate
WinActivate ; Not sure why this has to be sent twice, seems to be related to virtual desktops
WinWaitActive, , , 1 ; Make sure window got activated within 1 second
If ErrorLevel ; Run if window did not activate within timeout value
{
return 1
}
return 0

} else {
return 2
}
}

errorHandler(errorSource, errorNo)
{
if errorSource = teams
{
if errorNo = 1
MsgBox, 8208, Error, "Teams timed out, try again."
else if (errorNo = 2)
MsgBox, 8208, Error, "Didn't find Teams, try again."
else
MsgBox, 8208, Error, "Unspecified error."
}
}
13 changes: 13 additions & 0 deletions WoosterTech.ini
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
##### Make sure to re-run script (just run from Start menu, no need to exit) for changes to take effect.

[QuickStatusChange]

[BasicShortcuts]

[SW_Reset]

[ScriptStart]

[AppKill]

[WindowWizard]
Binary file added WoosterTech/images/3CX.xcf
Binary file not shown.
Binary file added WoosterTech/images/3CX_screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added WoosterTech/images/3cx.ico
Binary file not shown.
Binary file added WoosterTech/images/WoosterGraphic.ico
Binary file not shown.
Binary file added WoosterTech/images/available.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added WoosterTech/images/q_on_green_bkgd.ico
Binary file not shown.
Binary file added WoosterTech/images/q_on_green_bkgd.xcf
Binary file not shown.
Binary file added WoosterTech/images/q_on_red_bkgd.ico
Binary file not shown.
Binary file added WoosterTech/images/q_on_red_bkgd.xcf
Binary file not shown.
Binary file added WoosterTech/images/q_on_yellow_bkgd.ico
Binary file not shown.
Binary file added WoosterTech/images/q_on_yellow_bkgd.xcf
Binary file not shown.
Binary file added WoosterTech/images/qonly.ico
Binary file not shown.
Binary file added WoosterTech/images/quick_change.ico
Binary file not shown.
Binary file added WoosterTech/images/quick_change.xcf
Binary file not shown.
Binary file added WoosterTech/images/red_q_on_blue_bkgd.bmp
Binary file not shown.
Binary file added WoosterTech/images/red_q_on_blue_bkgd.ico
Binary file not shown.
Binary file added WoosterTech/images/red_q_on_blue_bkgd.xcf
Binary file not shown.
Binary file added images/3CX.xcf
Binary file not shown.
Binary file added images/3CX_screen.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/3cx.ico
Binary file not shown.
Binary file added images/WoosterGraphic.ico
Binary file not shown.
Binary file added images/available.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/q_on_green_bkgd.ico
Binary file not shown.
Binary file added images/q_on_green_bkgd.xcf
Binary file not shown.
Binary file added images/q_on_red_bkgd.ico
Binary file not shown.
Binary file added images/q_on_red_bkgd.xcf
Binary file not shown.
Binary file added images/q_on_yellow_bkgd.ico
Binary file not shown.
Binary file added images/q_on_yellow_bkgd.xcf
Binary file not shown.
Binary file added images/qonly.ico
Binary file not shown.
Binary file added images/qonlybig-edited.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/qonlybig.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/qonlybig.xcf
Binary file not shown.
Binary file added images/quick_change.ico
Binary file not shown.
Binary file added images/quick_change.xcf
Binary file not shown.
Binary file added images/red_q_on_blue_bkgd.bmp
Binary file not shown.
Binary file added images/red_q_on_blue_bkgd.ico
Binary file not shown.
Binary file added images/red_q_on_blue_bkgd.xcf
Binary file not shown.
5 changes: 0 additions & 5 deletions remap win key.ahk

This file was deleted.