نمایش نتایج 1 تا 25 از 25

نام تاپیک: نمایش ایکون برنامه در systray بصورت متحرک

  1. #1
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking نمایش ایکون برنامه در systray بصورت متحرک

    سلام

    همانطور که می دونید با ابزار notifyicon می شه ایکون برنامه رو در systray نشون داد

    حالا من می خواهم یک کاری کنم که ایکون برنامم حالت انیمیشنی داشته باشه مثلا

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

    اینترنت (دو تا مانیتور روی هم رو می گم) خلاصه می خواهم متحرک باشه

    اگه بخواهیم این کار را با برنامه های ساخت ایکون متحرک انجام بدیم که اولا من سراغ ندارم

    به جز یکی که قبلا با هاش کارمی کردم پسوند ایکون رو به cur تبدیل می کنه که دات نت

    پشتیبانی نمی کنی برای این ابزار
    و یا برای چشمک زن کردنش از خاصیت visible این ابزار استفاده کنیم در تایمر

    که تابلو می شه (خیلی معلومه)

    از ادرس دهی هم می شه استفاده کرد مثلا یک ایکون جدید رو بهش برای نمایش معرفی کنی
    و ایکون قبلی رو دوباره بهش بدی در تایمر که این کار هم جالب نیست

    اگه می شد یه جورایی از ایکون هایی که توی قسمت resource از solution explorer
    استفاده کرد بدون اینکه نیاز باشه ادرس کامل محل قرار گیری ایکون رو بدی (یعنی فقط نامش) رو ذکر کنی راه خوبی می شد


    لطفا دوستان در این زمینه به من کمک کنند ممنون

  2. #2
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    فوری اگه یکم زودتر جواب بدید ممنون می شم

  3. #3

  4. #4
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732
    سلام

    اقا حامد ممنون از لینکتون

    اما دو نکته رو من عنوان کنم بد نیست

    اولا اینکه من به وبلاگ شما رفتم برای دانلود کانتکس منوی فارسی با دانلود اکسلریتور

    و پسورد می خواست چطوری قضیش

    دوما لینکی که داده بودید دیدم و این سئوال رو مجدد تکرار می کنم که چطوری می شه

    ایکون مورد نظر رو از پوشه resources در پنجره solution Explorer دریافت کرد یعنی

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

  5. #5
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام حامد جون

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

    پیدا کردم (منظورم اینه که یه جوری از ایکون برای notify icon استفاده کنیم که مجبور نشیم

    ایکون رو روی کامپیوتر مقصد بریزیم که این طوری لو می ره خیلی راه حل پیش پا افتاده و

    ساده ای که مطمئن همتون می دونید)

    کسی اگه خواست بگه تا بهش بگم

  6. #6
    کاربر دائمی آواتار joker
    تاریخ عضویت
    بهمن 1381
    محل زندگی
    اصفهان
    سن
    42
    پست
    1,326
    از load resouce داخلی خود فایل اجرایی میتونید استفاده کنید ، اینطوری نیازی هم به کپی کرسر روی هارد دیسک نیست
    مثال دلفی براش سراغ دارم ولی وی بی نه :)
    ولی این که میگین دات نت cur نمیگیره را ولاا نمیدونم ، کار نکردم.

  7. #7
    کاربر دائمی آواتار meh_secure
    تاریخ عضویت
    دی 1383
    محل زندگی
    California
    پست
    964
    نقل قول نوشته شده توسط programmermp مشاهده تاپیک
    از ادرس دهی هم می شه استفاده کرد مثلا یک ایکون جدید رو بهش برای نمایش معرفی کنی
    و ایکون قبلی رو دوباره بهش بدی در تایمر که این کار هم جالب نیست
    خود ویندوز هم از همین روش استفاده می کنه. پس روش جالبی است!
    وقتی به شبکه متصل هستید نمونه notify icon آنرا می توانید مشاهده کنید.
    موفق باشید.
    آخرین ویرایش به وسیله meh_secure : چهارشنبه 27 دی 1385 در 00:10 صبح دلیل: نقص متن

  8. #8
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام
    ولی روش من به نظرم جالب تره

    من اینکار رو می کنم که چهار تا ایکون (حالت های مختلف از یک ایکون) رو به چهار تا

    notify icon نسبت می دم بعد notify icon پنجمی رو خالی می زارم بعد توی یک تایمر

    بهش می گم که با هر بار زیاد شدن متغیر مثلا n که تا 5 مقدار می تونه داشته باشه

    توسط دستور select case مقدار n رو بگیره و notify icon مربوطه رو برابر با notify icon

    پنجمی قرار بده

    این روش یک مزیت خوبی که داره اینه که دیگه نیاز به وجود ایکون ها بعد از build کردن برنامه

    نداریم من امتحان کردم جواب هم داده

    پس این روش بهتر از روش ویندوز هست

    با تشکر

  9. #9
    سلام جناب صالحی
    چه کاریه؟؟
    من در لینکی که معرفی کردم خیلی وقت پیش جواب دادم به همین دلیل یادم نیست از چه روشی استفاده کردم!!
    اما شما همیشه می تونید از ImageList استفاده کنید.
    در ضمن اگر احساس می کنید جوابی که پیدا کردید حتی به یک نفر کمک می کنه بهتره که جوابتونو بنویسید (به جای اطلاعیه)
    ممنون

  10. #10
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    سلام

    دوست من من که نتونستم از imagelist استفاده کنم یعنی نتونستم به notify icon بگم

    که ایکون رو از image list بگیره چون تمام ایتم هایی که من در اونت های imagelist دیدم

    از نوع image بودن نه از نوع icon

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

    پست قبلی من رو که خوندید انشاء الله توی ان نوشتم چکار کردم

    با تشکر

  11. #11
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    ایکونهای دینامیک

    حالا که بحث ایکونهای SystemTry و NotifyIcon شد بهتره یه مطلبی رو بگم البته نمی دونم چیزی رو که می خوام بگم اسمشو میشه گذاشت آیکون یانه .

    حتما تابه حال برنامه های مدیریت حافظه Ram رو دیدید. بعضی از اونا ایکونشون به صورت یه عدده است . مثلا برنامه Casheman ایکونش یه عدده که میزان فضای خالی Ram رو نشون میده .
    حالا این ایکون ممکنه در هر لحظه یک عدد رو نشون بده و بسته به میزان فضای خالی تغییر کنه .

    به نظر شما این کار چطور انجام میشه .
    ایا می شه یه عدد یا تکست به بیتمپ و بعدشم به یه ایکون تبدیل بشه یا چیز دیگه ای در کاره

  12. #12
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    حالا که بحث ایکونهای SystemTry و NotifyIcon شد بهتره یه مطلبی رو بگم البته نمی دونم چیزی رو که می خوام بگم اسمشو میشه گذاشت آیکون یانه .

    حتما تابه حال برنامه های مدیریت حافظه Ram رو دیدید. بعضی از اونا ایکونشون به صورت یه عدده است . مثلا برنامه Casheman ایکونش یه عدده که میزان فضای خالی Ram رو نشون میده .
    حالا این ایکون ممکنه در هر لحظه یک عدد رو نشون بده و بسته به میزان فضای خالی تغییر کنه .

    به نظر شما این کار چطور انجام میشه .
    ایا می شه یه عدد یا تکست به بیتمپ و بعدشم به یه ایکون تبدیل بشه یا چیز دیگه ای در کاره
    =================================

    سلام

    اقا مصطفی در این مورد (مورد بالا) به نتیجه ای نرسیدید

    دوستان دیگه هم لطف کنند در این مورد نظر بدند

  13. #13
    نقل قول نوشته شده توسط Sub Zero مشاهده تاپیک
    حالا که بحث ایکونهای SystemTry و NotifyIcon شد بهتره یه مطلبی رو بگم البته نمی دونم چیزی رو که می خوام بگم اسمشو میشه گذاشت آیکون یانه .

    حتما تابه حال برنامه های مدیریت حافظه Ram رو دیدید. بعضی از اونا ایکونشون به صورت یه عدده است . مثلا برنامه Casheman ایکونش یه عدده که میزان فضای خالی Ram رو نشون میده .
    حالا این ایکون ممکنه در هر لحظه یک عدد رو نشون بده و بسته به میزان فضای خالی تغییر کنه .

    به نظر شما این کار چطور انجام میشه .
    ایا می شه یه عدد یا تکست به بیتمپ و بعدشم به یه ایکون تبدیل بشه یا چیز دیگه ای در کاره
    اونا عدد ور به تصویر تیدیل نمیکنند. ضمنا میزان حافظه رو نشون نمیده. بلکه به درصد نشون میده. (فرض کنید حافظه یک سیستم 4000 مگ باشه اونوقت نمایش اون مشکل داره)
    بلکه آیکون ها طراحی میکنند.
    من یک نمونه از این آیکون ها رو در اختیار شما میذارم

    حالا چه کار کنیم از روی ریسورس پروژه بتونیم این آکونها رو با عدد مورد نظر نمایش بدیم. من نمونه تایمر رو مثال میزنم یعنی از 0 شروع میکنه تا 100.

    اول به قسمت Proreties پروژه برید و قسمت Resources و از نوار ابزار بالایی از دکمه اول Icons رو انتخاب کنید و سپس از دکمه دوم منوی Add Existing File را انتخاب و مسیر این آیکونها رو که از اینجا دانلود کردید پیدا کرده و تمامی آنها را انتخاب و وارد نمایید. چون اسم فایلها با عدد شروع میشه بنابراین ویژال استدیو یک کاراکتر "_" به ایتدای هر ریسورس اضافه میکنه.(نام ریسورس نمیتونه با عدد اغاز بشه)

    حالا یک فرم جدید ایجاد کرده و یک کنترل NotifyIcon به آن اضافه کنید.
    یک تایمر هم به فرم اضافه کنید و Enabled آنرا True و Interval رو 100 قرار بدید.
    روی تایمر دوبار کلیک کرده و در روال Timer1_Tick این کدها را قرار دهید:

     
    Static s As Integer
    If s < 100 Then
    NotifyIcon1.Icon = My.Resources.ResourceManager.GetObject("_" & CStr(Microsoft.VisualBasic.Strings.Format(s, "00")))
    Else
    NotifyIcon1.Icon = My.Resources.ResourceManager.GetObject("_100")
    End If
    s = s + 1
    If s > 100 Then s = 0


    اکنون برنامه را اجرا نمایید. مشاهده میکنید که در SysTray اعداد از 0 تا 100 شمرده میشوند و پس از رسیدن به 100 مجدد از 0 شروع به شمردن میکند. بدون اینکه مسیر آیکون از روی هارد باشه.

    موفق باشید
    .
    .
    .
    فایل های ضمیمه فایل های ضمیمه

  14. #14
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    ممنون از جوابتون اما نیلوفر خانم :
    نقل قول نوشته شده توسط Neeloofar
    میزان حافظه رو نشون نمیده. بلکه به درصد نشون میده. (فرض کنید حافظه یک سیستم 4000 مگ باشه اونوقت نمایش اون مشکل داره)
    برعکس میزان حافظه رو نشون می ده روی یه سیستم با 1Gb Ram هم امتحانش کردم .
    چیزی هم که شما فرستادین یه نمونه دیگست . مطمئنم برنامه Cacheman از این روش استفاده نمیکنه چون اصلا ایکونش Background رنگی نداره مثل چیزی که شما گذاشتین . می تونید از روی عکسی که گذاشتم ببینید .
    منتظر جوابم .
    عکس های ضمیمه عکس های ضمیمه

  15. #15
    کاربر دائمی آواتار programmermp
    تاریخ عضویت
    اردیبهشت 1384
    محل زندگی
    Green Territory of North
    پست
    732

    Talking

    ساعت ویندوز چطوریه

    اونهم عددیه که به تصویر تبدیل شده و هر لحظه ریفرش می شه

    درسته

  16. #16
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443
    نقل قول نوشته شده توسط Neeloofar مشاهده تاپیک
    من میتونم در ویژال بیسک 6 این کار رو انجام بدم. ولی با دات زیاد در این موارد کار نکردم. اگر خیلی لازمه میتونم با VB6 یک نمونه آماده کنم. (چون وقت گیره و نمونه آماده ندارم).
    مرسی نیلوفر خانم اگه ممکنه روش کار یا الگوریتم کار رو بگید تا با Net. بیفتیم به جونش اگه نتونستیم زحمتشو می ندازیم گردن خودت .

  17. #17
    نقل قول نوشته شده توسط programmermp مشاهده تاپیک
    ساعت ویندوز چطوریه

    اونهم عددیه که به تصویر تبدیل شده و هر لحظه ریفرش می شه

    درسته
    اصلا کل ویندوز یعنی رسم. نقاشی. در واقع مثلا ساعت 12:00 رو در اونجا ترسیم میکنه. و هینطور تمام نقاط صفحه. (تابع DrawText از فایل "user32.dll" ویندوز)
    در واقع مکان رسم ساعت یک Window هست در SysTray ویندوز.

    این دو نمونه پیدا کردم. (ولی TextOnIcon در ویندوز 98 کار میکنه)
    بد نیست به نمونه ProgressBar هم یک نگاهی بندازید. در همین رابطه ست. شاید بدردتون بخوره.
    اگر بازم پیدا کردم میذارم.
    فایل های ضمیمه فایل های ضمیمه
    آخرین ویرایش به وسیله Neeloofar : جمعه 29 دی 1385 در 10:59 صبح دلیل: ادغام دو نوشته بدلیل خلوت شدن موضوع

  18. #18
    روش کار اینطوریه که ابتدا توسط دستور ذیل عدد مورد نظر رو در PictureBox ترسیم میکنیم.
    Picture1.Print "123"

    سپس تصویر ایجاد شده را با فرمت ico دریک جا ذخیره میکنیم.
    SavePicture Picture1.Picture, "C:\123.ico"

    حال آیکون ذخیره شده را دوباره در یک PictureBox دیگه تنظیم میکنیم.
    Pictrue2.Picture = LoadPicture ("C:\123.ico")

    اکنون یک متن تبدیل به تصویر شده با فرمت آیکون در Picture2 داریم برای نمایش در SysTray.
    این راهش در VB6.0 هست.
    من اصلا با ابزارهای گرافیکی .Net کار نکردم و اصلا نمیدونم چی هستند.

  19. #19
    سلام

    نیلوفر خانم متد های پیش ساخته گرافیکی Vb دیگه در دات نت پشتیبانی نمیشن! یعنی این کد معادل دقیق در دات نت نداره!

    من الان شهر خودم نیستم (دیگه همه به این موضوع عادت کردن بس که نبودم!) و نمی تونم سورس براتون بنویسم
    ولی اگه حافظهیاری کنه یک اشاره کوچک میکنم:

    هر Bitmap یک متد با نام GetHIcon دارد که اشاره گر آیکون از آن را بر می گرداند
    و هر Icon یک متد با نام FromHandle دارد که آیکون را بر مبنای یک اشاره گر می سازد

    اگه اشتباه نکنم یه چیزی مثل این:

    'bmp is a system.drawing.bitmap
    dim ico as new icon = icon.fromHandle(bmp.GetHIcon)


    دیگه فهمیدین....
    یعنی bitmap , Image رو می تونید به صورت ایکون در بیارید
    حتی می تونید یک Bitmap ایجاد کنید و توسط متد DrawString شما مورد نظرتونو روی اون بنویسید و یک آیکون از روی اون بسازید و در tray قرار بدید

    OK?

  20. #20
    کاربر دائمی آواتار Sub Zero
    تاریخ عضویت
    اردیبهشت 1385
    محل زندگی
    اهواز
    پست
    443

    اینم آیکون داینامیک .

    بالاخره نوشتمش :
    Dim img As New Bitmap(15, 15, Imaging.PixelFormat.Format32bppArgb)
    Dim g As Graphics = Graphics.FromImage(img)
    g.DrawString("10", New Font("Arial", 8), Brushes.Black, 0, 0)
    NotifyIcon.Icon = Drawing.Icon.FromHandle(img.GetHicon)
    Me.Icon = Drawing.Icon.FromHandle(img.GetHicon)

    فقط یه مشکل کوچیک داره اونم اینه که وقتی عدد 3 رقمی می شه یکم بهم می ریزه اگه کسی میتونه درستش کنه .
    در ضمن بسته به اندازه فونتی که انتخاب میکنین اندازه Bitmap هم باید تغییر کنه .

  21. #21

  22. #22

    ببخشید من یه سوال پیش پا افتاده دارم

    ببخشید من دیدم همه اساتید جمع هستند گفتم این سوال را هم بپرسم
    چه طور میشه یه بر نامه ای را که فقط notify آن فعال هست با یک کلید به اون دستور داد در صورتی که روی آن focus نیست مثل babylon اگه کسی میدونه به من هم بگه لطفا

  23. #23
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111
    دوست عزیز داخل سایت کلمه hot keys را جستجو کن

  24. #24
    من در مورد hot key چیزی پیدا نکردم

  25. #25
    کاربر دائمی آواتار ghafoori
    تاریخ عضویت
    مرداد 1384
    محل زندگی
    اصفهان-نجف اباد
    پست
    1,111

تاپیک های مشابه

  1. systray
    نوشته شده توسط ashkan_gorg در بخش Foxpro
    پاسخ: 9
    آخرین پست: سه شنبه 10 مهر 1386, 18:57 عصر
  2. راست چین کردن منو در Systray
    نوشته شده توسط (سیدشریفی) در بخش برنامه نویسی در 6 VB
    پاسخ: 2
    آخرین پست: یک شنبه 04 اردیبهشت 1384, 09:17 صبح
  3. کامپوننت بسیار عالی برای رفتن آیکون برنامه به Systray
    نوشته شده توسط مهندس در بخش برنامه نویسی در Delphi
    پاسخ: 7
    آخرین پست: پنج شنبه 09 مهر 1383, 19:25 عصر

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •