2011-06-27 302 views
0

我正在学python,这是我感兴趣的那种project。我不知道脚本是用什么语言编写的(lisp或autohotkey可能?),但我想将它转换为python。请你指点我正确的方向,并告诉我将代码转换为python

  • 这是什么语言?
  • 我需要学习怎样转换它?

谢谢!

; Thois TableOpener for PokerStars v1.05 
; Opens new cash game tables from the lobby every x seconds (if there are less tables opened than your predefined settings). A great tool for multi-tablers. 
; Customize the variables below (between the lines) 
; 'Thois' on PS for donations 

; Customizable variables (between the lines) 
;------------------------------------------ 
rowheight := 13 ;In the PokerStars lobby go to View > Text Size: For Medium & smaller:13, For smallest:12, For Larger:15, For Largest:17 
recheck := 50 ;How often the script should open up new tables (if needed),  50=10seconds, 25=5seconds etc... Try not to set this too low for CPU performance issues 
;------------------------------------------ 

Gui, Font, s8, Arial 
Gui, Add, Text,, Number Of Tables: 
Gui, Add, Edit 
Gui, Add, UpDown, vnumberoftablestokeepopen Range1-24, 12 
Gui, Add, Checkbox, venabledisable, Run! 
Gui, Show,, Thois TableOpener for PokerStars v1.00 
Gui, Submit, NoHide 

numberofloopinstances := recheck - 1 

Loop 
{ 
Gui, Submit, NoHide 
SendMessage, 0x115, 0, 0, PokerStarsListClass1, PokerStars Lobby 
numberofloopinstances := numberofloopinstances + 1 
if (numberofloopinstances = recheck) 
    { 
    numberofloopinstances := 0 
    WinGet, numberofwindows, Count, ahk_class PokerStarsTableFrameClass,,Lobby 
    beffen := numberoftablestokeepopen - numberofwindows 
    if (beffen > 0 AND enabledisable = 1) 
     { 
     Loop 
      { 
      ControlGet, tablesinthelobby, Hwnd, , PokerStarsListClass1, PokerStars Lobby 
      yclick := 1 + (rowheight * A_Index) - rowheight 
      PostLeftClick(1, yclick, tablesinthelobby) 
      ControlClick, PokerStarsButtonClass10, PokerStars Lobby 
      Sleep, 500 
      WinGet, numberofwindows, Count, ahk_class PokerStarsTableFrameClass,,Lobby 
      beffen := numberoftablestokeepopen - numberofwindows 
      if (beffen = 0) 
       { 
       break 
       } 
      } 
     } 
    } 
Sleep, 200 
} 

; Hotkeys (disabled) 

;~Xbutton1:: ;Endlessly cycles between all tables in the stack the cursor is pointing at (brings the front table to the back), disabled (remove ; marks to enable) 
;MouseGetPos,,,tableID 
;WinGetClass, classoftableid, ahk_id %tableID% 
;if (classoftableid = "PokerStarsTableFrameClass") 
; { 
; WinSet, Bottom,, ahk_id %tableID% 
; } 
;return 

;~Xbutton2:: ;Closes the table the mouse is pointing at (also clicks the OK warning button), disabled (remove ; marks to enable) 
;MouseGetPos,,,tableID 
;WinGetClass, classoftableid, ahk_id %tableID% 
;if (classoftableid = "PokerStarsTableFrameClass"); 
; { 
; WinClose, ahk_id %tableID% 
; Sleep,20 
; ControlClick, Button1, Table, OK 
; } 
;return 

;Juks rocks - I deactivated WinActivate so that the Lobby doesnt steal focus 
PostLeftClick(x, y, table_id, activate=1) { 
; ### JUK: Send the down left click, then the mouse-up messages. 
; NOTE: This is relative to the top left of the client area and NOT the top left of the 
;  window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!). 
If activate 
; WinActivate, ahk_id%table_id% 
PostMessage, 0x201, 0x0001, ((y<<16)^x), , ahk_id%table_id% 
PostMessage, 0x202 , 0, ((y<<16)^x), , ahk_id%table_id% 
} 

GuiClose: 
ExitApp 

回答

2

毫无疑问,这是AutoHotKey。你需要将其转换为:

  1. 足够了解AutoHotKey以了解程序的功能。
  2. 足够了解Python能够重新创建程序的功能。

你应该注意AutoHotKey和Python是很不一样。 AutoHotKey是一款用于自动化鼠标和键盘的软件,用于控制其他程序。这对Python来说当然是可行的,但是你会这样做的方式取决于环境。如果没有外部库来帮助你,你可能无法做到这一点,因为Python是一种你主要编写程序的语言,而不是用来控制现有程序的语言。

所以我怀疑你的转换工作是否值得。