2013-07-29 3 views
0

특정 회원이 웹 사이트에 로그인하면 알림을 받고 싶습니다. 사이트의 로그인 회원 목록은 일반적으로 끝에있는 페이지 번호를 제외하고 각 URL이 동일한 3 ~ 4 개의 HTML 페이지로 확장됩니다. 알림을 받고 싶은 회원을 몇 명 적힌 텍스트 파일이 있습니다. 아래의 스크립트는 내 목록에있는 회원 중 하나가 로그인하면 성공적으로 알려줍니다. 첫 페이지를 다운로드하고, 해당 페이지에서 각 회원을 검색하고, 발견 된 경우이를 알리고, 나머지 페이지마다 프로세스를 반복하고 5 분 동안자는 동안 위에.AutoHotKey. 웹 사이트 로그인 알림

내가 개선하고 싶은 방법은 수십 가지가 있지만 처음에는 반복 알림 문제를 해결하고 싶습니다. 로그인 한 한 5 분마다 동일한 회원에 대해 통보받습니다. 특정 회원의 MsgBox를 확인한 후에 스크립트를 다시 검색하지 않고 회원 검색을 계속하고 싶습니다. 이전에 확인 된 로그인의 나는이 모든 것을 다시 생각하고, MsgBox를 완전히 없애고, 구성원/상태 목록이있는 항상 열려있는 창을 가지며, 상태 변경이있을 때만 SoundBeep을 가져야하는지 궁금합니다. AutoHotKey를 사용하여이를 구현할 수 있습니까? 나는 최근에 AHK를 발견 했으므로 프로그래밍이나 스크립팅 경험이 없으므로 지금까지 가지고있는 것을 생각해내는 것은 당혹 스러울 정도로 오래 걸렸습니다. 도움과 제안을 해주셔서 감사합니다.

Loop 
{ 
    n := 1 
    While n < 5 
    { 
     UrlDownloadToFile, website/LoggedIn&page=%n%, Source_%n%.txt 
     FileRead, PageVar_%n%, Source_%n%.txt 
     Loop, read, MemberList.txt 
     { 
      Loop, parse, A_LoopReadLine, `n 
      { 
       MemberVar = %A_LoopField% 
       IfInString, PageVar_%n%, %MemberVar% 
       { 
        SoundBeep 
        MsgBox, 4096, Logged In, %MemberVar% is logged in 
       } 
      } 
     } 
     n := n + 1 
    } 
    Sleep 300000 
} 

답변

0

괜찮이

; Create the ListView with one column, Name: 
Gui, Add, ListView, r20 w200 vMyListView, Name 
; Create a object "online" 
online := [] 
gosub, check ; Run the subpart one time 
Settimer, check, 300000 ; and then this will run the cheak evry 300000 ms 
return 


check: 
Gui, show ; Show the listveiw 
GuiControl, -Redraw, MyListView ; Stop the listveiw from updateing 
While A_Index < 5 
{ 
    Url = website/LoggedIn&page=%A_Index% 
    Source := URLToVar(URL) 
    FileRead, Membs, MemberList.txt 
    Loop, parse, Membs, `n 
    { 
     IfInString, Source, %A_LoopField% 
     { 
       SoundBeep 
       Online[A_LoopField] := true 
     } 
     else if Online[A_LoopField] 
      Online.Remove(A_LoopField) 
    } 
} 
LV_Delete() 
for key in online 
{ 
    msgbox % Key 
    LV_Add("", Key) 
} 
GuiControl, +Redraw, MyListView ; let the listveiw update 
Return 

GuiClose: ; Indicate that the script should exit automatically when the window is closed. 
ExitApp 

URLToVar(URL) { 
    ComObjError(0) 
    WebRequest := ComObjCreate("WinHttp.WinHttpRequest.5.1") 
    WebRequest.Open("GET", URL) 
    WebRequest.Send() 
    Return WebRequest.ResponseText() 
     , ComObjError(0) 
    } 

그것이

+0

을 당신을 도움이되기를 바랍니다 ... 당신이

을 필요로하지만, 그것을 밖으로 시도하고 당신을 위해 작동하는지 확인 후 litte 더있을 수 있습니다 빠른 응답, blackholyman 주셔서 감사합니다. 나는 이것을 시도하고 그것이 어떻게되는지 알려줄 것이다. –