منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : كود الضغط على الشاشة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم ورحمة الله وبركاته
يا شباب هل هناك كود وظيفته أن يقوم بالضغط على مكان معين في الشاشة  Huh Huh
مثلاً عندما أضغط على بوتون أريده أن يضغط ضغطة في منتصف الصفحة
وعليكم السلام  و رحمة و بركاته  ،،، 

بالنسبه للضغط على اي جزء  في الشاشة  ممكن تستخدم  ال  model  التالي  :



كود :
Module Module1
    Public Declare Sub mouse_event Lib "user32" (ByVal dwFlags As Long, ByVal dx As Long, ByVal dy As Long, ByVal cButtons As Long, ByVal dwExtraInfo As Long)
    Public Declare Function SetCursorPos Lib "user32" (ByVal x As Long, ByVal y As Long) As Long
    Public Declare Function GetCursorPos Lib "user32" (ByVal lpPoint As POINTAPI) As Long
    Public Const MOUSEEVENTF_LEFTDOWN = &H2
    Public Const MOUSEEVENTF_LEFTUP = &H4
    Public Const MOUSEEVENTF_MIDDLEDOWN = &H20
    Public Const MOUSEEVENTF_MIDDLEUP = &H40
    Public Const MOUSEEVENTF_RIGHTDOWN = &H8
    Public Const MOUSEEVENTF_RIGHTUP = &H10
    Public Const MOUSEEVENTF_MOVE = &H1
    Public Structure POINTAPI
        Dim x As Long
        Dim y As Long
    End Structure
    Public Function GetX() As Long
        Dim n As POINTAPI
        GetCursorPos(n)
        GetX = n.x
    End Function
    Public Function GetY() As Long
        Dim n As POINTAPI
        GetCursorPos(n)
        GetY = n.Y

    End Function
    Public Sub LeftClick()
        LeftDown()
        LeftUp()
    End Sub
    Public Sub LeftDown()
        mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
    End Sub
    Public Sub LeftUp()
        mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0)
    End Sub
    Public Sub MiddleClick()
        MiddleDown()
        MiddleUp()
    End Sub
    Public Sub MiddleDown()
        mouse_event(MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0)
    End Sub
    Public Sub MiddleUp()
        mouse_event(MOUSEEVENTF_MIDDLEUP, 0, 0, 0, 0)
    End Sub
    Public Sub RightClick()
        RightDown()
        RightUp()
    End Sub
    Public Sub RightDown()
        mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0)
    End Sub
    Public Sub RightUp()
        mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0)
    End Sub
    Public Sub MoveMouse(ByVal xMove As Long, ByVal yMove As Long)
        mouse_event(MOUSEEVENTF_MOVE, xMove, yMove, 0, 0)
    End Sub
    Public Sub SetMousePos(ByVal xPos As Long, ByVal yPos As Long)
        SetCursorPos(xPos, yPos)
    End Sub

End Module


طريقة الاستخدام  : 

 
كود :
  Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Call SetMousePos(100, 100) ' تحريك الماوس الى احداثي معين بالشاشة
        Call LeftClick() ' يضغط زر الماوس
    End Sub

يتبقى عليك  فقط اذا اردت الضغط في شاشة برنامج  معين ان  تجعل شاشة البرنامج الاخر هي active  على سطح المكتب ، لازم تكون ملم بعمليات Handles الخاص بالنوافذ و تجعل الشاشة المستهدفه فعاله

نقطه اخرى احب انبه عليها الكود لن يتم تفعيل الاكواد في وضعية تشغيل Debugs ، يعني تنشئ ملف EXE و تجربه خارج بيئة فيجول استديو