Open Side Menu Go to the Top
Register
AHK script:Stars Filtered SNG Opener AHK script:Stars Filtered SNG Opener

05-22-2009 , 01:37 PM
sorry, software noob here, but how do i actually get this to work. i've downloaded sfso_v3.2.2.ahk from overcards.com but now i just have the file, what do i do with it? sorry if im missing something very obvious.
AHK script:Stars Filtered SNG Opener Quote
05-22-2009 , 01:38 PM
Quote:
Originally Posted by alexanderbledel
I continue having the problem with the "Registered in tournaments" window! I'm going crazy! It popups hundreds of time when I'm palying, slowing the software...

Can anyone has something to suggest me? 2 of my friends are using Stars+SFSO+Debustifier+TableNinja on Vista like me without problem...

Vista Ultimate 64 bit... Is that the problem??
same here
AHK script:Stars Filtered SNG Opener Quote
05-22-2009 , 02:24 PM
Quote:
Originally Posted by LuckyLloyd
sorry, software noob here, but how do i actually get this to work. i've downloaded sfso_v3.2.2.ahk from overcards.com but now i just have the file, what do i do with it? sorry if im missing something very obvious.
lobby = black?
AHK script:Stars Filtered SNG Opener Quote
05-23-2009 , 02:55 AM
Quote:
Originally Posted by LuckyLloyd
sorry, software noob here, but how do i actually get this to work. i've downloaded sfso_v3.2.2.ahk from overcards.com but now i just have the file, what do i do with it? sorry if im missing something very obvious.
Install AutoHotkey, it will let you run *.ahk files.
AHK script:Stars Filtered SNG Opener Quote
06-01-2009 , 12:21 PM
If you are having problems with this script you could try Tableninja. They added a bulk stars sng registration feature in their latest release.
AHK script:Stars Filtered SNG Opener Quote
06-01-2009 , 01:14 PM
i cant get sfso to work. it says that it registers me into games but doesnt actually register me. can some one help?
AHK script:Stars Filtered SNG Opener Quote
06-05-2009 , 09:54 PM
how can i set up just for open for example 1.20 sit of 9 person, and not register in 1.15 10 person DoN's ?
AHK script:Stars Filtered SNG Opener Quote
06-07-2009 , 07:41 PM
sfso is making my stars freeze when it regs now. =(
AHK script:Stars Filtered SNG Opener Quote
06-07-2009 , 08:43 PM
Quote:
Originally Posted by ligareaux
how can i set up just for open for example 1.20 sit of 9 person, and not register in 1.15 10 person DoN's ?
Put a "- double" in the filter text box
AHK script:Stars Filtered SNG Opener Quote
06-11-2009 , 07:49 AM
With the inclusion of this feature in both PokerShortcuts and TableNinja I have decided to not make any further updates to this script.

Thanks everyone who has been supportive both here and with small donations, it was fun making a script that people actually seemed to have a use for. Good luck in your further don'n'goin!
AHK script:Stars Filtered SNG Opener Quote
06-11-2009 , 01:23 PM
That's a bummer, but thx for this great program.
Btw. how far did you get with 4.0? Maybe someone could finish what you have started there?
AHK script:Stars Filtered SNG Opener Quote
06-12-2009 , 10:34 AM
Quote:
Originally Posted by Everlong
With the inclusion of this feature in both PokerShortcuts and TableNinja I have decided to not make any further updates to this script.

Thanks everyone who has been supportive both here and with small donations, it was fun making a script that people actually seemed to have a use for. Good luck in your further don'n'goin!
Thank you for all of the time and effort you put into this project.



Is there by any chance a semi-working v4 that you could upload so that other people could take a look at it?
AHK script:Stars Filtered SNG Opener Quote
06-12-2009 , 12:48 PM
Quote:
Originally Posted by Everlong
With the inclusion of this feature in both PokerShortcuts and TableNinja I have decided to not make any further updates to this script.

Thanks everyone who has been supportive both here and with small donations, it was fun making a script that people actually seemed to have a use for. Good luck in your further don'n'goin!
That's too bad. Being open-source, it was possible to tweak the opener. I was about 90% the way to having a functioning "sharklist" with SFSO -- and it appears that the sharklist feature of PSC isn't going to work with stars anytime soon. Real life got in the way to completing the final 10%.

Jeff
AHK script:Stars Filtered SNG Opener Quote
06-13-2009 , 07:15 AM
wtf i was 100% sure i had replied yesterday, anyway i will post what is v4 on monday although its not working
AHK script:Stars Filtered SNG Opener Quote
06-13-2009 , 09:46 AM
What's different to the version SFSO_4.0.ahk on overcards?
I tried that one and it works quite well imo.
SFSO works much more reliable than the sng opener in PSC here. The table ninja opener is really good though. I owe PSC, but I still have to use SFSO...
AHK script:Stars Filtered SNG Opener Quote
06-13-2009 , 09:54 AM
Quote:
Originally Posted by Beave
What's different to the version SFSO_4.0.ahk on overcards?
I tried that one and it works quite well imo.
SFSO works much more reliable than the sng opener in PSC here. The table ninja opener is really good though. I owe PSC, but I still have to use SFSO...
lol@me. didnt remember i had posted it there. no difference thats it. my testers reported it not getting the number of tournaments correctly from stars log file though so use with caution and mainly as a basis for something.

for those who care this is the function to lookup registered in tournaments in the ps log file that may or may not work
Code:
CountTourneys() {
global
If (SetReg=1)
{
Return 0
}
logfile:= pspath . "pokerstars.log.0"
Loop, Read, %logfile%, tourlist.txt
{
Ifinstring,A_LoopReadLine, RT add 
 {
  StringTrimLeft, templine, A_LoopReadLine, 7
  StringTrimRight, templine, templine, 11
  tcount ++
  IniWrite, %tcount%,tcounter.ini, RegInT, %templine%
  IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount
  }
  
  Ifinstring,A_LoopReadLine, RT remove 
   {
  StringTrimLeft, templine2, A_LoopReadLine, 10
  tcount --
  IniDelete, tcounter.ini, RegInT , %templine2%
  IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount
   }
  
}
return tcount
AHK script:Stars Filtered SNG Opener Quote
07-16-2009 , 02:39 PM
How do i "tell him" which SnG i want to play? He registers to whatever he likes...
AHK script:Stars Filtered SNG Opener Quote
07-17-2009 , 05:18 AM
You have to filter the lobby first. Then it will register everything that is showing.
AHK script:Stars Filtered SNG Opener Quote
07-25-2009 , 10:35 PM
after I open the Auto SNG Opener and close it, the next time I try to open it I get a message that says

"Error at line 1.

Line Text: [Settings]
Error: This line does not contain a recognized action.

The program will exit."
AHK script:Stars Filtered SNG Opener Quote
09-16-2009 , 04:00 PM
I think the new update has messed something up. It is registering for too many sngs. I think it has something to do with checking which tournaments you are currently registered in. I have it set to play 15 at a time and it registered well passed that.
AHK script:Stars Filtered SNG Opener Quote
10-05-2009 , 10:16 PM
is there a way I can get the program to just register for $5.50 18 mans?
AHK script:Stars Filtered SNG Opener Quote
10-15-2009 , 04:48 AM
If I just want it to register me to 12 sngs do I set both things to 12? or is it gonna keep registering me if i bust or w/e,.

I don't seem to understand how to make it just register me for x amount of sngs and stop there.
AHK script:Stars Filtered SNG Opener Quote
10-15-2009 , 11:25 PM
Quote:
Originally Posted by JHair
If I just want it to register me to 12 sngs do I set both things to 12? or is it gonna keep registering me if i bust or w/e,.

I don't seem to understand how to make it just register me for x amount of sngs and stop there.
Yes put the "Limit Total SNGs to" the x amount of sngs you want to play. And ensure that the "No. of SNGs to keep open" is not less than x.
AHK script:Stars Filtered SNG Opener Quote
10-29-2009 , 07:10 AM
I've made a fix for 4.0 version and it seems to work right with it, need some people to test it and reply here.

Code:
; Author:         Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher
; v.4.0a
; added: option to atuobuyin if full, hide/show window
; fixed issue with skipping first sng in lobby
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance, Force
IfExist, tcounter.ini
FileDelete, tcounter.ini
SetTitleMatchMode, 2
SetTimer, register, off
SetTimer, safeguard, off
StringTrimRight, thisahk, A_ScriptName, 4

;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;;
;pspath:="C:\Program Files\PokerStars\"
IniRead, pspath, %thisahk%.ini, Settings, path
If pspath=ERROR
{
 If A_OSVersion in WIN_VISTA		
 IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path 
 Else							
 IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path
 IniRead, pspath, %thisahk%.ini, Settings, path
}
;==============================================================
tcount=0
RegSofar=0
OpenTables=0
trows=17
SysGet,mon, MonitorworkArea
fivesec=0
two=0
ddlist4=Off|
ddlist5=Off|
ddlist6=Off|
ddlist7=Off|
LobbyList=Default|Black|
Loop 100
{
two:=two+2
ddlist3:=ddlist3 . two . "|"
If (A_index<51)
{
fivesec:=fivesec+5
ddlist:=ddlist . A_index . "|"
ddlist2:=ddlist2 . fivesec . "|"
ddlist5:=ddlist5 . fivesec . "|"
ddlist6:=ddlist6 . fivesec . "|"
If (A_index<22)
{
ddlist7:=ddlist7 . A_Index . "|"
If (A_index<16)
{
ddlist4:=ddlist4 . A_index . "|"
}
}
}
}


Gosub, BuildGui
Return

BuildGui:
Gui, color, white
Gui, font, cOlive
Gui, add, tab, h340 w240, General|Advanced Settings
Gui, add, text, , Auto-register
Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister
Gui, add, text, yp xp+30, Reg. next if full?
Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull


Gui, add, text,xp-190 yp+30 , Register every (sec):
Gui, add, DropDownList, w50 yp-5 xp+140  vInterval1, %ddlist2%
Gui, add, text, xp-140 yp+30, No of SNG:s to keep open:
Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist%
Gui, add, text,xp-140 yp+30, Limit total SNG:s to:
Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3%
Gui, add, text,xp-140 yp+30, Limit total time to (min):
Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5%

Gui, add, text, xp-140 yp+30 cred vcdown w200
Gui, add, text, xp  yp+30 w200 vRegSofar, SNG:s registered so far:
Gui, add, text,  w200 vOpenTables, Tables open/waiting:
Gui, add, text, w200 cRed vStatus, Status: Idle
Gui, add, Button, w68 ggetgui, &Submit+Run
Gui, add, text, xp+72 yp+5, (Autosaves your settings)
Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume
Gui, Add, Button, Disabled  w45 h20 yp xp+48 Center, &Pause
Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore
Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate
Gui, tab, 2

Gui, add, Text, x25 y65 , Lobby Theme:
Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList%
Gui, add, text,xp-140 yp+30 , Close lobbies every (sec):
Gui, add, DropDownList, w50 yp-5 xp+140  vCloseInterv, %ddlist6%
Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e)
Gui, add, text, yp+30, Disable if no user Input (min):
Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4%
Gui, add, text, xp-140 yp+30 ,Batch-register?
Gui, add, Checkbox,yp xp+140 vBatchReg
Gui, add, text, yp+20 xp-140 ,SetReg* mode?
Gui, add, Checkbox,yp xp+140 vSetReg
Gui, add, text, yp+20 xp-140 ,Minimize lobby?
Gui, add, Checkbox,yp xp+140 vMinlob
Gui, add, Text, xp-140 yp+30, Times to scroll down:
Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7%
Gui, add, Text, xp-140 yp+25, Always start at top of lobby?
Gui, add, Checkbox, yp xp+140 vTopReturn
/*
Gui, tab, 3
Gui, add, text, , Manually populate list: F11
Gui, Add, ListView,  r%trows%  grid gFindLobby w200 c1, Registered in Tournaments
*/
Gui, show, w256, %thisahk%
WinGetPos, x, y, w, h, SFSO
x:=monRight-w
y:=monBottom-h
Gosub, GetIni
Gui, show, x%x% y%y%, %thisahk%
Return

getgui:
GuiControl,, Register, -1
Register = 1
Gui, Submit, NoHide
displayedTime=
If (lobby="Default")
{
regButton:="PokerStarsButtonClass7"
}
Else If (lobby="Black" or lobby="Custom*")
{
regButton:="PokerStarsButtonClass8"
}
Gosub, TimeLimit
Gosub, MakeIni
GuiControl, Enable, Pause
GuiControl, Disable, Resume
interval:=interval1*1000

If !interval
interval=off

If guardtimer is not Number
{
SetTimer, safeguard, off
}
Else
{
killtime:=guardtimer*60000
SetTimer, safeguard, 1000
}
lobclose:=CloseInterv*1000
SetTimer, NukeLobbies, %lobclose%
register=1
SetTimer, Register, %interval%
Gosub, ButtonResume
Return

Safeguard:
If (A_TimeIdle > killtime)
{
Gosub, ButtonPause
GuiControl, , cdown, Stopped  due to inactivity!!! %displayedTime%
}
Return

TimeLimit:
If TimeLimit is Number
{
allowedMinutes := timeLimit
endTime := A_Now
endTime += %allowedMinutes%, Minutes
SetTimer, CountDown, 1000
}
Else
{
GuiControl, , cdown, Time Limit off
}
Return

Countdown:
remainingTime := endTime
EnvSub remainingTime, %A_Now%, Seconds
m := remainingTime // 60
s := Mod(remainingTime, 60)
displayedTime := Format3Digits(m) ":" Format2Digits(s)
GuiControl, , cdown, Running another (mm:ss): %displayedTime%
If (A_now > endTime)
{
SetTimer, Countdown, off
Gosub, ButtonPause
GuiControl, , cdown, Time Limit reached.
}
Return

GuiClose:
Gui, Submit
Gosub, MakeIni
ExitApp
Return

ButtonResume:
Gui, Submit, NoHide
If PausedTime is Number
{
TimeLimit:=PausedTime
}
Gosub, TimeLimit

GuiControl, Disable, Resume
GuiControl, Enable, Pause
GuiControl, , Register, -1
Register=1
Gosub, Register
SetTimer, Register, %Interval%
Return

ButtonPause:
Critical
Gui, Submit, NoHide
PausedTime:=remainingTime/60
Register=0
SetTimer, Countdown, off
SetTimer, Register, off
GuiControl, Disable, Pause
GuiControl, Enable, Resume
GuiControl, , Register, 0
GuiControl, , cdown, Manually Paused %displayedTime%
GuiControl, , Status, Status: Waiting ;TEST
Return

Register:
SetTitleMatchMode, 2
WinGet, LobbyID, id, PokerStars Lobby

If !LobbyID
{
Gosub, ButtonPause
GuiControl,, Status, Status: PokerStars Lobby not found
Gui, show, NoActivate, %thisahk%
Return
}
If (TopReturn=1)
{
ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%lobbyid%
}
WinGet, PhysicalTables, list, ahk_class PokerStarsTableFrameClass
If PhysicalTables is not Number
PhysicalTables=0

If (PhysicalTables >= KeepOpen)
{
GuiControl,, Status, Set Full waiting
Gui, show, NoActivate, %thisahk%
Return
}
OpenTables:=CountTourneys()
If OpenTables is not Number
OpenTables=0
GuiControl, , OpenTables, Tables open/waiting: %OpenTables%
GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
Gui, show, NoActivate, %thisahk%

If (RegSofar >= TotalLimit)
{
Gosub, ButtonPause
GuiControl, , cdown, SNG Total Limit reached
GuiControl, , Status, Status: Idle ;TEST

Return
}
If (OpenTables >= TotalLimit)
{
Gosub, ButtonPause
GuiControl, , cdown, SNG Total Limit reached
GuiControl, , Status, Status: Idle ;TEST
Return
}
If (OpenTables >= KeepOpen)
{
GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full)
GuiControl, , Status, Status: Waiting ;TEST
Return
}
Else
{
If (BatchReg=1)
{
Times:= KeepOpen - OpenTables
RegSNGexec(LobbyID, Times, scrldwn)
}
Else
{
RegSNGexec(LobbyID, 1, scrldwn)
}
}
Return
MakeIni:
IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull
IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn
IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn
IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby
IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg
IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg
IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose
IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv
IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen
IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit
IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer
IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit
Return

