سلام.
من نیاز به کدی دارم که معادل باشه با جابجایی ٍ اندک ماوس. منظورم رویداد MouseMove نیست که وقتی ماوس حرکت داده شد اتفاقی بیفته، بلکه یعنی وقتی برنامه به کدی که مورد نیازم هست رسید، انگار که ماوس توسط کابر کمی جابجا شده است. با احترام و تشکر.
سلام.
من نیاز به کدی دارم که معادل باشه با جابجایی ٍ اندک ماوس. منظورم رویداد MouseMove نیست که وقتی ماوس حرکت داده شد اتفاقی بیفته، بلکه یعنی وقتی برنامه به کدی که مورد نیازم هست رسید، انگار که ماوس توسط کابر کمی جابجا شده است. با احترام و تشکر.
اگه کاریو که می خوای انجام بدی (هدفت) بگی بیشتر می شه کمک کرد![]()
سلام.
تابع GetCursorPos میتونه کمکت کنه.
منظورتون رو خیلی گنگ مطرح کردید. اگه میشه بیشتر و بهتر توضیح بدید.
1- منظورتون اینه که مثل این باشه که ماوس حرکت کرده، اما ماوس در واقع حرکت نکنه؟
2- منظورتون اینه که ماوس حرکت کنه ولی کدهایی که در صورت حرکت ماوس باید اجرا شوند، اجرا نشوند؟
3- ...
؟
توی محیط VBA یه نرم افزار دارم مینویسم برنامه رو. یه جا وقتی ماوس تکون بخوره، یه اتفاقی تو نرم افزار میفته، اما میخوام تو برنامه وقتی به کد مورد نظر رسید، معادل اون تکون خوردن باشه، که نخوام بطور دستی ماوس رو تکون بدم! البته نمیدونم که تو اون نرم افزار وقتی ماوس تکون میخوره چه کدی از خود نرم افزار اجرا میشه( تو کدای خود نرم افزار چیزی در این زمینه نیست)!
در واقع جناب suB ، مورد 1 و 2 که مطرح کردین، حداقل یکیش مورد نظرمه. به خصوص مورد1. شدنیه ؟
اگرم لطف کنین تابع GetCursorPos رو آرگوماناشو برام بگین.
ممنون.
lpPoint As POINTAPI نقاط X و Y روی صفحه نمایش
Public Type POINTAPI
x As Long
y As Long
End Type
Public Declare Function GetCursorPos Lib "user32" Alias "GetCursorPos" (lpPoint As POINTAPI) As Long
Public Declare Function SetCursorPos Lib "user32" Alias "SetCursorPos" (ByVal x As Long, ByVal y As Long) As Long
دیگه نمیدونم چطوری از این ساده ترش کنم
3 راه به نظر من میرسه.
1- استفاده از تابع API به نام SetCursorPos (برای حرکتهای مطلق و زیاد بسیار پیشنهادمیشود)
2- استفاده از تابع API به نام mouse_event (برای حرکتهای جزئی بسیار پیشنهاد میشود)
3- ارسال پیغام حرکت ماوس به پنجره (پیشنهاد نمیشود)
با تشکر فراوون از دوستان Jamshidy , Sub , Payman . مشکل به همین روش که گفتین حل شد. و اما آیا میشه کاری کرد که وقتی اجرای برنامه تموم میشه، بعد از مثلا t ثانیه بعد، این تابع اجرا بشه ؟! یا بطور کلی یه سابروتین t ثانیه بعد از پایان یافتن یه سابروتین دیگه، خودش اجرا شه ؟ با تشکر.
فکر کنم بتونی وقتی برنامه داره پایان میپذیره، اون روالی که میخواهی t ثانیه بعد از پایان برنامه اجرا بشه رو به عنوان یک ریسمان به ویندوز معرفی کنی و توی اون اول t ثانیه مکث کنی و بعد کارهایی که میخوای انجام بدی.
![]()
یعنی دقیقا چیکار کنم ؟![]()
هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)