# مباحث متفرقه برنامه نویسی > پروژه‌های Open Source > حرفه ای: اضافه كردن تاريخ شمسي به ويندوز با Shamsi_XP

## BOB

سلام

Shamsi XP به صورت رايگان و كدباز، تحت GPL v3 ارائه ميگردد، با اين اميد كه مفيد واقع شود. هر گونه تغيير، توسعه و انتشار تحت GNU Lesser General Public License مورد تاييد است. لطفا در صورت تمايل به توسعه اين نرم‌افزار، سورس نسخه‌هاي تغيير يافته و توسعه داده شده خود را در اين تاپيك قرار دهيد.

هدف بنده از اين پروژه:
1- نمايش تاريخ شمسي با فرمت قابل تغيير، در TrayClock ويندوز (ساعت موجود در نوار وظيفه).
2- استفاده از تاريخ شمسي جاري سيستم (همان روز) به صورت سراسري و بوسيله توابع Time كه خروجي LongTimeFormat دارند.


راه حلي كه بنده از آن استفاده كردم، صرف نظر كردن از DateTimeStamp استاندارد (مشكل خاصي بوجود نخواهد آمد) و اضافه كردن رشته حاوي تاريخ شمسي به TimeStamp استاندارد و به جاي فيلد "tt" در آن است. براي فعال بودن و بروز شدن خوردكار آن هم يك Hook Driver طراحي كردم كه با تغيير زمان، به طور خودكار مقادير فيلدهاي 1159 و 2359 از LOCALE_SYSTEM_DEFAULT (همان فيلد "tt") را آپديت كند.
براي آپديت كردن مقادير مربوطه، هم از تغيير مستقيم آنها در رجيستري و يا SetLocaleInfoW ميتوان استفاده كرد.

جهت توسعه درايور مذكور نياز به تسلط در زمينه سيستم پيام رسان ويندوز و هوكهاي ويندوز مي‌باشد. جهت اطلاعات بيشتر در اين زمينه‌ها به مبحث "Messages and Message Queues" در MSDN و مقاله "نگاهي اجمالي به هوكهاي ويندوز" در شماره سوم مجله برنامه‌نويس، مراجعه كنيد.

البته توجه داشته باشيد كه با استفاده از اين نرم‌افزار، تاريخ شمسي جاري سيستم به تمامي فيلدهاي زماني كه به صورت بلادرنگ Format مي‌شوند (مثلا صفحات properties، Details، Events و ...) نيز اضافه مي‌شود، كه دليل آن اينست كه تاريخهاي مذكور به فرمت Double ذخيره شده بوده و در هنگام نمايش Recode مي‌گردند كه به همين دليل با اضافه شدن فيلد "tt" به فرمت نمايش آنها، تاريخ شمسي جاري به آنها پيوست مي‌شود.

سورس برنامه Shamsi XP به زبان دلفي (CodeGear 07) پيوست شده است.
فايل اجرايي (كامپايل شده) و آماده برنامه

البته بديهيست كه اين برنامه راه حل كاملا مناسبي جهت اضافه كردن تاريخ شمسي به سيستم عامل ويندوز نيست اما بنده شديدا اميدوارم كه با استفاده از اين برنامه به عنوان نقطه شروع (هرچند ساده و كوچك)، بتوان در پايان به راه‌حل مناسبي براي "اضافه كردن تاريخ شمسي به ويندوز" دست يافت. (اين مهم، ميسر نميشود مگر با كمك دوستان و عزيزان فعال در بخش "امنيت نرم‌افزار")

----------


## ali_kolahdoozan

نورتون فایل اجرایی را اصلا نزاشت از zip در بیاریم .  در جا پاکش کرد

----------


## BOB

> نورتون فایل اجرایی را اصلا نزاشت از zip در بیاریم . در جا پاکش کرد


متاسفانه Norton و Mcafee با بيشتر Packer ها و Protector ها مشكل دارند. اما خيالتان راحت باشد فايل اجرايي هيچ مشكلي ندارد (با Rlpack فشرده شده)

----------


## asemoun.blogfa

ببخشید اصلا فایلی با این آدرس موجود نمی باشد
همنگامی که به http://www.mshams.ir/programs/ShamsiXp.rar می رویم ارور می دهد

----------


## BOB

> ببخشید اصلا فایلی با این آدرس موجود نمی باشد
> همنگامی که به http://www.mshams.ir/programs/ShamsiXp.rar می رویم ارور می دهد


بله ببخشید، اصلاح شد:

http://www.mshams.ir/files/programs/ShamsiXp.rar
http://www.mshams.ir/files/programs/ShamsiXpSource.rar

----------


## 123456654321

این فایل ویروسی هست لطفا اگه امکان داره چکش کنید.trojan

----------


## golbafan

لطفا بدون اينكه پكش كنيد بفرستيد بياد
مرسي

----------


## BOB

> لطفا بدون اينكه پكش كنيد بفرستيد بياد
> مرسي


سلام

بفرمایید، این هم فایل فشرده نشده:

----------

