在VB6中发送密钥不在文本框

时间:2015-10-28 18:55:54

标签: vb6 sendkeys

我在VB6中有一个webbrowser,显示来自第三方公司的网站。我正在尝试使用以下代码将文本粘贴到此网站的文本框中:

mainFrm.wbr(1).SetFocus
SendKeys "10"

它正在处理大多数文本框,除了javascript函数禁用某些键的文本框:

function only_numbers()
{
    var key=window.event.keycode;
    if (key < 48 || key > 57)
    {
        if(key != 44 || key != 8 || key != 46 || key != 96)
        {
            window.event.keycode=0;
        }
    }
}

有没有办法绕过这个脚本?或者也许是另一种设置文本框文本的方法?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我在我工作的地方使用VB6桌面应用程序。始终避免使用&#34; SendKeys&#34;但使用方法,使用方法如下:

SendKeys "{DOWN}"

换句话说,当使用&#34; {&#34;和&#34;}&#34;

我们还有一个名为&#34; SoNumeros&#34;它验证最终用户输入的内容并仅允许数字。

我们始终在行动&#34; KeyPress&#34;成分:

Function SoNumeros(KeyAscii, Optional Nao_Aceita_Virgula_ou_Ponto As Integer, Optional ByVal aceitaValoresNegativos As Boolean = True, Optional ByVal aceitaBarra As Boolean = False)
    If KeyAscii = Asc("-") And Not aceitaValoresNegativos Then KeyAscii = 0

    If Nao_Aceita_Virgula_ou_Ponto = 0 Then
        '        If Not (IsNumeric(Chr(KeyAscii))) And KeyAscii  8 And KeyAscii  Asc(",") And KeyAscii  Asc(".") And KeyAscii  Asc("-") Then
        If Not (IsNumeric(Chr(KeyAscii))) And KeyAscii  8 And KeyAscii  Asc(",") And KeyAscii  Asc("-") Then
            If aceitaBarra = False Then
                KeyAscii = 0
            Else
                If KeyAscii  Asc("/") Then
                    KeyAscii = 0
                End If
            End If
        End If
    Else
        If Not (IsNumeric(Chr(KeyAscii))) And KeyAscii  8 And KeyAscii  Asc("-") Then
            If aceitaBarra = False Then
                KeyAscii = 0
            Else
                If KeyAscii  Asc("/") Then
                    KeyAscii = 0
                End If
            End If
        End If
    End If
End Function

我希望它能帮到你