PDA

View Full Version : سوال: ارسال متن به چند تكست باكس برنامه ديگر توسط هندل



javadt
شنبه 21 اسفند 1389, 23:58 عصر
سلام
من مي خوام به بك برنامه ديگه كه داراي دو تا تكست باكس هست تكست بفرستم
مي دونم بايد توسط هندل انجام بشه و ... مثال هاي سايت رو هم ديدم اما اون ها براي يك تكست هست
كلاس هر د تكست يكي هست
چطوري مي تونم به هردو تكست متن ارسال كنم
با تشكر

محسن واژدی
یک شنبه 22 اسفند 1389, 06:49 صبح
سلام علیکم
دستور زیر یک متن را به یک فرم ارسال میکند
با وارد کردن هندل TextBox موجود در فرم مقصد و همینطور کلاسش متن را در آن قرار میدهد


Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Private Declare Function SendMessageByString Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long

Private Const WM_SETTEXT = &HC
Private Const WM_KEYDOWN = &H100
Private Const VK_RETURN = &HD

Private Sub Command1_Click()
Dim wnd, meswnd As Long
wnd = FindWindow(#CLASS_NAME#, #Window_NAME#)
meswnd = FindWindowEx(wnd, 0,#SUBCLASS_NAME#, vbNullString)
SendMessageByString meswnd, WM_SETTEXT, 0, #TEXT#
End Sub

در کد بالا موارد زیر را جایگزین کنین:
#CLASS_NAME#: کلاس پنجره مورد نظر
#Window_NAME#: عنوان پنجره مورد نظر که البته میتوانید در صورت تمایل با vbNullString مقدار دهیش کنید
#SUBCLASS_NAME#: کلاس شی مورد نظر که در اینجا TextBox است
#TEXT#: متن مورد نظرتان که میخواهید به textbox ارسال کنید

موفق باشید

ramzdar
یک شنبه 22 اسفند 1389, 19:26 عصر
من خیلی وارد نیستم
میشه بگین کلاس پنجره و کلاس شئ چی هستن؟ یه توضیحی دربارشون بدین.
ممنون

_behnam_
دوشنبه 23 اسفند 1389, 01:25 صبح
شما واسه بدست آوردن هندل هر پنجره یا نیاز به کپشن اون پنجره دارید یا نیاز به کلاس اون دارید
کلاسا فرق دارن
مثلا کلاس TextBox پروژه ای که تو ویژوال Compile میکنی میشه ThunderTextBox اما کلاس textbox یوز و پسورد یاهو Edit
واسه اینکه کارت راحت تر بشه من واست یه سورس رو لینک میکنم . اینو قبلا هم قرار دادم
سورس رو اجرا میکنی موس رو رو هر پنجره ای ببری برنامه بهت کلاس و هندل اون رو نشون میده
این خیلی میتونه موثر باشه تو یادگیری

ramzdar
سه شنبه 24 اسفند 1389, 07:39 صبح
پس چرا کار نمیکنه
اگه میشه یه سورس بذارین

محسن واژدی
سه شنبه 24 اسفند 1389, 09:04 صبح
من خیلی وارد نیستم
میشه بگین کلاس پنجره و کلاس شئ چی هستن؟ یه توضیحی دربارشون بدین.
ممنون

سلام علیکم
هر شی که که میبینیم خود دارای یک کلاس است که ویژگی های آن شی را نگهداری میکند، ویژگیهایی نظیر رنگ، رویدادها و ...
کلاس شی و پنجره دارای یک مفهوم یکسان هستند
برای بدست آوردن کلاس اشیاء هم میتوانید از برنامه Spy++ که همزمان با نصب vb6 نصب میشود استفاده کنید
موفق باشید

محسن واژدی
سه شنبه 24 اسفند 1389, 09:14 صبح
پس چرا کار نمیکنه
اگه میشه یه سورس بذارین

همانگونه که قبلا نیز عرض شد از برنامه spy++ استفاده کنید

محسن واژدی
سه شنبه 24 اسفند 1389, 09:22 صبح
سورس زیر نمونه ای از دستورات پست 2 میباشد

موفق باشید