GetIni:
IfExist, %thisahk%.ini
{
IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull
IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0
IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn
IniRead, Lobby, %thisahk%.ini, Settings, Lobby
IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg
IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1
IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0
IniRead, Interval1, %thisahk%.ini, Settings, Interval1
IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv
IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose
IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen
IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit
IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off
IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off
GuiControl, , AutoIfFull, %AutoIfFull%
StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%|
GuiControl, , scrldwn, |%ddlist7%
StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%|
GuiControl, , Lobby, |%LobbyList%
GuiControl, , BatchReg, %BatchReg%
GuiControl, , SetReg, %SetReg%
GuiControl, , MinLob, %MinLob%
GuiControl, , TopReturn, %TopReturn%
GuiControl, , AutoClose, %AutoClose%
StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist2%
StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%|
GuiControl, , CloseInterv, |%ddlist6%
StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%|
GuiControl, , KeepOpen, |%ddlist%
StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|,
GuiControl, , TotalLimit, |%ddlist3%
StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%|
GuiControl, , GuardTimer, |%ddlist4%
StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%|
GuiControl, , TimeLimit, |%ddlist5%
}
Return
^e::
NukeLobbies:
SetTitleMatchMode, 2
GroupAdd, TLobbies, Lobby,,, PokerStars Lobby
GroupClose, TLobbies, A
Return

