tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル ブラウザへの文字列の書き込みできました 
投稿日: 2012/06/07(Thu) 16:52
投稿者@chie
ブラウザへの文字列の書き込みできました 
クリップボード貼り付けは
カコのサンプルからつぎはぎしながらやってみました

ただしFireFoxは結局入力を受け付けなかったので
ブラウザはGoogle Chromeを使用しました

魔界の仮面弁士さん 花ちゃんさん ありがとうございました

-------------------------------------------------------------------


'マウスカーソルの位置を設定する(P389)
Private Declare Function SetCursorPos Lib "user32" _
    (ByVal x As Long, ByVal y As Long) As Long

'キーストロークをシミュレートする(P1065)
Private Declare Sub keybd_event Lib "user32.dll" _
   (ByVal bVk As Byte, ByVal bScan As Byte, _
    ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Private Const KEYEVENTF_KEYUP = &H2         'キーアップ
Private Const KEYEVENTF_EXTENDEDKEY = &H1   'スキャンコードは拡張コード
    
'仮想キーコード・ASCII値・スキャンコード間でコードを変換する(P1067)
Private Declare Function MapVirtualKey Lib "user32" _
    Alias "MapVirtualKeyA" (ByVal wCode As Long, _
    ByVal wMapType As Long) As Long


Private Sub AutoNyuryoku()
dim x1 As Long
dim y1 As Long
  x1 =100
    y1= 200
    
    '文字入力欄にマウスをもってくる
    SetCursorPos x1, y1
    mouse_event MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0
    mouse_event MOUSEEVENTF_LEFTUP, 0, 0, 0, 0

    '入力貼り付け
     Call sSetSendKeys(strAddress, vbKeyControl, vbKeyV)    
    'Tab移動
    Call TabPush
     Call sSetSendKeys(strPssword, vbKeyControl, vbKeyV) '貼り付け
    
    

End Sub


’文字列をクリップボードに入れて何かに書き出す
Public Sub sSetSendKeys(Inputstr As String, bVk1 As Long, _
                Optional bVk2 As Long = 0, Optional bVk3 As Long = 0)
                
Clipboard.Clear
Clipboard.SetText Inputstr
                
                
'SendKeys と同様にアクティブウィンドウにキーストロークを送る
'以下のパターンは必要により追加して下さい。
    If bVk2 = 0& And bVk3 = 0& Then
    'キーを1個だけ送る
        Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
            Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
    ElseIf bVk3 = 0& Then
    'キーの複合操作 [Alt] + [E] 等
        Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
            Call keybd_event(CByte(bVk2), MapVirtualKey(CByte(bVk2), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
            Call keybd_event(CByte(bVk2), MapVirtualKey(CByte(bVk2), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
        Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
    ElseIf (bVk1 <> 0&) And (bVk2 <> 0&) And (bVk3 <> 0&) Then
    'SendKeys "%(EA)" と同様の操作
        Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
        Call keybd_event(CByte(bVk2), MapVirtualKey(CByte(bVk2), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
        Call keybd_event(CByte(bVk2), MapVirtualKey(CByte(bVk2), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
        Call keybd_event(CByte(bVk3), MapVirtualKey(CByte(bVk3), 0), _
                        KEYEVENTF_EXTENDEDKEY Or 0, 0)
        Call keybd_event(CByte(bVk3), MapVirtualKey(CByte(bVk3), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
        Call keybd_event(CByte(bVk1), MapVirtualKey(CByte(bVk1), 0), _
                        KEYEVENTF_EXTENDEDKEY Or KEYEVENTF_KEYUP, 0)
    End If
   StopTime (50)     '連続処理した場合を考慮
End Sub
Private Sub TabPush(Optional i As Integer = 1)
    
    ReDim wVkKey(1) As Integer
    ReDim UpDown(1) As Integer
        wVkKey(0) = vbKeyTab: UpDown(0) = 0    'TAB キーダウン
        wVkKey(1) = vbKeyTab: UpDown(1) = 1     'TAB キーアップ
    For i = 1 To i
        sKeyEventSet 2, wVkKey, UpDown
            StopTime (50)     '連続処理した場合を考慮
    Next i
End Sub

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。