مشاهده نسخه کامل
: کدی معادل با حرکت ماوس
kavehtanhaeivash
17-10-2007, 01:45
سلام.
من نیاز به کدی دارم که معادل باشه با جابجایی ٍ اندک ماوس. منظورم رویداد MouseMove نیست که وقتی ماوس حرکت داده شد اتفاقی بیفته، بلکه یعنی وقتی برنامه به کدی که مورد نیازم هست رسید، انگار که ماوس توسط کابر کمی جابجا شده است. با احترام و تشکر.
اگه کاریو که می خوای انجام بدی (هدفت) بگی بیشتر می شه کمک کرد :8:
Payman_62
17-10-2007, 16:27
سلام.
تابع GetCursorPos میتونه کمکت کنه.
سلام.
من نیاز به کدی دارم که معادل باشه با جابجایی ٍ اندک ماوس. منظورم رویداد MouseMove نیست که وقتی ماوس حرکت داده شد اتفاقی بیفته، بلکه یعنی وقتی برنامه به کدی که مورد نیازم هست رسید، انگار که ماوس توسط کابر کمی جابجا شده است. با احترام و تشکر.
منظورتون رو خیلی گنگ مطرح کردید. اگه میشه بیشتر و بهتر توضیح بدید.
1- منظورتون اینه که مثل این باشه که ماوس حرکت کرده، اما ماوس در واقع حرکت نکنه؟
2- منظورتون اینه که ماوس حرکت کنه ولی کدهایی که در صورت حرکت ماوس باید اجرا شوند، اجرا نشوند؟
3- ...
؟
kavehtanhaeivash
21-10-2007, 20:35
توی محیط VBA یه نرم افزار دارم مینویسم برنامه رو. یه جا وقتی ماوس تکون بخوره، یه اتفاقی تو نرم افزار میفته، اما میخوام تو برنامه وقتی به کد مورد نظر رسید، معادل اون تکون خوردن باشه، که نخوام بطور دستی ماوس رو تکون بدم! البته نمیدونم که تو اون نرم افزار وقتی ماوس تکون میخوره چه کدی از خود نرم افزار اجرا میشه( تو کدای خود نرم افزار چیزی در این زمینه نیست)!
در واقع جناب suB ، مورد 1 و 2 که مطرح کردین، حداقل یکیش مورد نظرمه. به خصوص مورد1. شدنیه ؟
اگرم لطف کنین تابع GetCursorPos رو آرگوماناشو برام بگین.
ممنون.
MrJamshidy
22-10-2007, 03:20
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
دیگه نمیدونم چطوری از این ساده ترش کنم
توی محیط VBA یه نرم افزار دارم مینویسم برنامه رو. یه جا وقتی ماوس تکون بخوره، یه اتفاقی تو نرم افزار میفته، اما میخوام تو برنامه وقتی به کد مورد نظر رسید، معادل اون تکون خوردن باشه، که نخوام بطور دستی ماوس رو تکون بدم! البته نمیدونم که تو اون نرم افزار وقتی ماوس تکون میخوره چه کدی از خود نرم افزار اجرا میشه( تو کدای خود نرم افزار چیزی در این زمینه نیست)!
در واقع جناب suB ، مورد 1 و 2 که مطرح کردین، حداقل یکیش مورد نظرمه. به خصوص مورد1. شدنیه ؟
اگرم لطف کنین تابع GetCursorPos رو آرگوماناشو برام بگین.
ممنون.
3 راه به نظر من میرسه.
1- استفاده از تابع API به نام SetCursorPos (برای حرکتهای مطلق و زیاد بسیار پیشنهادمیشود)
2- استفاده از تابع API به نام mouse_event (برای حرکتهای جزئی بسیار پیشنهاد میشود)
3- ارسال پیغام حرکت ماوس به پنجره (پیشنهاد نمیشود)
kavehtanhaeivash
02-11-2007, 00:32
با تشکر فراوون از دوستان Jamshidy , Sub , Payman . مشکل به همین روش که گفتین حل شد. و اما آیا میشه کاری کرد که وقتی اجرای برنامه تموم میشه، بعد از مثلا t ثانیه بعد، این تابع اجرا بشه ؟! یا بطور کلی یه سابروتین t ثانیه بعد از پایان یافتن یه سابروتین دیگه، خودش اجرا شه ؟ با تشکر.
با تشکر فراوون از دوستان Jamshidy , Sub , Payman . مشکل به همین روش که گفتین حل شد. و اما آیا میشه کاری کرد که وقتی اجرای برنامه تموم میشه، بعد از مثلا t ثانیه بعد، این تابع اجرا بشه ؟! یا بطور کلی یه سابروتین t ثانیه بعد از پایان یافتن یه سابروتین دیگه، خودش اجرا شه ؟ با تشکر.
فکر کنم بتونی وقتی برنامه داره پایان میپذیره، اون روالی که میخواهی t ثانیه بعد از پایان برنامه اجرا بشه رو به عنوان یک ریسمان به ویندوز معرفی کنی و توی اون اول t ثانیه مکث کنی و بعد کارهایی که میخوای انجام بدی.
:11:
kavehtanhaeivash
02-11-2007, 12:17
یعنی دقیقا چیکار کنم ؟ :13:
MrJamshidy
12-11-2007, 12:50
درست يادم نيست ولي فكر كنم بتوني با SetTimer و KillTimer يك كارايي بكني
با سلام
sub عزیز فکر میکنم ریسمانهای مربوط به یه برنامه زمانی که برنامه به پایان میرسه آزاد میشه و اجراشون متوقف میشه. به نظر من بهتره که طوی رویداد form unload یا form deactive این کد رو بنویسه. من تست نکردم ولی فکر کنم اون موقع دیکه فرم نمایش داده نشه اما اگه هستش باید هایدش کرد. بعدشم تایم فعلی سیستم رو میخونی و توی یه حلقه منتظر گذشت t ثانیه میشی.
اینجوری انگار که بعد از اتمام برنامه این اتفاق افتاده ولی در واقع اینجوری نیست.
با سلام
sub عزیز فکر میکنم ریسمانهای مربوط به یه برنامه زمانی که برنامه به پایان میرسه آزاد میشه و اجراشون متوقف میشه. به نظر من بهتره که طوی رویداد form unload یا form deactive این کد رو بنویسه. من تست نکردم ولی فکر کنم اون موقع دیکه فرم نمایش داده نشه اما اگه هستش باید هایدش کرد. بعدشم تایم فعلی سیستم رو میخونی و توی یه حلقه منتظر گذشت t ثانیه میشی.
اینجوری انگار که بعد از اتمام برنامه این اتفاق افتاده ولی در واقع اینجوری نیست.
اگر از End برنامه پایان دادن به برنامه استفاده نکنه، پیشنهاد خوبی است.:46:
اگر از End برنامه پایان دادن به برنامه استفاده نکنه، پیشنهاد خوبی است
حتی اگه از End هم استفاده کنه به هر حال این دو رویداد اتفاق میفته چون فرم باید unload بشه و یه جورایی حکم متد مخرب رو داره.
حتی اگه از End هم استفاده کنه به هر حال این دو رویداد اتفاق میفته چون فرم باید unload بشه و یه جورایی حکم متد مخرب رو داره.
دوست عزیز بهتره اول امتحان کنید و بعد در موردش نظر بدید.
این کد رو اجرا کنید:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
وقتی روی فرم کلیک میکنید، برنامه تموم میشه ولی فایل TestFile توی درایو C شما ساخته نخواهد شد!:11:
دوست عزیز بهتره اول امتحان کنید و بعد در موردش نظر بدید.
این کد رو . . . . . . . . .
سلام
بله ببخشید حق با شماست.من خیلی وقته وبی کار نکردم بعضی چیزا یادم رفته.
ممنون از تذکرتون
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.