#H::
WinHide, %thisahk%
return
#S::
WinShow, %thisahk%
return

F11::
TmpSetReg:=SetReg
SetReg=0
CountTourneys()
SetReg:=TmpSetReg
Return
ManualCount:
CountTourneys()
Return

FindLobby:
If (%A_GuiEvent% = DoubleClick)
{
LV_GetText(TournId,A_EventInfo)
TournID:=SubStr(TournID, 1,10)
WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament
WinWait, Find Tournament ahk_class #32770, , 10
WinGet, fat, id
ControlFocus, Edit1, ahk_id%fat%
Sleep, -1
ControlSend, Edit1, %TournId%, ahk_id%fat%
ControlFocus, Button1, ahk_id%fat%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%fat%
}
Return

Donate:
donation()
Return

Format2Digits(_val) {
_val += 100
StringRight _val, _val, 2
Return _val
}

Format3Digits(_val) {
_val += 1000
StringRight _val, _val, 3
StringTrimRight, FirstZ, _val, 2
If FirstZ=0
{
StringTrimLeft, _val, _val, 1
}
StringTrimRight, FirstZ, _val, 1
If FirstZ=0
{
StringTrimLeft, _val, _val, 1
}
Return _val
}
LobbyRestore:
WinGet, lobbyid, id, PokerStars Lobby
WinShow, ahk_id%lobbyid%
WinMove, ahk_id%lobbyid%,,0,0
return


