nix 发表于 2010-9-19 20:06:36

请问剪贴板操作怎么工作不正常啊?--已解决

本帖最后由 nix 于 2010-9-20 17:39 编辑

代码如下Func hh_bold( )
        If WinActive("") Or WinActive("") Then
        BlockInput(1)
        MouseClick("left")
        MouseClick("left")
        $hh_error=WinWaitActive("","",3)
        if $hh_error=0 Then
                BlockInput(0)
                MsgBox(16, "出错啦", "没能激活窗口", 1)
                return 0
        EndIf
        Send("^a")
        Sleep(100)
        Send("^x")
        Sleep(300)
        Send("^v")
        Sleep(500)
        WinClose("")
        sleep(100)
        BlockInput(0)
        Return 1
        Else
        MsgBox(16,"出错啦", "没找到窗口",1)
        Return 0
        EndIf
EndFunc工作时好像根本没有剪切到剪贴板,粘贴也根本不成功。
此处剪切的不是普通文本,是ppt里面的公式编辑器里面的内容。
本人初学,莫笑哦

nix 发表于 2010-9-20 09:33:56

工作流程是简单的全选、剪切、粘贴。
我用ahk完成了一个,能正常工作。autoit3不工作实在费解啊

现贴上ahk的代码#b::
if WinActive("ahk_class PP11FrameClass") or WinActive("ahk_class OpusApp")
{
        BlockInput On
        Clipboard=
        click 2
        WinWaitActive,ahk_class EQNWINCLASS,,2
        if ErrorLevel
        {
            BlockInput Off
                MsgBox,0,出错啦, 超时2s,2
            return
        }
        sendinput ^a
        sleep 100
        sendinput ^x
        ClipWait,2,1
        if ErrorLevel
        {
            BlockInput Off
                MsgBox,1, 尝试复制到剪贴板失败,,出错啦,2
            return
        }
        sleep 200
        sendinput ^v
        Clipboard=
        sleep 1200
        WinClose, ahk_class EQNWINCLASS
        sleep 100
}
else
{
        BlockInput Off
        MsgBox,0,出错啦, 没找到程序窗口^_^,2
}
BlockInput Off
return

baikaifang 发表于 2010-9-20 10:21:59

不要使用 BlockInput 函数屏蔽键盘,再试试可不可以

nix 发表于 2010-9-20 12:38:26

不要使用 BlockInput 函数屏蔽键盘,再试试可不可以
baikaifang 发表于 2010-9-20 10:21 http://www.autoitx.com/images/common/back.gif

多谢!。
果然如此,测试成功了。这个问题困扰我好久,看样子还得好好学学autoit3

zjg2003 发表于 2010-9-20 13:51:13

学习了!!!!

afan 发表于 2010-9-20 13:54:47

希望规范标题,改为“已解决”
“已经解决”和“未解决”在搜索时匹配“已解决”的关键字时命中率一样~
比如LZ的帖子在使用“剪贴板 已解决”搜索时是找不到的
页: [1]
查看完整版本: 请问剪贴板操作怎么工作不正常啊?--已解决