AutoHotkey Community

It is currently May 26th, 2012, 4:04 pm

All times are UTC [ DST ]




Post new topic Reply to topic  [ 2 posts ] 
Author Message
PostPosted: April 6th, 2009, 10:07 pm 
Offline

Joined: April 6th, 2009, 7:36 pm
Posts: 2
Ive had a simple idea of switching tasks by mouse gestures (and by hotkeys when i use touchpad).
I dont like complicated gestures - just straight lines in 8 directions.

So for example you switch to winamp by gesture UP, switch to total commander by gesture DOWN, switch to pdf reader on LEFT and so on.
You assign gesture to application by holding ctrl and making gesture you want it to be connected with.

The applications are recognized by window title. If you hold ctrl and alt it will let you change the window title which will be launched by gesture - useful with applications with dynamic title - like internet browser or media player.

Im new to autohotkey so i wrote really simple and _really stupid_ script and connected it with strokeit (it sends key strokes to autohotkey):
Code:
SetTitleMatchMode, 2

IniRead, g1, Stored.ini, StoredApps, g1
IniRead, g2, Stored.ini, StoredApps, g2
IniRead, g3, Stored.ini, StoredApps, g3
IniRead, g4, Stored.ini, StoredApps, g4
IniRead, g5, Stored.ini, StoredApps, g5
IniRead, g6, Stored.ini, StoredApps, g6
IniRead, g7, Stored.ini, StoredApps, g7


#F1::
   ifwinexist, %g1%
      WinActivate
   else
      MsgBox, ,,Window "%g1%" doesnt exist.,0.3
   return

^!#F1::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g1=%Title2%
   IniWrite, %g1%, Stored.ini, StoredApps, g1
return

^#F1::
   WinGetActiveTitle, Title   
   g1=%Title%
   IniWrite, %g1%, Stored.ini, StoredApps, g1
return


#F2::
   ifwinexist, %g2%
      WinActivate
   else
      MsgBox, ,,Window "%g2%" doesnt exist.,0.3
   return

^!#F2::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g2=%Title2%
   IniWrite, %g2%, Stored.ini, StoredApps, g2
return

^#F2::
   WinGetActiveTitle, Title   
   g2=%Title%
   IniWrite, %g2%, Stored.ini, StoredApps, g2
return


#F3::
   ifwinexist, %g3%
      WinActivate
   else
      MsgBox, ,,Window "%g3%" doesnt exist.,0.3
   return

^!#F3::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g3=%Title2%
   IniWrite, %g3%, Stored.ini, StoredApps, g3
return

^#F3::
   WinGetActiveTitle, Title   
   g3=%Title%
   IniWrite, %g3%, Stored.ini, StoredApps, g3
return


#F4::
   ifwinexist, %g4%
      WinActivate
   else
      MsgBox, ,,Window "%g4%" doesnt exist.,0.3
   return

^!#F4::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g4=%Title2%
   IniWrite, %g4%, Stored.ini, StoredApps, g4
return

^#F4::
   WinGetActiveTitle, Title   
   g4=%Title%
   IniWrite, %g4%, Stored.ini, StoredApps, g4
return


#F5::
   ifwinexist, %g5%
      WinActivate
   else
      MsgBox, ,,Window "%g5%" doesnt exist.,0.3
   return

^!#F5::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g5=%Title2%
   IniWrite, %g5%, Stored.ini, StoredApps, g5
return

^#F5::
   WinGetActiveTitle, Title   
   g5=%Title%
   IniWrite, %g5%, Stored.ini, StoredApps, g5
return


#F6::
   ifwinexist, %g6%
      WinActivate
   else
      MsgBox, ,,Window "%g6%" doesnt exist.,0.3
   return

^!#F6::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g6=%Title2%
   IniWrite, %g6%, Stored.ini, StoredApps, g6
return

^#F6::
   WinGetActiveTitle, Title   
   g6=%Title%
   IniWrite, %g6%, Stored.ini, StoredApps, g6
return


#F7::
   ifwinexist, %g7%
      WinActivate
   else
      MsgBox, ,,Window "%g7%" doesnt exist.,0.3
   return

^!#F7::   
   WinGetActiveTitle, Title
   InputBox, Title2 , Enter window title, Enter window title:, , , , , , , , %Title%
   g7=%Title2%
   IniWrite, %g7%, Stored.ini, StoredApps, g7
return

^#F7::
   WinGetActiveTitle, Title   
   g7=%Title%
   IniWrite, %g7%, Stored.ini, StoredApps, g7
return


As you can see its really ugly code but it works and is quite handy. It would be cool if someone wrote it properly.

Tip: Ive been using strokeIt for a long time. Configured to Rbutton - so to keep my existing gestures i wanted task switching on Mbutton. But you can have only one gesture button in strokeit. So i made a copy of it, hex changed StrokeIt to StrokeIm inside of the exe and configured task switching gestures on this another instance running on Mbutton :].


