Fa راهکاری برای تشخیص موس بر روی پنچره برنامه

1pouya

Member
سلام

دوستان کسی راهی سراغ نداره که وقتی کاربر موس رو روی پنجره پروژه حرکت میده کار خاصی انجام بده؟؟؟
دقت کنید: میخوام فقط زمانی کاری انجام بده که موس روی پنجره پروژه حرکت میکنه

البته به غیر از استفاده از HotSpot و گرفتن موقعیت x و y موس : چون هر کدوم از اینها یه سری ایرادها دارن که به کارم نمیان
 

1pouya

Member
جوابيه

ميشة بكيد اينها جة ايرادى دارن ؟؟


اگه از HotSpot استفاده كنم بايد اون لايه رو بالاي همه ي لايه ها بزارم ولي اينطوري عملا لايه هاي زيرين غير قابل كليك ميشن

اگرم از MousePoint استفاده كنم چه پنجره من بالاي پنجره هاي ديگه باشه چه نباشه اون كاره خودشو انجام ميده
اگه دومي رو متوجه نشديد عكس زير رو نگاه كنيد.
 

پیوست ها

  • mousepoint.jpg
    mousepoint.jpg
    32.2 کیلوبایت · بازدیدها: 8

loo30fer

کاربر متخصص مولتی مدیا بیلدر
اگه از HotSpot استفاده كنم بايد اون لايه رو بالاي همه ي لايه ها بزارم ولي اينطوري عملا لايه هاي زيرين غير قابل كليك ميشن
خوب اگه شی زیرین hotSpot شما قابلیت تعریف کردن اکشن و کلیک موس را دارد دیگه شما چرا از HotSpot میکنید چون این بیشتر مواقعی استفاده میشه که شی شما قابلیت کلیک ندارد یا میخواهید متوجه رفتن موس روی قسمتی از پس زمینه بشین
اگرم از MousePoint استفاده كنم چه پنجره من بالاي پنجره هاي ديگه باشه چه نباشه اون كاره خودشو انجام ميده
چون مطمئنا اسکریپتی که شما تعریف کردین که فقط X , Y موس رو بگیره اگه در فلان موقعیت بود دستورتون رو اجرا کنه پس این مشکل از کد نیست برای حل این مشکلتون هم میتونید از پلاگین miscy استفاده کنید و موقعیت فوکوس برنامتون رو بگیرین که آیا فوکوس هست یا خیر
 

evil_gates

اين نيز بگذرد ...
دوست عزيز
منم روش دوم جناب loo30fer رو توصيه ميكنم :

اول با يك شرط وضعيت فوكوس رو روي پنجره موردنظر بررسي كنيد و در صورت صحت شرط موقعيت x و y ماوس رو بدست بياريد و دستور موردنظر رو اجرا كنيد و اسكريپت رو با ScriptTimer تكرار كنيد

در اينصورت فقط زماني كه پنجره شما فعال هست دستورات اسكريپتتون هم اجرا خواهند شد.
 

1pouya

Member
تشکریه | سوالیه

خوب اگه شی زیرین hotSpot شما قابلیت تعریف کردن اکشن و کلیک موس را دارد دیگه شما چرا از HotSpot میکنید چون این بیشتر مواقعی استفاده میشه که شی شما قابلیت کلیک ندارد یا میخواهید متوجه رفتن موس روی قسمتی از پس زمینه بشین

چون مطمئنا اسکریپتی که شما تعریف کردین که فقط X , Y موس رو بگیره اگه در فلان موقعیت بود دستورتون رو اجرا کنه پس این مشکل از کد نیست برای حل این مشکلتون هم میتونید از پلاگین miscy استفاده کنید و موقعیت فوکوس برنامتون رو بگیرین که آیا فوکوس هست یا خیر

دوست عزيز
منم روش دوم جناب loo30fer رو توصيه ميكنم :

