Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Skype Tamer: Managing windows and cleaning up annoyances


  • Please log in to reply
2 replies to this topic
Greslin
  • Members
  • 2 posts
  • Last active: Jan 23 2014 03:07 AM
  • Joined: 20 Nov 2013

Skype Tamer

 

I use Skype very regularly in my work as a primary phone from my laptop.  As great as it is for a small business owner, Skype has a number of "features" that drive me nuts.  Enter Autohotkey.

 

It's nothing particularly sophisticated, but so far this script does the following (Windows client v.6.10.59.104):

 

1.  Reduces the size of the main Skype client window as much as possible, and pins it to the lower right of the screen.

 

2.  Limits to one conversation window open at a time, removing the bottom/oldest instance whenever a new one is spawned.  Normally, Skype will open a new window every time a call is initiated, and doesn't close it when the call is done, often leaving many windows to clean up later.

 

3.  When a conversation window is open, pins it to the upper right of the screen.  Otherwise, Skype spawns each new window at a random screen location.

 

4.  When a call is active, Tamer attempts to spawn the mini mute/hangup control automatically.  When it spawns, it is relocated to the top center of the screen, set to always-on-top and with a partial transparency.

 

5.  I use two different popular call recording apps.  They both get moved out of the way when they spawn windows.

 

6.  The annoying call quality questionnaire popup is killed as soon as it appears.

 

I'm using it on Windows 7, and it's primarily designed for laptop users with limited screen space, but who use Skype heavily.  The script runs in the background and leashes Skype's behavior as it happens.

 

I'm aware it's still somewhat crude, so I'd love suggestions for improvement.  Thanks!

;
; Skype Tamer
;

#Persistent
SetTimer, Skype_Clean, 200
Return

; ------ ------ ------

Skype_Clean:
	Max_Wins = 1 ; maximum # of Skype call windows open at one time
	
	SetTitleMatchMode, 2
	WinGet, num, count, ahk_class TConversationForm
	if (num > Max_Wins)
	{
		WinGet, id, list, ahk_class TConversationForm
		v := id%id%
		winclose, ahk_id %v%
		num -= 1
	}
	
	if (num = 1) {
		; pin skype conversation window to upper right
		WinGetPos, X, Y, W, H, ahk_class TConversationForm
		NewX := A_ScreenWidth - W
		WinMove, ahk_class TConversationForm,, NewX, 0
	}
	
	; pin skype main to bottom right and reduce size to minimum
	
	WinGetPos, X, Y, W, H, ahk_class tSkMainForm
	NewX := A_ScreenWidth - W
	NewY := A_ScreenHeight - H
	WinMove, ahk_class tSkMainForm,, NewX, NewY, 0, 0
	
	; whenever skype is on a call, bottom the Conv window, activate the top
	; and then click top center to activate the minimized control
	
	ControlGet, dialing, Visible,, TNonLiveCallToolbar1, ahk_class TConversationForm
	if (dialing < 1)
	{
		if (On_A_Call != 1)
		{
			On_A_Call = 1
			WinSet, Bottom,, ahk_class TConversationForm
			WinGet, wList, List
			WinActivate, ahd_id %wList1%
			WinActivate
			NewX := A_ScreenWidth / 2
			Sleep 200
			Click NewX, 1
		}
	} else {
		On_A_Call = 0
	}
	
	; TCallMonitorForm
	; this is the minimized call monitor.  move it to middle-top and always on top.
	
	IfWinExist, ahk_class TCallMonitorForm
	{
		WinGetPos, X, Y, W, H, ahk_class TCallMonitorForm
		NewX := (A_ScreenWidth / 2) - (W / 2)
		NewY := 0
		WinMove, ahk_class TCallMonitorForm,, NewX, NewY, 0, 0
		WinSet, AlwaysOnTop, On
		WinSet, Transparent, 150, ahk_class TCallMonitorForm
	}
	
	; Move Skype recorder gadgets to background, out of the way
	
	SetTitleMatchMode, 3
	WinMove, MP3 Skype Recorder,, 0, 0
	WinSet, Bottom,, MP3 Skype Recorder
	WinSet, Bottom,, ahk_class TRecordPopup
	
	; is that call quality feedback window up?  kill it.
	
	SetTitleMatchMode, Regex
	WinClose, ^Skype.*Call quality feedback$
Return


toonwolf
  • Members
  • 3 posts
  • Last active: Apr 15 2014 10:06 AM
  • Joined: 14 Apr 2014

This is a great script. I'm new to AHK. Can you please tell me how I can make Incoming calls maximize in full window, and after call ended minimize Skype to tray?



rodj
  • Members
  • 1 posts
  • Last active: Feb 18 2019 05:01 PM
  • Joined: 28 Oct 2015

Thanks for this post - some great ideas here. I am going to incorporate into my own scripts.