Report this post
Top
 Profile  
Reply with quote  
 Post subject:
PostPosted: April 12th, 2009, 5:57 pm 
Offline

Joined: April 6th, 2009, 7:36 pm
Posts: 2
Updated the code.

Any ideas how to get rid of all the repetitive labels at the end?

Code:
SetTitleMatchMode, 2
ininame=Stored.ini
IniRead, hotkeysCount, %ininame%, Hotkeys, hotkeysCount


Loop, %hotkeysCount%
{
   IniRead, hotkey%a_index%, %ininame%, Hotkeys, hotkey%a_index%
   IniRead, title%a_index%, %ininame%, StoredApps, title%a_index%
   key = % hotkey%a_index%
   hotkey, #%key%, activate%a_index%
   hotkey, #^%key%, assign%a_index%
   hotkey, #!^%key%, assignAsk%a_index%
}


return

activate(num)
{
   ifwinexist, % title%num%
      WinActivate
   else
      MsgBox, ,,% "Window '" title%num% "' doesnt exist.",0.3
}


assignAsk(num)
{
   WinGetActiveTitle, Title2
   InputBox, Title , Enter window title, Enter window title:, , , , , , , , %Title2%
   title%num%:=Title
   IniWrite, % title%num%, %ininame%, StoredApps, title%num%
}

assign(num)
{
   WinGetActiveTitle, Title   
   title%num%:=Title
   IniWrite, % title%num%, %ininame%, StoredApps, title%num%
}

activate1:
activate(1)
return
activate2:
activate(2)
return
activate3:
activate(3)
return
activate4:
activate(4)
return
activate5:
activate(5)
return
activate6:
activate(6)
return
activate7:
activate(7)
return
activate8:
activate(8)
return
activate9:
activate(9)
return
activate10:
activate(10)
return
activate11:
activate(11)
return
activate12:
activate(12)
return
activate13:
activate(13)
return
activate14:
activate(14)
return
activate15:
activate(15)
return
activate16:
activate(16)
return



assign1:
assign(1)
return
assign2:
assign(2)
return
assign3:
assign(3)
return
assign4:
assign(4)
return
assign5:
assign(5)
return
assign6:
assign(6)
return
assign7:
assign(7)
return
assign8:
assign(8)
return
assign9:
assign(9)
return
assign10:
assign(10)
return
assign11:
assign(11)
return
assign12:
assign(12)
return
assign13:
assign(13)
return
assign14:
assign(14)
return
assign15:
assign(15)
return
assign16:
assign(16)
return


assignAsk1:
assignAsk(1)
return
assignAsk2:
assignAsk(2)
return
assignAsk3:
assignAsk(3)
return
assignAsk4:
assignAsk(4)
return
assignAsk5:
assignAsk(5)
return
assignAsk6:
assignAsk(6)
return
assignAsk7:
assignAsk(7)
return
assignAsk8:
assignAsk(8)
return
assignAsk9:
assignAsk(9)
return
assignAsk10:
assignAsk(10)
return
assignAsk11:
assignAsk(11)
return
assignAsk12:
assignAsk(12)
return
assignAsk13:
assignAsk(13)
return
assignAsk14:
assignAsk(14)
return
assignAsk15:
assignAsk(15)
return
assignAsk16:
assignAsk(16)
return


example Stored.ini:
Code:
[StoredApps]
title1=
title2=
title5=
title4=
title7=
title6=
title3=

[Hotkeys]
hotkeysCount=7
hotkey1=F1
hotkey2=F2
hotkey3=F3
hotkey4=F4
hotkey5=F5
hotkey6=F6
hotkey7=F7


example Default.cfg in strokeit Actions folder:
Code:
down {
   gesture = Down
   New Command = keys, hotkey [WIN_DOWN][F1][WIN_UP]
}
\down {
   gesture = \ Down
   New Command = keys, hotkey [WIN_DOWN][F2][WIN_UP]
}
/down {
   gesture = / Down
   New Command = keys, hotkey [WIN_DOWN][F3][WIN_UP]
}
right {
   gesture = Right
   New Command = keys, hotkey [ALT_DOWN][TAB][ALT_UP]
}
\up {
   gesture = \ Up
   New Command = keys, hotkey [WIN_DOWN][F4][WIN_UP]
}
/up {
   gesture = / Up
   New Command = keys, hotkey [WIN_DOWN][F5][WIN_UP]
}
up {
   gesture = Up
   New Command = keys, hotkey [WIN_DOWN][F6][WIN_UP]
}
left {
   gesture = Left
   New Command = keys, hotkey [WIN_DOWN][F7][WIN_UP]
}


Report this post
Top
 Profile  
Reply with quote  
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 2 posts ] 

All times are UTC [ DST ]


Who is online

Users browsing this forum: No registered users and 13 guests


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

Search for:
Powered by phpBB® Forum Software © phpBB Group