PDA

View Full Version : سوال: ساعت ويندوز چطور ساخته شده؟



Parham.D
دوشنبه 14 مرداد 1387, 08:16 صبح
سلام دوستان.

ساعت ويندوز در System Tray چطور طراحي شده؟
آيا Icon هاي پشت سر هم هستند كه هر يك دقيقه عوض مي‏شوند؟
چطور مي‏شه با NotifiyIcon يك ساعت ديجيتال ساخت كه جايگزين اون بشه؟

با سپاس از لطف شما....

جستجو كردم ولي چيز پيدا نكردم.

reza6384
دوشنبه 14 مرداد 1387, 13:54 عصر
ساعت ویندوز هم یه کامپوننته. اما این که هر ثانیه یا دقیقه آیکون اون عوض شه منطقی نیست. چون باید 24*60 تا آیکون براش می ساختن. مکانیزم کارش هم ساده است، یک تایمر که هر ثانیه یکبار Text اون رو Update می کنه.

Parham.D
دوشنبه 14 مرداد 1387, 19:21 عصر
با سپاس از پاسخگويي شما...


حال اين كامپوننت را از كجا مي‏توان به دست آورد؟
آيا source آن وجود دارد؟
مي‏خواهم يك ساعت مثل ويندوز بسازم كه منو هم داشته باشه. كه داخل آن منو به بخشهاي مثل تاريخ و يادآور دسترسي داشته باشم، مثل برنامه Say The Time. خواهش ميكنم كمكم كنيد!!! :ناراحت:

salehbagheri
دوشنبه 14 مرداد 1387, 22:26 عصر
در واقع ساعت ويندوز، برنامه مهمي نيست! چون كه فقط كدي نوشتند كه ساعت را از داخل CIMOS مي خونه!

چون كد ساعت و تاريخ واقعي در داخل سيموس مادربورد نوشته شده!

شما هم اگر ميتونيد اين كار را بكنيد!

با تشكر!

Parham.D
سه شنبه 15 مرداد 1387, 07:16 صبح
اساتيد بزرگوار كد نويسي براي CIMOS را نمي‏دانم!!
به هر حال بايد جواب صريحتري هم باشد، نه؟!
از خود تنظيمات ويندوز هم مي‏توانم ساعت را بگيرم، اما چطور آن را نمايش دهم؟
اين حالت نمايش، متن است؟ با DrawText كار شده؟ آيكون است؟ با NotifyIcon كار شده؟
مشكل من سر نمايش ساعت است، نه گرفتن زمان!!


با سپاس از همكاري شما....

reza6384
سه شنبه 15 مرداد 1387, 12:51 عصر
خوندن ساعت سیستم که خیلی ساده است. از now استفاده کنید.
من برای اینکه توی فرم ساعت رو نمایش بدم از کد زیر استفاده کردم :



Hour = Now.TimeOfDay.Hours.ToString
Minute = Now.TimeOfDay.Minutes.ToString
Second = Now.TimeOfDay.Seconds.ToString
ClockString = Hour & " : " & Minute & " : " & Second
lblTime.Text = ClockString


می تونید این کد رو توی یک تایمر بنویسید که هر ثانیه یکبار اجرا میشه (Interval=1000) تا هر ثانیه ساعتتون رو آپدیت کنید.

Parham.D
سه شنبه 15 مرداد 1387, 16:56 عصر
اساتيد بزرگوار به خدا قسم مشكل من بر سر گرفتن ساعت از ويندوز يا قالب‏بندي آن نيست!!

مشكل من نمايش ساعت در system tray هست (كه در پست اول ذكر كردم) مثل ساعت ويندوز به همراه يك منو براي باز كردن مثلا يك فرم.

مجددا سوال عرض ميكنم كه :

چطور مي‏توان يك ساعت ديجيتال به همراه منو در system tray تعريف كرد؟
آيا با آيكن؟ با NotifyIcon ؟ يا براي اين منظور كامپوننت خاصي زا مي‏شناسيد؟

با سپاس از همكاري و توجه شما ......

reza6384
سه شنبه 15 مرداد 1387, 22:51 عصر
من الان کاملا متوجه منظور شما شدم، حالا برای خودمم سوال شده که چجوری اینکار رو میشه کرد؟ یک راه به نظرم رسید که بیای یه ActiveX درست کنی و از NotifyIcon به ارث ببری که نمی شه ، چون این کلاس به ارث برده نمیشه طبق نوشته Microsoft.
در هر حال این چون کار من یا سایر افرادی که این پست رو دیدن نیست و بهش تاحالا احتیاج پیدا نکردیم، نمی تونیم مثل شمایی که بهش نیاز داری بگردیم. به نظر من توی سایت های www.microsoft.com (http://www.microsoft.com) و www.codeproject.com (http://www.codeproject.com) هم دنبال جواب سوالت بگرد. لینک های زیر هم شاید مفید باشه :

http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon(VS.85).aspx

http://msdn.microsoft.com/en-us/library/system.windows.forms.notifyicon_members(VS.85).asp x

Evil 69
چهارشنبه 16 مرداد 1387, 12:41 عصر
يك سري توابع api هم ستن كه بااستفاده از اونا مي شه هر جاي مانيتور كه به خاي چيزي بكشي
حالا با استفاده از اونا شما مي توني مختصان هر جايي رو كه مي خاي بدست بياري و بعد با استفاده از توابع گرافيك ساعت رو اونجا بكشي و يا بنويسي