RegSNGexec(id, times, scrldwn) {
global RegSofar
global Register
global OpenTables
global KeepOpen
global TotalLimit
global RegButton
global AutoIfFull
Loop %times%
{
Gosub, ManualCount
Sleep, 25
ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%id%

If (OpenTables >= KeepOpen)
Exit
If (OpenTable >0 TotalLimit)
Exit
ClickdirectionCount=0
direction=0
GuiControl, , Status, Status: Registering ;TEST
Loop 16
{
If (Register=0)
{
GuiControl, , Status, Status: Idle ;TEST
Exit
}
ControlGet, v, Visible, , %regButton%, ahk_id%id%
If (v = 0)
If (scrldwn!="Off")
{
If (ClickdirectionCount<=scrldwn) {
If (direction=0) {
ControlSend, PokerStarsListClass5, {NumpadDown}, ahk_id%id%
} Else {
ControlSend, PokerStarsListClass5, {NumpadUp}, ahk_id%id%
}
ClickdirectionCount:=ClickdirectionCount+1
} Else {
If (direction=0) {
direction:=1
} Else {
direction:=0
}
ClickdirectionCount:=0
}
Sleep 1000
}
If (v = 1)
Break
}

If ( v = 1 ) {
ControlClick, %regButton%, ahk_id%id%
WinWait, Tournament Registration ahk_class #32770, , 10
{
WinGet, regid, id
ControlFocus, Button1, ahk_id%regid%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%regid%
Sleep, 10
If (AutoIfFull = 1)
{
ControlFocus, Button2, ahk_id%regid%
Sleep, -1
ControlSend, Button2, {Space}, ahk_id%regid%
Sleep, 30
}

;WinGet, clist , ControlList, ahk_id%regid%
;IfInString, clist, Button4
;{
ControlFocus, Button3, ahk_id%regid%
Sleep, -1
ControlSend, Button3, {Space}, ahk_id%regid%
RegSofar++
GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
GuiControl, , Status, Status: Waiting ;TEST
Gui, show, NoActivate, %thisahk%
;}
;Else
;{
;ControlFocus, Button2, ahk_id%regid%
;Sleep, -1
;ControlSend, Button2, {Space}, ahk_id%regid%
;RegSofar++
;GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
;GuiControl, , Status, Status: Waiting ;TEST
;Gui, show, NoActivate, %thisahk%
;}
}
WinWait, Tournament Registration ahk_class #32770, , 10
{
WinGet, regid, id
ControlGetText, ctext, Button1, ahk_id%regid%
If ( cText = "OK" ) {
ControlFocus, Button1, ahk_id%regid%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%regid%
}
}
}
}
}

CountTourneys() {
global
If (SetReg=1)
{
Return 0
}
logfile:= pspath . "pokerstars.log.0"
Loop, Read, %logfile%, tourlist.txt
{
Ifinstring,A_LoopReadLine, RT add 
 {
  StringTrimLeft, templine, A_LoopReadLine, 7
  StringTrimRight, templine, templine, 11
  IniRead, tregistered,tcounter.ini, RegInT, %templine%
  if tregistered=ERROR
  {
  IniWrite, %tcount%,tcounter.ini, RegInT, %templine%
  tcount ++
  IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount
  }
 }
  
  Ifinstring,A_LoopReadLine, RT remove 
 {
  StringTrimLeft, templine2, A_LoopReadLine, 10
  IniRead, tremove,tcounter.ini, RegInT, %templine2%
  if tremove<>ERROR
  {
  IniDelete, tcounter.ini, RegInT , %templine2%
  tcount --
  IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount
  }
 }
}
return tcount
}
donation() {
WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds...
WinWait, Transfer Funds ahk_class #32770, , 10
WinGet, tf, id
ControlFocus, Edit2, ahk_id%tf%
ControlSetText, Edit2, Attilio
ControlFocus, Edit1, ahk_id%tf%
Sleep, -1
ControlSetText, Edit1,
GuiControl, Disable, Donate
}

lobbyStars() {
SetTitleMatchMode 1
WinGet, id, id, PokerStars Lobby
Return id
}
~^!Q::
ExitApp
AHK script:Stars Filtered SNG Opener Quote
10-30-2009 , 12:49 AM
Made some corrections for Vista compatibility and added couple of minor fixes, this version of script works fine for me, tell me if you have any problems with it.

Code:
; Author:         Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher
; v.4.0a
; added: option to atuobuyin if full, hide/show window
; fixed issue with skipping first sng in lobby
#NoEnv
SendMode Input
SetWorkingDir %A_ScriptDir%
#SingleInstance, Force
IfExist, tcounter.ini
FileDelete, tcounter.ini
SetTitleMatchMode, 2
SetTimer, register, off
SetTimer, safeguard, off
StringTrimRight, thisahk, A_ScriptName, 4