اول با يك شرط وضعيت فوكوس رو روي پنجره موردنظر بررسي كنيد و در صورت صحت شرط موقعيت x و y ماوس رو بدست بياريد و دستور موردنظر رو اجرا كنيد و اسكريپت رو با ScriptTimer تكرار كنيد

در اينصورت فقط زماني كه پنجره شما فعال هست دستورات اسكريپتتون هم اجرا خواهند شد.

ممنون دوستان

میشه بگید چطور فوکوس رو میتونم بررسی کنم

کدهای
GetActiveWindowX
GetForegroundWindowX
به کارم نمیان چون کاربر باید روی پنجره کلیک کنه
توی لیست کدهای MiscY فوکوس پیدا نکردم

من میخوام بدون اینکه پنجره برنامه فعال باشه دستور اجرا بشه
یه چیزی تو مایه های نحوه بستن widget های ویندوز 7
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
کدهای
GetActiveWindowX
GetForegroundWindowX
به کارم نمیان چون کاربر باید روی پنجره کلیک کنه
توی لیست کدهای MiscY فوکوس پیدا نکردم
اگه منظورتون اینه که کاربر حتما باید روی پنجره شما یا دیگر پنجره ها کلیک کنه تا فوکوس بگیره یا از فوکوس در بیاد خوب قاعدتا بایدم اینطور باشه وگرنه چطور پنجره ها فوکوس بگیرن و شما با همین کلیک روی هر پنجره به ویندوز میفهمونید که من الان به این پنجره نیاز دارم و میخوام از این استفاده کنم

کدش رو براتون قرار دادم ضمنا اگه از چندین ScriptTimer استفاده میکنید اونها رو به این شکل نامگذاری کنید Timer1=Script تا در اجرای ScriptTimer ها اختلال بوجود نیاد
کد:
PluginRun("MiscY","GetForegroundWindowX")
PluginGet("MiscY","Get$")
If (Get$ = 'My Project') Then
  LoadText("Text","YesFocus")
  ScriptTimer("TestFocus","100")
Else
  LoadText("Text","NoFocus")
  ScriptTimer("TestFocus","100")
End
 
آخرین ویرایش:

1pouya

Member
تعجبیه

ممنون دوستان

من میخوام بدون اینکه پنجره برنامه فعال باشه دستور اجرا بشه
یه چیزی تو مایه های نحوه بستن widget های ویندوز 7

دوست عزیز نگرفتی مطلبو
دارم یه چیزی تو مایه ی widget های ویندوز 7میسازم
اوناره دیدین که ؟!!
 

loo30fer

کاربر متخصص مولتی مدیا بیلدر
بله اگه باز اشتباه نکنم مانند ساعت و یادداشت و برنامه های کاربردی
خوب اگه برنامتون هم فوکوس نباشه دستور شما باز اجرا میشه فرقی نمیکنه
اکه میخواین بسته شدن برنامه ها رو مثل 7 شبیه سازی کنید به نظر من یک فیلم از صفحتون بگیرین و برنامه رو ببندید بعد فیلم رو تو دور کند قرار بدین و از قسمت هاش استفاده کنید مثلا وقتی برنامه بسته میشه از اندازه مثلا 300 * 400 کم کم به چه اندازه ای میرسه و برنامه چه جور شکل و ظاهری میگیره مثلا Blur شدن اونموقع با یکم وقت گذاشتن و استفاده از پلاگینهایی مثل Sysmetric و SmallPlugin صفحتون به اون شکل میخواین در بیارین اگه اسم این پلاگینها رو سرچ کنید نمونه های مختلفی رو پیدا میکنید و بهتر متوجه منظور من میشین , ضمنا قبلا جناب behesht یک فایل ساخته بودن که وقتی اجراش میکردی پنجره برنامه و تمامی پنجره ها و اسلایدهای باز و بستن پنجره ها هم به شکل ویندوز 7 میشد فقط اسمش رو یادم نیست
 

جدیدترین ارسال ها

بالا