PDA

View Full Version : ارسال و دریافت داده از آبجکت خارجی



s.mohammad
دوشنبه 27 فروردین 1386, 20:57 عصر
سلام دوستان

می خواستم بدونم چطوری میشه تویه وی بی از یک آبجکت خارجی مثلا یک تکست باکس تویه یه برنامه دیگه اطلاعات رو خوند یا به اون اطلاعات داد .

ممنون

CodeMasterX
سه شنبه 28 فروردین 1386, 02:19 صبح
با استفاده از توابع API.
یه مثال ساده رو کاربر فکر کنم S.VBMAx یه همچین چیزی توی همین بخش با romina بحث کرده.این برنامه ها با توابع API اول برنامه ای رو Hook می کنن و بعد با استفاده از هندل کنترل ها روی داده هاشون کار می کنن.به عبارتی APISpy.

s.mohammad
سه شنبه 28 فروردین 1386, 18:03 عصر
آقا خیلی ممنون

احتمالا منظورتون این تاپیک هست :

http://barnamenevis.org/forum/showthread.php?t=64531&highlight=WM_GETTEXT

ولی متاسفانه من چون چند سالی هست برنامه نویسی نمی کنم خیلی چیزها رو فراموش کردم و نتونتم از این تاپیک استفاده کنم .

اگر دوستان زحمت بکشن و یه سورس به من بدن ممنون میشم . هدف من به دست آوردن متن داخل یک لیست باکس در یک برنامه دیگه است غیر از برنامه خودم.

متشکرم
:چشمک:

s.mohammad
چهارشنبه 29 فروردین 1386, 11:56 صبح
کسی نمی تونه کمکی به من بکنه .......

CodeMasterX
چهارشنبه 29 فروردین 1386, 14:51 عصر
شما دیگه مشکلت چیه ؟
همون ضمیمه ای که تو لینک بالا S_VB.Max آپلود کرده این کار رو می کنه.
نشانگر برنامه رو روی یه TextBox ببر و هندل و مقدار داخلش رو بهت میده.

s.mohammad
چهارشنبه 29 فروردین 1386, 23:16 عصر
شما دیگه مشکلت چیه ؟
همون ضمیمه ای که تو لینک بالا S_VB.Max آپلود کرده این کار رو می کنه.
نشانگر برنامه رو روی یه TextBox ببر و هندل و مقدار داخلش رو بهت میده.

دوست عزیز اون برنامه متن تکست باکس رو میتونه بگیره ولی متن لیست باکسها رو نمیده .
من هم که گفتم برای لیست باکس میخوام .

به نظرم باید از SendMassage و LB_GETTEXT استفاده کنم ولی نمی دونم چطوری !؟ :متفکر:

CodeMasterX
پنج شنبه 30 فروردین 1386, 00:32 صبح
آهان پس قضیه سر لیست باکس هست.
همون برنامه S_VB.max رو بگیر و سورسش رو بخون و ببین چجوری میتونی با SendMessage و LB_GETTEXT از لیست باکس داده ها رو بگیری.
در اولین فرصت یه نمونه برات میذارم.

‍Peter Norton
پنج شنبه 30 فروردین 1386, 11:55 صبح
دوست عزیز اگر بخواهی اطلاعات یک textbox یا کنترل دیگر را بخوانی و تغییر دهی، معمولاً کد زیر جواب می دهد (به خصوص در مورد کنترلهای ذاتی VB) :

Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long


Private Sub Command1_Click()
Dim MyStr As String

MyStr = Space(255)

GetWindowText Text1.hwnd, MyStr, 255
Debug.Print Trim(MyStr)

MyStr = "OK"
SetWindowText Text1.hwnd, MyStr
End Sub

من یک TextBox روی صفحه قرار دادم و برای سادگی از hwnd خود آن استفاده کردم. طبیعتاً برای اینکه TextBox یک برنامه دیگر را بخوانی باید با استفاده از توابع API ابتدا hwnd آنرا بدست آورده و به روتین فوق پاس کنی.

امیدوارم کمکی کرده باشم.
شاد باشید