SabaSabouhi
چهارشنبه 23 اردیبهشت 1388, 17:56 عصر
با سلام
چند روز پیش اولین تجربهی شخصی خودم رو در برنامهنویسی با 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 هم اجرا میشه که ظاهراً مربوط به زبانهای آسیایی هست در حالی که برنامهی من فقط انگلیسی هست.
صبا صبوحی
چند روز پیش اولین تجربهی شخصی خودم رو در برنامهنویسی با 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 هم اجرا میشه که ظاهراً مربوط به زبانهای آسیایی هست در حالی که برنامهی من فقط انگلیسی هست.
صبا صبوحی