hyrl5190 发表于 2009-7-24 12:21:39

外部程序Edit框有字符限制,如何强制写入?

本帖最后由 hyrl5190 于 2009-7-29 22:38 编辑

如题
外部程序的Edit框限制了一旦输入字符达到3位,就会自动清空内容
并弹出错误信息。
我尝试了各种方法都无法写入3位字符而不弹出错误
盼各种高手帮忙看看

模拟外部程序Edit框代码如下。#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 258, 83)
$Input1 = GUICtrlCreateInput("", 32, 24, 177, 21)
GUISetState(@SW_SHOW)
While 1
IF StringLen (GUICtrlRead ($Input1))=3 Then
        GUICtrlSetData ($Input1,"")
        MsgBox (48,"错误","字符限制")
EndIf
        $nMsg = GUIGetMsg()
        Switch $nMsg
                Case $GUI_EVENT_CLOSE
                        Exit

        EndSwitch
WEnd

顽固不化 发表于 2009-7-24 12:57:09

不知你那里怎么了。我这里很正常

hyrl5190 发表于 2009-7-27 17:53:45

输入字符数达到3位,edit框就自动清空内容了
请问您是怎么测试的?

lynfr8 发表于 2009-7-27 19:19:26

IF StringLen (GUICtrlRead ($Input1))=3 Then
如果是针对楼主写的模仿代码
是输入字数等于3时就弹出出错提示
反过头来想
想办法不让检测到=3就不会弹出错误提示了

方法:
先输入随便两个字符--复制这两个字符--粘贴为四个字符
看看会出现什么情况?

hyrl5190 发表于 2009-7-27 19:24:07

本帖最后由 hyrl5190 于 2009-7-27 19:31 编辑

但程序只认3位字符!
超出3位程序便认为没有输入信息。

通过程序指定的方法输入则没有问题

但一用第三方程序来输入,程序则提示错误。

lynfr8 发表于 2009-7-27 19:42:06

既然如此
那楼上为何还想着干这么无聊的事?

hyrl5190 发表于 2009-7-27 20:01:15

因为程序本身的输入方法较为繁琐
且无法通过脚本模拟

所以才想尝试是否有别的途径可以达到相同的效果

au3自带命令与UDF 我尝试过不少,均无法输入
所以才来求助,同时也谢谢你关注我的帖子,呵呵。

chengjinn 发表于 2009-7-28 01:19:19

4楼的方法好啊...22

chengjinn 发表于 2009-7-28 01:23:56

晕死...细看了下源码.才发现如果把=3改成>=3那么4楼的方法也就没有用了/``/`

foxdcj 发表于 2009-7-29 11:20:09

:face (14):

顽固不化 发表于 2009-7-29 12:14:13

没搞清楚lz的意思。你是想输入多于3个字符呢,还是验证输入3个字符是否清空?

hyrl5190 发表于 2009-7-29 14:09:10

我想表达的意思很简单。。
就是如何我给出的源码一样,一旦输入字符数达到3位,就会被清空
我想知道 有没有哪条命令可以输入3位字符而不被清空的。。
给个思路也行

顽固不化 发表于 2009-7-29 14:33:28

这与原设计有关,如果“字符=>3”就清空,我看没法实现输入3而不清空的。你是否发现源程序可以输入3个以上的字符而不被清空?

hyrl5190 发表于 2009-7-29 14:40:47

源程序通过指定的方法来输入字符,是不会被清空的
所以我才有此一问。
是否可以通过调用windows消息实现?

顽固不化 发表于 2009-7-29 14:46:33

直接拷贝粘贴试试。也许有速度限制
页: [1] 2
查看完整版本: 外部程序Edit框有字符限制,如何强制写入?