تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
استفسار عن تغير خلفيه المشروع
#27
MSDOS كتب :ممكن اضع طريقة أخرى

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

تعتمد الطريقة على ارسال رسالة الى التطبيق الهدف بدلالة عنوان نافذته

يوجد كودين، واحد لارسال الرسالة والآخر لاستقبال الرسالة

كود ارسال الرسالة: يكون في البرنامج اللي بيتحكم في البرنامج الآخر
كود :
Const WM_USER = &H400
Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Integer, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer
<Runtime.InteropServices.DllImport("user32.dll", SetLastError:=True, CharSet:=Runtime.InteropServices.CharSet.Auto)> _
Private Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim myColorDialog As New ColorDialog
    If myColorDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
        Dim hwnd As Integer = FindWindow(vbNullString, "عنوان نافذة البرنامج الهدف")
        If hwnd <> 0 Then
            PostMessage(hwnd, WM_USER, myColorDialog.Color.ToArgb, 0)
        End If

    End If

End Sub

كود استقبال الرسالة: ويكون في البرامج اللي تستقبل الرسالة وتنفذ العملية اللي تريدها
كود :
Const WM_USER = &H400
Protected Overrides Sub WndProc(ByRef m As System.Windows.Forms.Message)
    Select Case m.Msg
        Case WM_USER
            Me.BackColor = Color.FromArgb(m.WParam)

    End Select
    MyBase.WndProc(m)
End Sub

كيف الفكرة إن شاء الله سهلة ومفيدة.


وبعد اقول 10 / 10
الرد }}}
تم الشكر بواسطة:


الردود في هذا الموضوع
استفسار عن تغير خلفيه المشروع - بواسطة الشاكي لله_mybb_import4784 - 24-08-13, 02:58 AM


التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم