PDA

View Full Version : سوال: غیر فعال کردن Alt +F4 در فرم



rezgar_roshan
یک شنبه 22 تیر 1393, 20:22 عصر
سلام دوستان.
یه برنامه با سی شارپ 2010 نوشتم که در ابتدا فرم لاگین براش تعریف کردم که به درستی کار میکنه ولی وقتی Alt+F4 رو میزنی پنجره لاگین بسته میشه و وارد پروژه میشه. میشه راهنماییم کنید چطوری Alt+F4 رو غیر فعال کنم و فقط از دکمه ورود وارد پروژه بشه. البته هر چی سرچ کردم جوابو نگرفتم ممنون از دوستانی که جواب بدن.

Pedram_Parsian
یک شنبه 22 تیر 1393, 20:32 عصر
در داخل FormClosing از e.cancell استفاده کنید ...
:متفکر:
واقعا هر چی گشتید پیدا نشد یا نگشتید ...

omid nasri
یک شنبه 22 تیر 1393, 23:17 عصر
راه های زیادی هست برای مثال یکی از این راه ها استفاده از EVENT ها هستش:شما رو ایویت KEY DOWN دستورات خودت رو نویس :
بنویس اگه دکه های ALT و F4 زده شد E.HANDLE = TRUE;

erfan_urchin
دوشنبه 23 تیر 1393, 02:45 صبح
شما اول تو رویداد FormClosing کد زیر رو بنویسین
bool check = false
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (check == true)
{
e.Cancel = true;
check = false;
}
}

بعد بیاین تو رویداد KeyDown کد زیر رو بنویسین
private void Form1_KeyDown(object sender, KeyEventArgs e)
{ if (e.Alt && e.KeyCode == Keys.F4)
{
check = true;
this.FormClosing += Form1_FormClosing;
}
}

rezgar_roshan
پنج شنبه 26 تیر 1393, 00:50 صبح
با تشکر از دوستان گرامبم. تمام دستورات رو مو به مو انجام دادم ولی باز هم درست نشد.

arash69
پنج شنبه 26 تیر 1393, 02:32 صبح
سلام دوستان.
یه برنامه با سی شارپ 2010 نوشتم که در ابتدا فرم لاگین براش تعریف کردم که به درستی کار میکنه ولی وقتی Alt+F4 رو میزنی پنجره لاگین بسته میشه و وارد پروژه میشه. میشه راهنماییم کنید چطوری Alt+F4 رو غیر فعال کنم و فقط از دکمه ورود وارد پروژه بشه. البته هر چی سرچ کردم جوابو نگرفتم ممنون از دوستانی که جواب بدن.

سلام؛
برای من یه سوال پیش اومد از سوالتون !!! (سوال داخل سواله البته از نوع تعجبیش !)
یعنی برنامه شما طوری هست الان که با بسته شدن پنجره لاگین وارد قسمت اصلی میشه؟!!!
یه راه ساده برای نوشتن برنامه ای که پس از لاگین وارد برنامه شه، اینه که توی رویداد OnClick از دکمه ای که توی فرم لاگین هست، پس از بررسی صحت نام کاربری و رمز عبور و ...
فرم اصلی رو ShowDialog کنیم و فرم لاگین رو hide کنیم.
چیزایی که گفتم کدشون هم بسیار ساده هست، اما در صورتی که اطلاع ندارین چطوریه، خب همینجا بذارمشون.

پ.ن: وقتی برنامه در ابتدا با بالا آمدن یک فرم (برای مثال همین فرم لاگین) بالا بیاد، با بسته شدن فرم مورد نظر، برنامه نیز Application.Exit میشود یا به عبارتی بسته می شود.
نمیدونم برنامه ی شما چطوری هست که به جای بسته شدن کامل میره به داخل پروژه و فرم اصلی ظاهرا"...

Pedram_Parsian
پنج شنبه 26 تیر 1393, 09:04 صبح
با تشکر از دوستان گرامبم. تمام دستورات رو مو به مو انجام دادم ولی باز هم درست نشد.

منظور شما از درست نشد یعنی چی ؟
یعنی باز هم فرم با Alt + F4 بسته میشه ؟ :متفکر:

البته اگه واقعا نیاز دارید که فرم شما بسته نشه باید بیای از Windows Service استفاده کنی که نهایتا اگه کاربر این چیزا رو بلد باشه باز هم پروژه شما بسته میشه !

خلاصه کنم ؛ هیچ کاری نمیشه کرد که فرم بسته نشه (حتی با غیر فعال کردن Task manager)

rezgar_roshan
پنج شنبه 26 تیر 1393, 15:11 عصر
دوستان گرامیم دقیقتر توضیح بدم فرم لاگین من پس از لود فرم اصلی برنامه، showdialg میشه حالا وقتی Alt+F4 رو میزنم فرم لاگین بسته میشه دوباره فرم اصلی نمایش داده میشه. کدی که توی پست شماره 4 دوستم گذاشته بود رو گذاشتم اما برنامه وارد قسمت if نمیشه. امیدوارم تونسته باشم منظورم رو رسونده باشم.

Pedram_Parsian
پنج شنبه 26 تیر 1393, 18:09 عصر
دوستان گرامیم دقیقتر توضیح بدم فرم لاگین من پس از لود فرم اصلی برنامه، showdialg میشه حالا وقتی Alt+F4 رو میزنم فرم لاگین بسته میشه دوباره فرم اصلی نمایش داده میشه. کدی که توی پست شماره 4 دوستم گذاشته بود رو گذاشتم اما برنامه وارد قسمت if نمیشه. امیدوارم تونسته باشم منظورم رو رسونده باشم.

خوب شما این طوری به نتیجه نمی رسی .... چون برای این که برنامه شما درست کار کنه شما باید بیای اول فرم لاگین رو Show کنی و بعد اگه پسورد درست بود بیای فرم اصلا برنامه رو Show کنی ....
چون با روش شما اگه حتی Alt + F4 رو هم غیر فعال کنی کافی نیست چون کاربر می تونه با استفاده از Task Manager یا هزار تا برنامه ی دیگه اون فرم رو ببنده :لبخند:

ولی یه کاری هم میتونی انجام بدی (که من پیشنهاد نمی کنم !) که بیای در رویداد FormClosing فرم لاگین فرم Main رو هم ببندی ....

ولی اگه بتونی برنامه رو اون جوری که بالا گفتم تغییر بدی امنیت اون خیلی بهتر میشه

rezgar_roshan
جمعه 27 تیر 1393, 00:23 صبح
با تشکر از تمامی دوستان گلم که راهنمایی کردن. من با روش خودم درستش کردم ولی فکر کنم روش درستی نباشه به هر حال کار میکنه. روی رویداد form keydown امتحان کردم کار نمی کرد ولی در رویداد keydown تکست باکس یوزر و پسورد و دکمه های ورود و بستن کد رو جداگانه برای هر کدام گذاشتم درست شد.

elec60
جمعه 27 تیر 1393, 01:19 صبح
با تشکر از تمامی دوستان گلم که راهنمایی کردن. من با روش خودم درستش کردم ولی فکر کنم روش درستی نباشه به هر حال کار میکنه. روی رویداد form keydown امتحان کردم کار نمی کرد ولی در رویداد keydown تکست باکس یوزر و پسورد و دکمه های ورود و بستن کد رو جداگانه برای هر کدام گذاشتم درست شد.

وقتی فرم برای دریافت رویدادهای کیبورد رجیستر نشه نمیتونین این رویدادها رو دریافت کنین چون فرمتون فوکوس نداره...