View Full Version : حرفه ای: استفاده از توابع API در ویندوز سرویس
ferankyy
دوشنبه 27 شهریور 1391, 15:37 عصر
من یه سرویس نوشتم که می بایست با استفاده از تابع FindWindow هندل یه پنجره رو برگردونه
مشکل اینجاست که همیشه هندل رو صفر بر میگردونه ، ولی داخل WinApp کار میکنه .
محسن واژدی
دوشنبه 27 شهریور 1391, 20:32 عصر
سلام علیکم
میبخشید زیاد منظورتان را از سرویس متوجه نشدم آیا منظورتون سرویس هایی هست که تحت یوزر سیستم اجرا میشوند؟
ferankyy
سه شنبه 28 شهریور 1391, 00:08 صبح
سلام علیکم
میبخشید زیاد منظورتان را از سرویس متوجه نشدم آیا منظورتون سرویس هایی هست که تحت یوزر سیستم اجرا میشوند؟
سلام
منظورم سرویس های هست که خودمون میسازیم و نصب میکنیم .
البته من یه چیزایی فهمیدم که چرا نمیشه از تابع Findwindow در سرویس ها استفاده کرد ولی راه حلشو نمیدونم :
چون سرویس های ویندوزی در ویندوز ویستا به بالا روی Session شماره صفر اجرا میشوند ولی برنامه های ویندوز اپلیکیشن روی Session شماره یک اجرا میشوند و به همین دلیل وقتی از تابع Findwindow داخل سرویس ها استفاده میکنیم نمیوتنه هندل پنجره ای که در Session دیگر اجرا هست رو برگردونه . همینطور که وقتی برنامه ای مثل Notepad رو از داخل یک سرویس اجرا میکنیم برنامه اجرا شده روی session شماره صفر هست و قابل دیدن در دسکتاپ نیست ولی در لیست پروسس ها هست .
محسن واژدی
سه شنبه 28 شهریور 1391, 09:39 صبح
سلام علیکم
ویندوز مقدار منحصربفرد Session-ID برای تعداد اکانت های باز شده اختصاص می دهد (مثل PID) که ممکن است در این بین SID کاربری فعلی 1،0 و ... باشد
و FindWindow هم تنها فرمهای کاربر فعلی که پروسه تحت آن اجرا شده است را جستجو میکند. در مورد فعلی چون پروسه ما تحت اکانت سیستم اجرا شده تنها میتواند فرم پروسه های سیستمی را پیدا کند،
موفق باشید
ferankyy
سه شنبه 28 شهریور 1391, 10:41 صبح
سلام علیکم
ویندوز مقدار منحصربفرد Session-ID برای تعداد اکانت های باز شده اختصاص می دهد (مثل PID) که ممکن است در این بین SID کاربری فعلی 1،0 و ... باشد
و FindWindow هم تنها فرمهای کاربر فعلی که پروسه تحت آن اجرا شده است را جستجو میکند. در مورد فعلی چون پروسه ما تحت اکانت سیستم اجرا شده تنها میتواند فرم پروسه های سیستمی را پیدا کند،
موفق باشید
یعنی هیچ راهی نیست که بشه از این تابع برای سشن های دیگه استفاده کرد ؟ مثلا سرویسی که ایجاد کردیم روی سشن 1 اجرا بشه ؟
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.