PDA

View Full Version : شبیه سازی کلیک موس000



Ahmad-VB
دوشنبه 31 شهریور 1382, 05:21 صبح
سلام به وی بی پروگرمرهای عزیز
خوشحالم که یه جایی پیدا کردم سئوالاتم رو بپرسم . البته نمی دونم کسی هست جواب بده یا نه چون تا اونجایی که من دیدم اکثر پستهای اینجا در باره دیتا بیسهاست و من اصلا توی این مایه ها نیستم.
اما سئوال , چطوری میشه کلیک موس رو توی یه برنامه دیگه مثلا در یک باتون شبیه سازی کرد.
و چه طوری میشه کلیک موس رو در یک مختصات خاصی از صفحه نمایش شبیه سازی کرد.
از اینکه به سوال جواب میدید متشکرم. :wink:

mr_esmaily
دوشنبه 31 شهریور 1382, 09:48 صبح
سلام
سوال خیلی جالبیه منم می خوام بدونم! :idea:

alimalekiani
دوشنبه 31 شهریور 1382, 11:27 صبح
با سلام
با این بر نامه می تونی موس را با دکمه جهتهای کیبورد حرکت بدی

S.Azish
دوشنبه 31 شهریور 1382, 11:52 صبح
این لینک رو ببینید

http://www.vb-helper.com/howto_move_click_mouse.html

alimalekiani
دوشنبه 31 شهریور 1382, 12:53 عصر
تو چطوری مدیر بخش شدی
:lol: 8) 8) :?:

mr_esmaily
دوشنبه 31 شهریور 1382, 13:32 عصر
سلام
منم می خوام بدونم! :mrgreen: :mrgreen: :mrgreen:

Abbas Arizi
دوشنبه 31 شهریور 1382, 13:40 عصر
ایشون موقعی که شما تشریف نداشتید با رای اکثریت بچه ها به عنوان مدیر بخش انتخاب شدند.

cpuman
دوشنبه 31 شهریور 1382, 14:11 عصر
با سلام
با این بر نامه می تونی موس را با دکمه جهتهای کیبورد حرکت بدی
با سلام من از شما تشکر می کنم که این برنامه را در اختیار من و دیگران گذاشتید :D :) :o :lol: :roll: :roll:

mr_esmaily
دوشنبه 31 شهریور 1382, 14:30 عصر
خوب این رای گیری کی هست؟! :wink:

Abbas Arizi
دوشنبه 31 شهریور 1382, 15:34 عصر
کی هست یا کی بود؟ :?: :!:
ساعت خواب :wink:

mr_esmaily
دوشنبه 31 شهریور 1382, 15:53 عصر
WHAT? :?:

M-Gheibi
دوشنبه 31 شهریور 1382, 18:19 عصر
آقای اسماعیلی منظور آقای عریضی این هست که :

هست .......> زمان حال و ...
بود ...........> گذشته

این رای گیری قبلاً بوده :lol: :lol: :wink:

mr_esmaily
سه شنبه 01 مهر 1382, 14:45 عصر
سلام می بخشید انگلیسی نوشتم خوب یعنی دیگه نیست؟! :wink:

Ahmad-VB
پنج شنبه 03 مهر 1382, 04:52 صبح
سلام
جناب آزیش به خاطر اینکه لطف کردید و قسمت اول سوال رو جواب دادید متشکرم اگر اون قسمت اول رو هم جواب بدید ممنون میشم.
علی جان از شما هم متشکرم گرچه این برنامه ای که گذاشتی ربط چندانی به سوال من نداشت.
راستی وقتی مقابل تاپیک سوالم دیدم نوشته 11 جواب با خودم گفتم .اینا چقدر واردن برای یه سوال 11 تا جواب مختلف دارن.اما حالا میبینم از 11 تا 9 تاش کاملا به سوال ربطی نداره.
اشکال نداره عادت میکنم. :P :wink:

mr_esmaily
پنج شنبه 03 مهر 1382, 15:41 عصر
واقاً شرمندم ! :wink:
اینو دانلود کن تاشاید یه خورده جبران بشه! :P

S.Azish
پنج شنبه 03 مهر 1382, 17:19 عصر
برای برنامه های دیگه کافیه مختصات موس رو پیدا کنید بعد hWnd شیئ زیر موس و بعد پیغام BM_Click رو با SendMessage براش بفرستید. برای این کار باید از یک Timer استفاده کنید و خصوصیت Interval اونو برای مثال روی 1000 بگذارید



