最近研究了一下ahk,果然好用。顺便写了个论坛自动回帖程序。今天把800积分卖了,赚了八元人民币。哈哈!

把部分源码放出来给大家看看,其中有部分是从网站搬来的,然后自己整合了一下。有很多人对我说,写那么多脚本才那么几块钱,其实不仅仅是钱的问题,我利用这个东西,能够这样自己发布回复,就可以推广我自己的网站了,属于小小的seo类软件哦,我的芭比娃娃网,就是利用它推广上去的,在百度搜索芭比娃娃排在前面了哦。加油,继续!

 

;--------------------------------------------以下为事件区域--------------------------------------------------
;程序入口
F6::
SetTimer, AutoWrite,50000
Return

 

AutoWrite:
;第一步
WinActivate, %maintitle%
Sleep, 2000
Send, {F5}
Sleep, 2000
Send, {END}
MouseClick, left,  123,  441
Sleep, 5000
;获取打开页面的标题,这里一定要先确保打开了。所以延时久一点
WinGetActiveTitle, title
;这里做判断,如果title==title2 不留言,关闭 如果title!=tital2 留言,关闭 ,并且赋值title2 = title
if title = title2
{
IfWinNotActive,%title%
{
WinActivate, %title%
}
IfWinActive,%title%
{
WinWaitActive, %title%
Sleep, 2000
WinMaximize,%title%
Sleep, 3000
WinClose,%title%     ;关闭留言页面
WinActivate, %maintitle%
WinMaximize,%maintitle%
Sleep, 1000
Send,{Home}
}
}
else
{
IfWinNotActive,%title%
{
WinActivate, %title%
}
IfWinActive,%title%
{
WinWaitActive, %title%
Sleep, 2000
WinMaximize,%title%
Sleep, 3000
Send, {End}
MouseClick, left,  229,  408
Sleep, 3000
;这里设计为变量,获取随机数
Random, rand, 2, 13
SendString( string%rand% )
Sleep, 5000
/* 这个在有的地方不支持,换成鼠标点击
Send,{Ctrl Down}
Send,{Enter}
Send,{Ctrl Up}
*/
MouseClick, left,  247,  517
Sleep, 3000
WinClose,%title%     ;关闭留言页面
WinActivate, %maintitle%
WinMaximize,%maintitle%
Sleep, 1000
Send,{Home}
title2 := title
}
}
Return


;测试函数
F9::
Random, rand, 1, 7
SendString( string%rand% )
Send,{Enter}
Return

;测试计时函数
F10::
SetTimer, WriteString, 1000
Return
F11::
SetTimer, WriteString, off
Return

WriteString:
Random, rand, 1, 7
SendString( string%rand% )
Send,{Enter}
return


;--------------------------------------------以下为辅助函数区域--------------------------------------------------
;函数1
;发送中文辅助函数
SendString( string )
{
    Len := StrLen(string)  ; 得到字符串的长度,注意一个中文字符的长度是2,即占2个字节
    Keys := ""                  ; 将要发送的字符序列
    Index := 1                  ; 用于循环
    Loop
    {
        IsUnicodeChar := false
        Code2 := 0                                             ; 字符2的ASCII码
        Code1 := Asc( SubStr(string, Index, 1) )    ; 得到第一个字符的ASCII值
        if(Code1 >= 129 && Code1 <= 254 && Index < Len)   ; 判断是否中文字符的第一个字符
        {
            Code2 := Asc( SubStr(string, Index+1, 1) )            ; 得到第二个字符的ASCII值
            if(Code2 >= 64 && Code2 <= 254)        ; 若条件成立则说明是中文字符
            {
                IsUnicodeChar := true
                Code1 <<= 8                                  ; 第一个字符应放到高8位上
                Code1 += Code2                              ; 第二个字符放在低8位上
            }
            ++Index
        }
        if( IsUnicodeChar )
            Keys .= "{ASC " . Code1 . "}"
        else
        {
            Keys .= "{ASC 0" . Code1 . "}"                ; 如果非中文字符,则需要前缀一个0
            if( Code2 > 0 )
                Keys .= "{ASC 0" . Code2 . "}"
        }
        ++Index
        if(Index > Len)
            Break
    }
    Send % Keys
}

有这方面爱好的,可以一起讨论哦。顺便问一下。有谁对discut 7.0的自动发布有研究的,我用.net写的程序,总是因为formhash出问题,可能是哪个地方他做了转换,一直找不到,请大侠指教啊。我已经能在自己的discut 7.0上自己发布了。只是我自己屏蔽了formhash呵呵-最近我在家开了个网络公司,靖州网站建设,大家支持一下我啊!开头好难!

posted on 2009-06-19 15:55  Mix  阅读(2734)  评论(7编辑  收藏  举报