ايران ويج

نسخه‌ی کامل: برقراری ارتباط بین سرویس و کاربر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام.
حتما میدونید وقتی برنامه به عنوان سرویس ران بشه دیگه نمیتونه با کاربر ارتباطی داشته باشه. نه فرم قابل نمایش دادنه نه میشه مسیج نشون داد نه ... . هر برنامه ای هم که از تو برنامه خودت ران کنی هیدن ران میشه و فرمش نشون داده نمیشه.

من برنامم سرویسه ولی میخوام به نحوی با کاربر ارتباط برقرار کنم. هم به وسیله مسیج. هم ران کردن برنامه دیگه که نشون داده بشه و ... .
حالا چطور میتونم این مشکلات رو رفع کنم؟
Payman62 نوشته است:سلام.
حتما میدونید وقتی برنامه به عنوان سرویس ران بشه دیگه نمیتونه با کاربر ارتباطی داشته باشه. نه فرم قابل نمایش دادنه نه میشه مسیج نشون داد نه ... . هر برنامه ای هم که از تو برنامه خودت ران کنی هیدن ران میشه و فرمش نشون داده نمیشه.

من برنامم سرویسه ولی میخوام به نحوی با کاربر ارتباط برقرار کنم. هم به وسیله مسیج. هم ران کردن برنامه دیگه که نشون داده بشه و ... .
حالا چطور میتونم این مشکلات رو رفع کنم؟

سلام عزیز اگه میشه کامل به من توضیح بده چطور برنامت رو به صورت سرویس در اووردی ؟؟؟ اگه یدونه مثال هم بذاری که عالی میشه ...Heart
سلام

شما باید یک رابط برای برنامه ات بنویسی و از طریق اون رابط همه کارهایی که در ویندوز می تونی رو انجام بدی. اگر با SQL Server کار کرده باشی حتما اون برنامه Agent رو دیدی که در System tray قرار می گیره؟ باید یکی مثل اون بنویسی.
;-)
سلام.
خودم این فکر رو کرده بودم. ولی جواب گو نیست. چون وقتی با سرویس رابط رو اجرا کنم خاصیت سرویس رو میگیره و نمیتونه با کاربر ارتباط برقرار کنه. درست مثل برنامه خودم.
تو سرویس نمیتونی به طور مستقیم ارتباط visual داشته باشی(میتونی دردسرش زیاده) چون سرویس ترد مخصوص به خود داره ونمیتونه عناصر ویژوال وحتی کارهایی که تایم بالا دارن رو انجام بده برای انجام این کارها باید یک ترد بنویسی و در رویداد onstart سرویس خودت اونو فراخوانی کنی(تو دلفی که اینجوریه تو ویبی رو نمیدونم شاید یک مدل باشن)
سلام

رابط برنامه شما بدون سرویس هم باید اجرا بشه
البته یکی از کارهایی که می کنه اینه که سرویس شما رو مدیریت می کنه. (دقیقا مثل خود مدیریت سرویس ویندوز) -(اجرا-توقف-ادامه و...)
برنامه شما می تونه به عنوان Satrtup یا حتی توسط کاربر اجرا بشه. اگر برنامه شما اجرا شده باشه، پیغامها رو به کاربر نشون میده وگر نه پیغامها لیست میشن تا در زمان اجرای برنامه نمایش داده بشن، یا در Event viewer ویندوز قرار می گیرند.
;-)
سلام.
lord_viper جان سرویس با هیچ روشی فرمی یا پیغامی رو نشون نمیده که بخوام در قسمت استارت فراخوانی کنم.

mRizvandi جان با روشی که شما فرمودید برنامه رابط باید همیشه ران باشه و من نمیخوام با این روش عمل کنم. شما فرض رو بر این بذارید که موقع ارتباط با کاربر فقط سرویس ران هست نه برنامه دیگه ای.
معمولا سرویس 2 تا رویداد مخصوص به خود داره onexecute وonstart رویداد اولی از ترد خود سرویس استفاده میکنه و این threadtimer هستش نمیتونین کدهای بلند یا فورم رو توش نمایش بدین اما برای رویداد onstart که قبل ارonexcute اجرا میشه شما باید یک ترد بنویسی وکدهاتو داخلش قرار بدی (اون فورمی که گفتین باید با api داخل ترد ایجاد کنین)
سلام.
من منظورت رو از رویداد هایی که گفتی نمیفهمم. چون برنامه سرویس فرقی با برنامه های دیگه نداره. تا حالا ندیده بودم کسی از این رویدادها که میگی صحبت کنه. میشه کد نمونه بذاری. بعد هم من ممکنه بخوام وسط کار پیغام بدم و رویدادی که گفتی به پایان رسیده باشه.
Mamad2003 نوشته است:http://msdn2.microsoft.com/en-us/library/ms683502.aspx

اطلاعات کاملی رو اینجا میتونی پیدا کنی .
Wink
سلام.
خسته نباشی darg جان. الآن میگی که کارم راه افتاد؟