Option Explicit
Private Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
Private Declare Function WindowFromPoint Lib "user32" (ByVal xPoint As Long, ByVal yPoint As Long) As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String, ByVal nMaxCount As Long) As Long
Private Const BM_CLICK = &HF5
Private Type POINTAPI
x As Long
y As Long
End Type

Private Sub Timer1_Timer()
'
Dim mPoint As POINTAPI
Dim objectHwnd As Long
Dim objectClassName As String * 100

Call GetCursorPos(mPoint)
objectHwnd = WindowFromPoint(mPoint.x, mPoint.y)
If objectHwnd Then
Call GetClassName(objectHwnd, objectClassName, Len(objectClassName))
If InStr(1, UCase(objectClassName), "BUTTON") > 0 Then
Call SendMessage(objectHwnd, BM_CLICK, 0, 0)
End If
End If
'
End Sub

mr_esmaily
پنج شنبه 03 مهر 1382, 20:27 عصر
امتحان کردم نشد! :cry:

S.Azish
پنج شنبه 03 مهر 1382, 20:46 عصر
روی دستگاه من با Windows Xp بدون مشکل کار میکنه.

mr_esmaily
پنج شنبه 03 مهر 1382, 20:50 عصر
تو 98 نمی دونین چه جوری میشه این کارو انجام داد؟!

Ahmad-VB
جمعه 04 مهر 1382, 06:19 صبح
جناب اسماعیلی اون کده سرکاری خوبی بود دستت درد نکنه. :wink:
مستر جان این کد آقای آزیش خوب کار میکنه اما مشکلش اینه که باید بگردی یه کمند باتون
واقعی پیدا کنی تا بتونی تستش کنی .برای این که راحت باشی یه باتون به فرمت اضافه کن
و یه کدی توش بنویس موس رو که روش ببری اون کد اجرا میشه.
---------------------------------------
جناب آزیش بازم از لطفتون متشکرم.اما من میخواستم به نشانگر موس ربطی نداشته
باشه یعنی مثلا کاربر روی یه باتون توی فرم من کلیک کنه و مثل این باشه که دکمه
Play مدیا پلیر کلیک بشه(اینو از باب مثال گفتم ها) .راستی یه سوالی که داشتم
اینه که چطوری میشه مقادیر ثابتهایی مثل همین BN_CLICK رو حساب کرد یا ازکجا
میشه اونا رو به دست آورد.
متشکرم

mr_esmaily
جمعه 04 مهر 1382, 13:41 عصر
سلام
بله درسته!
کد آقای آزیش کار می کنه و اشتباه ازمن بود! :wink:
اما در مورد بدست آوردن ثابتها مثل همونیکه گفتید می تونید از API Viewer استفاده کنید برای این کار از منوی Add-ins گزینه ...Add-in Maager رو انتخاب کنید و در کادر محاوره ایAdd-in Maager گزینهVB 6 API Viewer رو انتخاب کرده و در پایین در بخش Load Behavior دو گزینه اول رو تیک دار کنید اولین گزینه API Viewer رو فقط برای یکبار اونم همین الان فعال(Load) می کنه و دومین گزینه هر وقت که وی بی رو باز می کنی اونو فعال(Load) می کنه .
بعد از انتخاب این دو گزینه روی دگمه OK کلیک کنید تا اون برنامه بارگذاری بشه!
حالا از منو Add-ins گزینه API Viewer را که تازه به این منو اضافه شده است انتخاب و اجرا کنید . برای دست رس به ثابتها و توابعAPI از منو File گزینه... Load Text File رو انتخاب کنید و سپس از لیست باز شده فایل Win32api رو انتخاب کنید و دگمه Open را کلیک کنید.
حالا تمامی توابع Api در دسترس شماست و برای استفاده از آنها فقط لازم است نام اونو در بخش... Type the first تایپ کنی و برای دسترسی به ثابتها فقط لازم است در بخش API type
گزینه Constants رو به جای Declare انتخاب کنی .


موفق و پیروز باشی 8)

Ahmad-VB
دوشنبه 07 مهر 1382, 04:59 صبح
آقا کسی نبود جواب منو بده .کم کم داره سوالم محو میشه ها :cry:

ab_ba
دوشنبه 13 تیر 1384, 08:33 صبح
سلام
اگر منظورت از شبیه سازی حرکت ماوس و کلیک آن باشد که در بالا جوابت را گرفتی
ولی اگر منظورت اینه که کدی که در قسمت Click یک کنترل نوشته شده بدون کلیک اجرا بشه میتونی اونو تو یه تابع بنویسی و هر جا خواستی تابع را صدا بزنی
اگر اینم جوابت نبود ، کاری که دقیقا میخوای انجام بدی را بگو تا کمکت کنیم