;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;;
;pspath:="C:\Program Files\PokerStars\"
IniRead, pspath, %thisahk%.ini, Settings, path
If pspath=ERROR
{
 If A_OSVersion in WIN_VISTA
{		
IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path
IniRead, pspath, %thisahk%.ini, Settings, path 
logfile:= pspath . "pokerstars.log.0"
if notexist logfile
{
 StringGetPos,pos, pspath,Roaming
 StringLeft, pspath, pspath, %pos%
 pspath:=pspath . "Local\Pokerstars\"
 IniWrite, %pspath%, %thisahk%.ini, Settings, path
}
}
 Else							
 IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path
 IniRead, pspath, %thisahk%.ini, Settings, path
}
;==============================================================
tcount=0
RegSofar=0
OpenTables=0
trows=17
SysGet,mon, MonitorworkArea
fivesec=0
two=0
ddlist4=Off|
ddlist5=Off|
ddlist6=Off|
ddlist7=Off|
LobbyList=Default|Black|
Loop 100
{
two:=two+2
ddlist3:=ddlist3 . two . "|"
If (A_index<51)
{
fivesec:=fivesec+5
ddlist:=ddlist . A_index . "|"
ddlist2:=ddlist2 . fivesec . "|"
ddlist5:=ddlist5 . fivesec . "|"
ddlist6:=ddlist6 . fivesec . "|"
If (A_index<22)
{
ddlist7:=ddlist7 . A_Index . "|"
If (A_index<16)
{
ddlist4:=ddlist4 . A_index . "|"
}
}
}
}


Gosub, BuildGui
Return

BuildGui:
Gui, color, white
Gui, font, cOlive
Gui, add, tab, h340 w240, General|Advanced Settings
Gui, add, text, , Auto-register
Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister
Gui, add, text, yp xp+30, Reg. next if full?
Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull


Gui, add, text,xp-190 yp+30 , Register every (sec):
Gui, add, DropDownList, w50 yp-5 xp+140  vInterval1, %ddlist2%
Gui, add, text, xp-140 yp+30, No of SNG:s to keep open:
Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist%
Gui, add, text,xp-140 yp+30, Limit total SNG:s to:
Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3%
Gui, add, text,xp-140 yp+30, Limit total time to (min):
Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5%

Gui, add, text, xp-140 yp+30 cred vcdown w200
Gui, add, text, xp  yp+30 w200 vRegSofar, SNG:s registered so far:
Gui, add, text,  w200 vOpenTables, Tables open/waiting:
Gui, add, text, w200 cRed vStatus, Status: Idle
Gui, add, Button, w68 ggetgui, &Submit+Run
Gui, add, text, xp+72 yp+5, (Autosaves your settings)
Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume
Gui, Add, Button, Disabled  w45 h20 yp xp+48 Center, &Pause
Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore
Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate
Gui, tab, 2

Gui, add, Text, x25 y65 , Lobby Theme:
Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList%
Gui, add, text,xp-140 yp+30 , Close lobbies every (sec):
Gui, add, DropDownList, w50 yp-5 xp+140  vCloseInterv, %ddlist6%
Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e)
Gui, add, text, yp+30, Disable if no user Input (min):
Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4%
Gui, add, text, xp-140 yp+30 ,Batch-register?
Gui, add, Checkbox,yp xp+140 vBatchReg
Gui, add, text, yp+20 xp-140 ,SetReg* mode?
Gui, add, Checkbox,yp xp+140 vSetReg
Gui, add, text, yp+20 xp-140 ,Minimize lobby?
Gui, add, Checkbox,yp xp+140 vMinlob
Gui, add, Text, xp-140 yp+30, Times to scroll down:
Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7%
Gui, add, Text, xp-140 yp+25, Always start at top of lobby?
Gui, add, Checkbox, yp xp+140 vTopReturn
/*
Gui, tab, 3
Gui, add, text, , Manually populate list: F11
Gui, Add, ListView,  r%trows%  grid gFindLobby w200 c1, Registered in Tournaments
*/
Gui, show, w256, %thisahk%
WinGetPos, x, y, w, h, SFSO
;x:=monRight-w
;y:=monBottom-h
x:=monLeft
y:=monTop
Gosub, GetIni
Gui, show, x%x% y%y%, %thisahk%
Return

getgui:
GuiControl,, Register, -1
Register = 1
Gui, Submit, NoHide
displayedTime=
If (lobby="Default")
{
regButton:="PokerStarsButtonClass7"
}
Else If (lobby="Black" or lobby="Custom*")
{
regButton:="PokerStarsButtonClass8"
}
Gosub, TimeLimit
Gosub, MakeIni
GuiControl, Enable, Pause
GuiControl, Disable, Resume
interval:=interval1*1000

If !interval
interval=off

If guardtimer is not Number
{
SetTimer, safeguard, off
}
Else
{
killtime:=guardtimer*60000
SetTimer, safeguard, 1000
}
if CloseInterv is not number
SetTimer, NukeLobbies, off
else
{
lobclose:=CloseInterv*1000
SetTimer, NukeLobbies, %lobclose%
}
register=1
SetTimer, Register, %interval%
Gosub, ButtonResume
Return

Safeguard:
If (A_TimeIdle > killtime)
{
Gosub, ButtonPause
GuiControl, , cdown, Stopped  due to inactivity!!! %displayedTime%
}
Return

TimeLimit:
If TimeLimit is Number
{
allowedMinutes := timeLimit
endTime := A_Now
endTime += %allowedMinutes%, Minutes
SetTimer, CountDown, 1000
}
Else
{
GuiControl, , cdown, Time Limit off
}
Return

