24-12-18, 09:47 AM
السلام عليكم ورحمة الله
عندي استفسار بخصوص اخذ نص من برنامج اخر يعمل في نفس الوقت
الكود اللي عندي شغال تمام باخذ نص من برنامج ال Notepad
بس انا اريد اخذ نص من برنامج اخر
مثلا من برنامج Google Chrome
اخذ نص الرابط
او اي برنامج اخر
هذا الكود
الكود هذا شغال مثلا اذا فتحت Notepad اسمه uuu.txt
هذا الكود يسحب النص الموجود في
بس كيف اخذ نص من برنامج اخر
بارك الله فيكم وشكرا
عندي استفسار بخصوص اخذ نص من برنامج اخر يعمل في نفس الوقت
الكود اللي عندي شغال تمام باخذ نص من برنامج ال Notepad
بس انا اريد اخذ نص من برنامج اخر
مثلا من برنامج Google Chrome
اخذ نص الرابط
او اي برنامج اخر
هذا الكود
كود :
Imports System.Runtime.InteropServices
Public Class Form1
Private Const WM_GETTEXT As Integer = &HD
Declare Auto Function SendMessage Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal msg As Integer,
ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)>
Private Shared Function FindWindowEx(ByVal parentHandle As IntPtr,
ByVal childAfter As IntPtr,
ByVal lclassName As String,
ByVal windowTitle As String) As IntPtr
End Function
Declare Auto Function FindWindow Lib "user32.dll" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Find the running notepad window
Dim Hwnd As IntPtr = FindWindow(Nothing, "uuu.txt - Notepad")
'Alloc memory for the buffer that recieves the text
Dim Handle As IntPtr = Marshal.AllocHGlobal(100)
'send WM_GWTTEXT message to the notepad window
Dim NumText As Integer = SendMessage(Hwnd, WM_GETTEXT, 50, Handle)
'copy the characters from the unmanaged memory to a managed string
Dim Text As String = Marshal.PtrToStringUni(Handle)
'Display the string using a label
Label1.Text = Text
'Find the Edit control of the Running Notepad
Dim ChildHandle As IntPtr = FindWindowEx(Hwnd, IntPtr.Zero, "Edit", Nothing)
'Alloc memory for the buffer that recieves the text
Dim Hndl As IntPtr = Marshal.AllocHGlobal(200)
'Send The WM_GETTEXT Message
NumText = SendMessage(ChildHandle, WM_GETTEXT, 200, Hndl)
'copy the characters from the unmanaged memory to a managed string
Text = Marshal.PtrToStringUni(Hndl)
'Display the string using a label
Label2.Text = Text
End Sub
End Class
الكود هذا شغال مثلا اذا فتحت Notepad اسمه uuu.txt
هذا الكود يسحب النص الموجود في
بس كيف اخذ نص من برنامج اخر
بارك الله فيكم وشكرا