با سلام
چند روز پیش اولین تجربهی شخصی خودم رو در برنامهنویسی با threadها انجام دادم. کارم نیمه تموم موند چون به یه مشکل خوردم. اگه دوستان و استادان تمایل داشته باشن این برنامه رو اینجا میگذارم ( به همراه source ) و دوستان هم در حل مشکلش به من کمک کنن.
در صورت تمایل دوستان واجازهی مدیران تالار، برنامه و source و توضیحات تکمیلی رو خواهم فرستاد.
صورت مساله:
برنامهای میخواستم که مدت استفاده فرزندم از کامپیوتر رو با دو شرط محدود کنه:
1. در هر روز ( به تفکیک روزهای شنبه تا جمعه ) پنجرههای زمانی مجاز رو تعریف کنم. مثلاً شنبه تا چهار شنبه بین 4 تا 6:30، پنجشنبه بین 4 تا 7 و جمعه از 10 تا 12 صبح و 4 تا 7 عصر.
2. در هر روز ( باز به تفکیک روزهای هفته ) حداکثر مجاز مصرف. مثلاً برای شنبه تا پنجشنبه 1:45 در روز و جمعهها 3 ساعت در روز.
3. امکان اضافه کردم زمان اضافی به صورت اختیاری توسط والدین.
راه حل:
دو برنامه مورد نیاز هست:
1. برنامه SSPCServer که با استفاده از یک timer زمان مصرفی رو ثبت میکنه و اگه یکی از شرطهای مجاز بودن استفاده برقرار نبود کاربر رو logoff کنه. و ثبت مصرف در registry~LocalMachine.
2. برنامه SSPCManager: برای تعریف کاربر، پنجرههای زمانی و زمان مجاز هر روز. و همچنین تنظیمات برنامهی server شامل interval زمان کنترل ( مثلاً هر پنج دقیقه ) و کاربری که برنامهی server تحت اون اجرا میشه.
چون کاربر تحت کنترل ( فرزند ) دسترسی Admin نداره، بنابراین نمیتونه در Registry~LocalMachine بنویسه. اگه تو CurrentUser بنویسه دیگه کاربر مدیریت کننده ( والدین ) امکان خوندن محتوی CurrentUser اون رو ندارن. پس راه حل اینه که برنامهی Server با کاربر دیگری که admin هست اجرا بشه.
اجرا شدن و پایان یافتن برنامهی server با برنامهی manager انجام میگیرد. چه در حالت AdminMode ( که دارای UI هست ) و چه در حالت ChildMode که بدون UI هست.
مشکل فعلی:
* هنگام اجرای برنامهی برنامهی SSPCServer با کاربر Admin ویندوز خطا میده و برنامه رو میبنده. ( باعث شد کار نیمهتموم باقی بمونه )
* هنگام اجرای برنامه یک برنامهی conime.exe هم اجرا میشه که ظاهراً مربوط به زبانهای آسیایی هست در حالی که برنامهی من فقط انگلیسی هست.
صبا صبوحی