تبلیغات :
آکوستیک ، فوم شانه تخم مرغی، صداگیر ماینر ، یونولیت
دستگاه جوجه کشی حرفه ای
فروش آنلاین لباس کودک
خرید فالوور ایرانی
خرید فالوور اینستاگرام
خرید ممبر تلگرام

[ + افزودن آگهی متنی جدید ]




صفحه 1 از 2 12 آخرآخر
نمايش نتايج 1 به 10 از 17

نام تاپيک: صفحه Login در سی شارپ

  1. #1
    داره خودمونی میشه Ehsan-l-able's Avatar
    تاريخ عضويت
    Sep 2010
    محل سكونت
    ایران
    پست ها
    121

    14 صفحه Login در سی شارپ

    با سلام.
    من فرمی شبیه زیر طراحی کردم :



    میخوام در زمان اجرا سیستم Lock بشه و تا زمانی که نام کاربری یا رمز وارد نشه نتونه وارد سیستم بشه.
    مثل Login ویندوز .
    میخوام برنامه تو Startup باشه که وقتی اجرا شد نتونی از سیستم استفاده کنی تا زمانی که نام کاربری و رمز صحیح باشه.
    خیلی ضروریه دوستان هر کمکی می تونید ممنون میشم به هر طریقی ، اگه کامپوننت خاصی داره و ....

  2. #2
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    منظورتان یکم پیچیده هست. یعنی می خواهید یک Lock برای PC بسازید؟ یا می خواهید برنامه شما یک Lock برای خودش داشته باشه؟
    خوب اگه قرار کاربر استفاده نکنه که همون login ویندوز کافیه.
    اگر هم می خواهید ویندوز رو فقط به عنوان یک پلتفرم استفاده کنید(یعنی فقط هسته) نه سیستم عامل کامل می بایست Shell اجرایی اون رو تغیر بدید. پیش فرض Shell همون Explorer.exe هست.
    ابتدا Shell رو از مسیر رجیستری زیر به برنامه خودتون تغییر بدید:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    کلید Shell رو روی برنامه خودتون با آدرش تنظیم کنید.
    حالا تا ویندوز بالا می آید بعد از login خود ویندوز برنامه شما اجرا می شه اصلا به محیط ویندوز نمی رسه.چون پوسته سیستم عامل رو تغییر دادید و شده برنامه شما.
    یک نقص و راه حل:
    تنها قضیه ای که می مونه وجود وقفه ای با اولویت بالاست چیزی نیست جز: ALT+CTRL+DEL که اون هم راه دارد. برید به آدرس زیر:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    با غیر فعال کردن کلید بالا این وقفه هم از کار می افته. حالا شما ویندوز رو تبدیل کردید به یک هسته و پوسته های که خود شما می خواستید.

    موفق باشید.

  3. 4 کاربر از Msba بخاطر این مطلب مفید تشکر کرده اند


  4. #3
    داره خودمونی میشه Ehsan-l-able's Avatar
    تاريخ عضويت
    Sep 2010
    محل سكونت
    ایران
    پست ها
    121

    پيش فرض

    منظورتان یکم پیچیده هست. یعنی می خواهید یک Lock برای PC بسازید؟ یا می خواهید برنامه شما یک Lock برای خودش داشته باشه؟
    خوب اگه قرار کاربر استفاده نکنه که همون login ویندوز کافیه.
    اگر هم می خواهید ویندوز رو فقط به عنوان یک پلتفرم استفاده کنید(یعنی فقط هسته) نه سیستم عامل کامل می بایست Shell اجرایی اون رو تغیر بدید. پیش فرض Shell همون Explorer.exe هست.
    خیلی ممنون از راهنمایتون.
    بله منظورم یک Lock برای pc است. راستش میخوام یک برنامه برای کنترل کلاینت های یک کافی نت بنویسم.
    یک برنامه خارجی با عنوان Handycafe دیدم که وقتی وارد دسکتاپ میشی بلافاصله اون برنامه سیستم رو lock میکنه ودرخواست user و pass میده. به طوری که نه با Ctrl+alt+del و نه با alt+f4 نمیشه بستش ! (در واقع این lock برای اینکه که وقتی کاربر لاگین شد ، تایمر اون تو سرور فعال بشه و..)
    در ضمن سرور هم میتونه اونو فعال کنه.

    چطوری می تونم Explorer.exe رو تغییر بدم ؟
    راستش تو سی شارپ با ریجستری کار نکردم می تونید یک مثال ساده بزنید.
    Last edited by Ehsan-l-able; 23-02-2012 at 16:21.

  5. #4
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    برای اینکه شما اون حالات رو ایجاد کنید احتیاج به دونستون تغییرات رجیستری توسط برنامه شما نیست بلکه تغییرات مربوط به Installer شماست.
    اون مطلبی که شما می خواهید این طوری بهتر جواب می ده:
    1-با کلاس Process فایل Explorer.exe رو ببند.
    2-شما اون فرم رو تا باز میشه تمام صفحه کن
    3-Alt+F4 رو غیر فعال کن:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    4-Alt+ctrl+del رو هم با اون روشی که در پست قبل گفتم غیر فعال کن. غیر از این نمی شه چون نمی تونی در .net سخت افزار رو ، رو این سطح بسیار پایین بخونی.( Full Hook)
    5-موقعی که لاگین کرد Explorer.exe رو دوباره با کلاس Process باز کن.

    البته روش های دیگری هم هست ولی این ساده و سریع هست.

    برای غیر فعال کردن alt+ctrl+del با C++ می شه. شما در انجمن C این قضیه رو مطرح کن تا بتونی یک DLL بسازی و در اون تابع غیرفعال کننده رو با C# فراخوانی کنی. (به دات نت کلک بزنی!)

    موفق باشید.
    Last edited by Msba; 23-02-2012 at 19:37. دليل: غلط املایی !

  6. 2 کاربر از Msba بخاطر این مطلب مفید تشکر کرده اند


  7. #5
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    برای غیر فعال کردن alt+ctrl+del با C++ می شه. شما در انجمن C این قضیه رو مطرح کن تا بتونی یک DLL بسازی و در اون تابع غیرفعال کننده رو با C# فراخوانی کنی. (به دات نت کلک بزنی!)
    برای غیر فعال کردن Task Manager فقط کافی Task Manager رو توسط برنامه باز کنید ( در load form ) و اجازه دسترسی برنامه دیگری رو بهش ندید

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    این کد برای xp هست در 7 جواب نمیدهد

  8. 2 کاربر از szh_1367 بخاطر این مطلب مفید تشکر کرده اند


  9. #6
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    منظور از غیر فعال کردن alt+ctrl+del با یک زبان پایه مثلا C++ غیر فعال کردن TaskManager نیست. بلکه هندل کردن کلید های کیبورد قبل از هندل شدن آن توسط سیستم عامل است که .net به صورت مستقیم نمی تواند.

    اما روش های مختلفی برای جلوگیری از دسترسی کاربر به Task manager وجود دارد. که یکی را نیز شما بیان نمودید.
    برای غیر فعال کردن این کد برای xp هست در 7 جواب نمیدهد
    این امر کاملا صحیح هست. زیرا در ویندوز های جدید همه ی فایل های اصلی سیستم قابلیت دسترسی مختلفی دارند و اگه دقت کرده باشید پیغام File in used در ویندوز 7 بسیار کم دیده می شود.
    مزایای روش شما :
    1- بسیار خلاقانه ( در فایل های دیگر هم می شه استفاده کرد. )
    2- درگیر کردن سیستم عامل برای عدم اجرای فایل
    عیوب آن نیز:
    1- عدم بهینه بودن استفاده از حافظه
    2- عدم پاسخ صحیح در نسخه های جدید ویندوز که خودتان اشاره کردید.

    موفق باشید.

  10. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  11. #7
    کاربر فعال انجمن دات نت عــــلی's Avatar
    تاريخ عضويت
    Feb 2007
    محل سكونت
    زیر سایه عرش الهی
    پست ها
    2,335

    پيش فرض

    بنام خدا.
    سلام.
    بلکه هندل کردن کلید های کیبورد قبل از هندل شدن آن توسط سیستم عامل است که .net به صورت مستقیم نمی تواند.
    منظورتان از اینکه دات نت به صورت مستقیم نمیتواند چیست؟مگر سی پلاس پلاس به صورت مستقیم میتواند؟
    سی هم باید توابع ای پی آی لود کند.
    دات نت فرمورک فقط برای آسانی کار یه سری توابع بیشتر دارد...همین.
    شما میتوانید براحتی از توابع API استفاده و آنرا هوک کنید.و به کاربر اجازه ندهید که کلیدهای CTRL+ALT+Delete و یا هرچیز دیگری را بزند.
    موفق باشید.

  12. 2 کاربر از عــــلی بخاطر این مطلب مفید تشکر کرده اند


  13. #8
    کاربر فعال تالار .Net Msba's Avatar
    تاريخ عضويت
    Dec 2006
    محل سكونت
    ! My Mind
    پست ها
    506

    پيش فرض

    منظور من از غیر مستقیم اون غیر مستقیم که با DllImport هست نیست، چون همون طور که گفتی جفتشون api بارگذاری می کنن. در ادامه توضیح می دم....


    علی جان این سومین بار هست که من در .net به محدودیت می خورم.این هم شرح:
    شما می دانید که دو نوع Hook وجود دارد:
    1- به صورت موقت و مختص به یک Process
    2- به صورت کلی تحت کل سیستم عامل (Global Hook)
    که دومی کلا با ساختار .net مشکل داره!
    (این یک نقص نیست بلکه عدم تطبیق manage و native در این سطح هست.)
    معمولا مطلبی را بدون سند ذکر نمی کنم:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    خود microsoft اذعان می کند!

    خواهشمندم که مطالب زیر را هم با هم بخوانیم ، در این مورد بحث های خوبی وجود دارد:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر نکته ای هم در اون مطالب هست بگید تا من هم بدونم چون فرصت نکردم کامل بخونمشون ممنون.



    این هم یک راه حل که یکی انجام داده من به شخصه خودم امتحان نکردم اما با کلی تحقیق و کار تجربی این مسیر رو پیدا کرده:
    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    اگر بررسی کنید می بینید که خودش داره این قضیه Global رو دور میزنه ( یعنی به صورت مستقیم نمی شه! «این همون شرح بالا بود»)


    موفق باشید.

  14. این کاربر از Msba بخاطر این مطلب مفید تشکر کرده است


  15. #9
    کـاربـر بـاسـابـقـه szh_1367's Avatar
    تاريخ عضويت
    Apr 2007
    پست ها
    1,007

    پيش فرض

    منظور از غیر فعال کردن alt+ctrl+del با یک زبان پایه مثلا C++ غیر فعال کردن TaskManager نیست. بلکه هندل کردن کلید های کیبورد قبل از هندل شدن آن توسط سیستم عامل است که .net به صورت مستقیم نمی تواند.

    اما روش های مختلفی برای جلوگیری از دسترسی کاربر به Task manager وجود دارد. که یکی را نیز شما بیان نمودید.

    این امر کاملا صحیح هست. زیرا در ویندوز های جدید همه ی فایل های اصلی سیستم قابلیت دسترسی مختلفی دارند و اگه دقت کرده باشید پیغام File in used در ویندوز 7 بسیار کم دیده می شود.
    مزایای روش شما :
    1- بسیار خلاقانه ( در فایل های دیگر هم می شه استفاده کرد. )
    2- درگیر کردن سیستم عامل برای عدم اجرای فایل
    عیوب آن نیز:
    1- عدم بهینه بودن استفاده از حافظه
    2- عدم پاسخ صحیح در نسخه های جدید ویندوز که خودتان اشاره کردید.

    موفق باشید.
    سلام

    تا جایی که من اطلاع دارم روش کاملا بهینه و 100% برای غیرفعال کردن Task Manager وجود نداره

    و حتما شما که برنامه نویس خوبی هستید در جریان قرار دارید که هر کدی محاسن و معایبی داره و کدی که من قرار دادم فقط یک ترفند هست وگرنه این کد بدرد کسی میخوره که ندونه برنامه نویسی چی

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

    البته قابل ذکر هست که من به دلیل نداشتن ویندوز 7 و VS کد رو تست نکردم زحمت خطایابی و تستش با خودتون و نکته بعد اینکه این کد هم مانند کد قبلی فقط یک ترفند هست و بهینه نیست

    کد:
    برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
    مثلا یکی از معایب این کد اینکه میتوان با تابع ShowWindow برنامه Task Manager رو باز کرد

  16. 2 کاربر از szh_1367 بخاطر این مطلب مفید تشکر کرده اند


  17. #10
    داره خودمونی میشه Ehsan-l-able's Avatar
    تاريخ عضويت
    Sep 2010
    محل سكونت
    ایران
    پست ها
    121

    پيش فرض از کار انداختن یک دکمه صفحه کلید

    من از این ترفند استفاده کردم :
    از کامپوننت WinShutDownStyle.dll استفاده کردم ، مثل زمانی که میخوای سیستم رو Shutdown کنی پشت صفحه سیاه و سفید میشه. فقط اگه بتونم در زمان اجرای برنامه کلید Alt روی صفحه کلید غیر فعال کنم ، مشکلم حله.

    با از کار انداختن کلید Alt دیگه نمیشه Ctrl+alt+del و یا Alt+f4 گرفت.

    چطوری میتونم تعدادی از کلیدهای صفحه کلید رو غیر فعال کنم؟
    Last edited by Ehsan-l-able; 24-02-2012 at 15:24.

صفحه 1 از 2 12 آخرآخر

Thread Information

Users Browsing this Thread

هم اکنون 1 کاربر در حال مشاهده این تاپیک میباشد. (0 کاربر عضو شده و 1 مهمان)

User Tag List

برچسب های این موضوع

قوانين ايجاد تاپيک در انجمن

  • شما نمی توانید تاپیک ایحاد کنید
  • شما نمی توانید پاسخی ارسال کنید
  • شما نمی توانید فایل پیوست کنید
  • شما نمی توانید پاسخ خود را ویرایش کنید
  •