Countdown:
remainingTime := endTime
EnvSub remainingTime, %A_Now%, Seconds
m := remainingTime // 60
s := Mod(remainingTime, 60)
displayedTime := Format3Digits(m) ":" Format2Digits(s)
GuiControl, , cdown, Running another (mm:ss): %displayedTime%
If (A_now > endTime)
{
SetTimer, Countdown, off
Gosub, ButtonPause
GuiControl, , cdown, Time Limit reached.
}
Return

GuiClose:
Gui, Submit
Gosub, MakeIni
ExitApp
Return

ButtonResume:
Gui, Submit, NoHide
If PausedTime is Number
{
TimeLimit:=PausedTime
}
Gosub, TimeLimit

GuiControl, Disable, Resume
GuiControl, Enable, Pause
GuiControl, , Register, -1
Register=1
Gosub, Register
SetTimer, Register, %Interval%
Return

ButtonPause:
Critical
Gui, Submit, NoHide
PausedTime:=remainingTime/60
Register=0
SetTimer, Countdown, off
SetTimer, Register, off
GuiControl, Disable, Pause
GuiControl, Enable, Resume
GuiControl, , Register, 0
GuiControl, , cdown, Manually Paused %displayedTime%
GuiControl, , Status, Status: Waiting ;TEST
Return

Register:
SetTitleMatchMode, 2
WinGet, LobbyID, id, PokerStars Lobby

If !LobbyID
{
Gosub, ButtonPause
GuiControl,, Status, Status: PokerStars Lobby not found
Gui, show, NoActivate, %thisahk%
Return
}
If (TopReturn=1)
{
ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%lobbyid%
}
WinGet, PhysicalTables, list, ahk_class PokerStarsTableFrameClass
If PhysicalTables is not Number
PhysicalTables=0

If (PhysicalTables >= KeepOpen)
{
GuiControl,, Status, Set Full waiting
Gui, show, NoActivate, %thisahk%
Return
}
OpenTables:=CountTourneys()
If OpenTables is not Number
OpenTables=0
GuiControl, , OpenTables, Tables open/waiting: %OpenTables%
GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
Gui, show, NoActivate, %thisahk%

If (RegSofar >= TotalLimit)
{
Gosub, ButtonPause
GuiControl, , cdown, SNG Total Limit reached
GuiControl, , Status, Status: Idle ;TEST

Return
}
If (OpenTables >= TotalLimit)
{
Gosub, ButtonPause
GuiControl, , cdown, SNG Total Limit reached
GuiControl, , Status, Status: Idle ;TEST
Return
}
If (OpenTables >= KeepOpen)
{
GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full)
GuiControl, , Status, Status: Waiting ;TEST
Return
}
Else
{
If (BatchReg=1)
{
Times:= KeepOpen - OpenTables
RegSNGexec(LobbyID, Times, scrldwn)
}
Else
{
RegSNGexec(LobbyID, 1, scrldwn)
}
}
Return
MakeIni:
IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull
IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn
IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn
IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby
IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg
IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg
IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose
IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv
IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen
IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit
IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer
IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit
Return

GetIni:
IfExist, %thisahk%.ini
{
IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull
IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0
IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn
IniRead, Lobby, %thisahk%.ini, Settings, Lobby
IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg
IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1
IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0
IniRead, Interval1, %thisahk%.ini, Settings, Interval1
IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv
IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose
IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen
IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit
IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off
IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off
GuiControl, , AutoIfFull, %AutoIfFull%
StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%|
GuiControl, , scrldwn, |%ddlist7%
StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%|
GuiControl, , Lobby, |%LobbyList%
GuiControl, , BatchReg, %BatchReg%
GuiControl, , SetReg, %SetReg%
GuiControl, , MinLob, %MinLob%
GuiControl, , TopReturn, %TopReturn%
GuiControl, , AutoClose, %AutoClose%
StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist2%
StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%|
GuiControl, , CloseInterv, |%ddlist6%
StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%|
GuiControl, , KeepOpen, |%ddlist%
StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|,
GuiControl, , TotalLimit, |%ddlist3%
StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%|
GuiControl, , GuardTimer, |%ddlist4%
StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%|
GuiControl, , TimeLimit, |%ddlist5%
}
Return
^e::
NukeLobbies:
SetTitleMatchMode, 2
GroupAdd, TLobbies, Lobby,,, PokerStars Lobby
GroupClose, TLobbies, A
Return

#H::
WinHide, %thisahk%
return
#S::
WinShow, %thisahk%
return

F11::
TmpSetReg:=SetReg
SetReg=0
CountTourneys()
SetReg:=TmpSetReg
Return
ManualCount:
CountTourneys()
Return

FindLobby:
If (%A_GuiEvent% = DoubleClick)
{
LV_GetText(TournId,A_EventInfo)
TournID:=SubStr(TournID, 1,10)
WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament
WinWait, Find Tournament ahk_class #32770, , 10
WinGet, fat, id
ControlFocus, Edit1, ahk_id%fat%
Sleep, -1
ControlSend, Edit1, %TournId%, ahk_id%fat%
ControlFocus, Button1, ahk_id%fat%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%fat%
}
Return

