cnmini 发表于 2009-1-12 18:21:51

_IEAction 如何获取相关值

想写个Nod32半年激活码自动申请的Au3源码,到这儿遇到问题,单击"复制到剪贴板"复制激活码,不过不知道怎么得到“复制到剪贴板"的值,”_IEAction($xxxx ,"click")“ 之前就不知道怎么写了,前面没有表单,不知道用什么代码获得
                <div class="blank10"><!-- --></div>
                <p class="f16 cRed fB"><span class="number">M264-0233-3KF3-4HTC-45GR-5TFH</span></p>
                <input type='hidden' name='key' id='key' value="M264-0233-3KF3-4HTC-45GR-5TFH">
                <p><input type="button" value="复制到剪贴板" onclick="javascript:copyit(document.getElementById('key').value); " /></p>
          <div class="blank20"><!-- --></div>

直接得不到就获取"key"的值,然后复制到剪贴板:

        $key = _IEGetObjByName($oIE, "key")
        ClipPut($key.value)
        MsgBox(0, "已复制的激活码是:", ClipGet())

就是不明白,cliput的变量为什么是"$key.value"面不是"$key"?望有人解答下,太菜了

多谢sxd兄弟的热心解答

[ 本帖最后由 cnmini 于 2009-1-13 01:03 编辑 ]

sxd 发表于 2009-1-12 18:29:03

_IELinkClickByText

cnmini 发表于 2009-1-12 18:50:11

似乎不行

我直接这样写的:


      #include <GUIConstants.au3>
      #include <IE.au3>
          
          $oIE = _IECreate("http://tq.360.cn/trail-c.html",0,1)
      Dim $YanZhengMa = ""
      $YanZhengMa = InputBox("验证码", "请输入验证码,并单击[确定]","YanZheng")
      If @error = 1 Then
            Exit
      Else
      EndIf              
   _IELoadWait ($oIE)   
      $YanZheng = _IEGetObjById ($oIE, "code")
      If IsObj($YanZheng) Then $YanZheng.value = $YanZhengMa
      $submit =_IEGetObjByName ($oIE, "button")
      If IsObj($submit) Then $submit.click
          Sleep(1000)
       _IELinkClickByText($oIE,"复制到剪贴板")


错误提示:
--> IE.au3 V2.4-0 Warning from function _IELinkClickByText, $_IEStatus_NoMatch

sxd 发表于 2009-1-12 19:50:17

那直接取值好了
$key = _IEGetObjByName($oIE,"key")
msgbox(0,"激活码",$key.value)

BTW:好像一台机器 一直获取 是同一个号码啊

cnmini 发表于 2009-1-12 22:03:03

这样倒是可以输出,只是这个得手动输入激活码,更麻烦啊,怎样把激活码输出到剪切板?就是复制下这个激活码。

BTW:删除相应的Cookie就可以申请到不同的激活码

sxd 发表于 2009-1-12 22:24:05

汗 你得到激活码了 就能在程序里用了啊
剪贴板么 ClipPut

cnmini 发表于 2009-1-12 22:47:24

没办法,太菜了,难弄,我写的总是报错
ClipPut怎么写?

$key = _IEGetObjByName($oIE,"key")
ClipPut=("$key")
这样不对

sanhen 发表于 2009-1-12 23:03:27

有规律的用正则还简单。。
$Key=FileRead("trail.txt")
$Key=StringRegExp($Key,"(?s)[\w|\d]{4}-[\w|\d]{4}-[\w|\d]{4}-[\w|\d]{4}",2)
MsgBox(0,0,$Key)

cnmini 发表于 2009-1-12 23:10:54

没办法,正则老搞不明白
这样得先输出到文件,然后
怎么把$key输出到剪贴板呢?

sxd 发表于 2009-1-12 23:13:27

ClipPut($key)
字符串用引号变量不用引号

cnmini 发表于 2009-1-12 23:30:16

复制到剪切板正确的方法应该是:
        $key = _IEGetObjByName($oIE, "key")
        ClipPut($key.value)
        MsgBox(0, "已复制的激活码是:", ClipGet())

受教了,多谢二位热心的解答。

[ 本帖最后由 cnmini 于 2009-1-13 01:05 编辑 ]
页: [1]
查看完整版本: _IEAction 如何获取相关值