PDA

View Full Version : کنترل موس و خصوصیات آن



mohpooria
سه شنبه 27 دی 1390, 18:52 عصر
سلام
من می خواستم برنامه ام وقتی در سیستم ترای (این هم نمی دونم البته چه جوری درست کنم ، اگه کسی بلده بگه که برنامه فقط در system tray نشان داده بشه و در تسکبار نباشه ) اجرا است بتونم مرسر موس و همچنین رویداد های موس را شبیه سازی کنم ، مثلا به برنامه یه داده هایی منتقل میشه و من می خواهم متناسب با اون مکان موس رو ببرم فلان جا و یک کلیلک انجام بدم (مثلا روی آیکن و یک برنامه رو دستکتاپ رو باز کنم! البته برا کار دیگه میخواهم)
ممنون می شوم اگر کمک کنید

mohpooria
پنج شنبه 29 دی 1390, 11:22 صبح
یه نفر کمک کنه برا این به من!
الان خیلی بهش احتیاج دارم

pumper
پنج شنبه 29 دی 1390, 12:21 عصر
سلام این یه نمونه کد واسه ساخت trayicon با یه منو که هیچ کاری نمی کنه امید وارم به کارت بیاد



// build menu
QMenu *trayMenu = new QMenu(this);
trayMenu->addAction(new QAction("option 1", this)); // dummy action
trayMenu->addAction(new QAction("option 2", this)); // dummy action

// set up and show the system tray icon
QSystemTrayIcon *trayIcon = new QSystemTrayIcon(this);
trayIcon->setIcon(QIcon(":/images/trayicon.png"));
trayIcon->setContextMenu(trayMenu);
trayIcon->show();



برا این که آیکون برنامت توی تسک بار نشون داده نشه باید :WindowFlags سازنده کلاس رو به Qt::Dialog تغییر بدی و اونو child کنی اینم یه مثال :

class MyWindowWidget : public QWidget
{
public:
MyWindowWidget(QWidget *parent)
: QWidget(parent, Qt::Dialog)
{

}
};

int main(int argc, char *argv[])
{
QApplication app(argc, argv);

QMainWindow window;

MyWindowWidget widget(&window);
widget.show();

return app.exec();
}

mohpooria
پنج شنبه 29 دی 1390, 20:05 عصر
ممنون
بیشتر مشکلم سر قسمت موس است
احتمالا باید با API ویندوز کار کنم ولی دقیق نمی دونم

pumper
جمعه 30 دی 1390, 16:10 عصر
برا اون قسمت باید windows hooks api رو گوگل کنی
اینم آدرس یه مقاله http://www.codeproject.com/KB/system/hooksys.aspx
فکر نکنم با کیوت بشه این مربوط به Api hooking خود ویندوز میشه
اینم ماله خود مایکروسافته :
http://msdn.microsoft.com/en-us/library/ms644960%28VS.85%29.aspx

mohpooria
شنبه 01 بهمن 1390, 15:03 عصر
میشه از api های ویندوز داخل Qt استفاده کرد ؟API ساده تر برای این کار نیست ؟
فکر کنم یه کد C# دیده بودم که به راحتی این کار را انجام میداد

mohpooria
شنبه 01 بهمن 1390, 15:49 عصر
من با QCursor::setPos(1300,700);

تونستم کرسر موس رو کنترل کنم الان می خواهم کلیک کردم را شبیه سازی کنم

mohpooria
شنبه 01 بهمن 1390, 16:24 عصر
بعدی رو هم فهمیدم
VOID WINAPI mouse_event(
__in DWORD dwFlags,
__in DWORD dx,
__in DWORD dy,
__in DWORD dwData,
__in ULONG_PTR dwExtraInfo
);

alamate_aoal
چهارشنبه 26 بهمن 1390, 22:40 عصر
QCursor::pos()

mahak006
یک شنبه 12 آذر 1391, 22:14 عصر
من تقریبا یه همچین مشکلی دارم . میخوام یه ویجت بسازم که label رو ارث گرفته . حالا تو این ویجت میخوام اعمال موس مثل کلیک و دبل کلیک و چرخش حلقه ی موس به سمت بالا یا بر عکس رو داشته باشم . اگه ممکنه کمکم کنید . این اولین باری هست که میخوام یه ویجت بسازم . مثالای زیادی رو هم تو سطح اینترنت دیدم . ولی چون فقط کد بودن و زیاد تعریفاش واضح نبود چیزی نفهمیدم .

saeedIRHA
دوشنبه 13 آذر 1391, 01:41 صبح
http://www.youtube.com/watch?v=d0CDMtfefB4

mahak006
دوشنبه 13 آذر 1391, 14:25 عصر
http://www.youtube.com/watch?v=d0CDMtfefB4
من مثل بقیه زیاد دسترسی ندارم و نمیتونم از لینک های یوتیوب بازدید کنم . اگه ممکنه توضیح بدید یا لینک aparat بذارین برام . ممنون .

saeedIRHA
دوشنبه 13 آذر 1391, 15:54 عصر
uploaded:
http://www.aparat.com/v/KjzfB

enjoy :)