Donate:
donation()
Return

Format2Digits(_val) {
_val += 100
StringRight _val, _val, 2
Return _val
}

Format3Digits(_val) {
_val += 1000
StringRight _val, _val, 3
StringTrimRight, FirstZ, _val, 2
If FirstZ=0
{
StringTrimLeft, _val, _val, 1
}
StringTrimRight, FirstZ, _val, 1
If FirstZ=0
{
StringTrimLeft, _val, _val, 1
}
Return _val
}
LobbyRestore:
WinGet, lobbyid, id, PokerStars Lobby
WinShow, ahk_id%lobbyid%
WinMove, ahk_id%lobbyid%,,0,0
return


RegSNGexec(id, times, scrldwn) {
global RegSofar
global Register
global OpenTables
global KeepOpen
global TotalLimit
global RegButton
global AutoIfFull
Loop %times%
{
Gosub, ManualCount
Sleep, 25
ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%id%

If (OpenTables >= KeepOpen)
Exit
If (OpenTable >= TotalLimit)
Exit
ClickdirectionCount=0
direction=0
GuiControl, , Status, Status: Registering ;TEST
Loop 16
{
If (Register=0)
{
GuiControl, , Status, Status: Idle ;TEST
Exit
}
ControlGet, v, Visible, , %regButton%, ahk_id%id%
If (v = 0)
If (scrldwn!="Off")
{
If (ClickdirectionCount<=scrldwn) {
If (direction=0) {
ControlSend, PokerStarsListClass5, {NumpadDown}, ahk_id%id%
} Else {
ControlSend, PokerStarsListClass5, {NumpadUp}, ahk_id%id%
}
ClickdirectionCount:=ClickdirectionCount+1
} Else {
If (direction=0) {
direction:=1
} Else {
direction:=0
}
ClickdirectionCount:=0
}
Sleep 1000
}
If (v = 1)
Break
}

If ( v = 1 ) {
ControlClick, %regButton%, ahk_id%id%
WinWait, Tournament Registration ahk_class #32770, , 10
{
WinGet, regid, id
ControlFocus, Button1, ahk_id%regid%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%regid%
Sleep, 10

If (AutoIfFull = 1)
{
ControlFocus, Button2, ahk_id%regid%
Sleep, -1
ControlSend, Button2, {Space}, ahk_id%regid%
Sleep, 30
}

ControlFocus, Button3, ahk_id%regid%
Sleep, -1
ControlSend, Button3, {Space}, ahk_id%regid%
}

WinWait, Tournament Registration ahk_class #32770, , 10
{
WinGet, regid, id
WinGetPos, x, y, w, h, ahk_id%regid%
ControlGetText, ctext, Button1, ahk_id%regid%
If ( cText = "OK" )
{
ControlFocus, Button1, ahk_id%regid%
Sleep, -1
ControlSend, Button1, {Space}, ahk_id%regid%
}
 if h>=145
 {
 RegSofar++
 GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
 GuiControl, , Status, Status: Waiting ;TEST
 Gui, show, NoActivate, %thisahk%
 }

}
}
}
}

CountTourneys() {
global
If (SetReg=1)
{
Return 0
}
SetTitleMatchMode, 2
logfile:= pspath . "pokerstars.log.0"
Loop, Read, %logfile%, tourlist.txt
{
Ifinstring,A_LoopReadLine, RT add 
 {
  StringTrimLeft, templine, A_LoopReadLine, 7
  Needle:=" "
  StringGetPos,pos, templine,%Needle%
  If pos>=0
  StringLeft, templine, templine, %pos%
  IniRead, tregistered,tcounter.ini, RegInT, %templine%
  if tregistered=ERROR
  {
  tcount ++
  IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount
  IniWrite, %tcount%,tcounter.ini, RegInT, %templine%
  }
 }
Ifinstring,A_LoopReadLine, RT remove 
 {
  StringTrimLeft, templine2, A_LoopReadLine, 10
  IniRead, tremove,tcounter.ini, RegInT, %templine2%
  if tremove<>ERROR
  {
  IniDelete, tcounter.ini, RegInT , %templine2%
  if tcount>0
  tcount --
  IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount
  }
 }
}
return tcount
}
donation() {
WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds...
WinWait, Transfer Funds ahk_class #32770, , 10
WinGet, tf, id
ControlFocus, Edit2, ahk_id%tf%
ControlSetText, Edit2, Attilio
ControlFocus, Edit1, ahk_id%tf%
Sleep, -1
ControlSetText, Edit1,
GuiControl, Disable, Donate
}

lobbyStars() {
SetTitleMatchMode 1
WinGet, id, id, PokerStars Lobby
Return id
}
~^!Q::
ExitApp
AHK script:Stars Filtered SNG Opener Quote

      
m