PDA

View Full Version : چه جوری میشه کلید از کیبورد غیر فعال کرد؟



Valadi
پنج شنبه 25 آبان 1385, 17:34 عصر
چه جوری میشه کلید از کیبورد مثلا کلید استارت کیبورد و راست کلیک کیبورد را غیر فعال کرد؟

dkhatibi
جمعه 26 آبان 1385, 00:04 صبح
غیرفعال کردن تا چه حدمنظورته اما ...
از این آدرس می تونی استفاده ی خوبی ببری!
http://www.swissdelphicenter.com/en/showcode.php?id=1212

Valadi
جمعه 26 آبان 1385, 12:19 عصر
فقط در زمان اجرا پروژه کلیدهای استارت و راست کلیک کیبورد غیرفعال بشه

dkhatibi
جمعه 26 آبان 1385, 16:17 عصر
در مورد کلید استارت برنامه ی بالا رو ببین. می تونی تغییرش بدی تا راست کلیک هم رو غیر فعال کنه!

vesal
سه شنبه 26 دی 1385, 02:06 صبح
دو تا راه هست
اولی استفاده از DwinLock
دومی یک سورس به زبان C++ تو MSDN هست. هر چند تبدیلش زحمتی نداره چون تبدیل شد

حرفه ای
سه شنبه 26 دی 1385, 07:53 صبح
چه جوری میشه کلید از کیبورد مثلا کلید استارت کیبورد و راست کلیک کیبورد را غیر فعال کرد؟

دوست خوبم !
اگر منظور شما غیر فعال کردن این کلیدها در داخل برنامه است من مثال زیر را برای شما می نویسم :
ابتدا خاصیت KeyPreview فرم را True کن این عمل سبب می شود تمامی کدهای نوشته شده شما در قسمت OnKeyDown یا OnKeyPress برای تمامی Object ها صدق کند
سپس در قسمت OnKeyDown کد زیر را وارد کن :


If Key=93 Then ShowMessage('aaaa');

و سایر کلیدهای را می توانی از یونیت Windows در قسمت { Virtual Keys, Standard Set } پیدا کنی

و اما دو تابع برای فعال و یا غیر فعال کردن منوی ویندوز


procedure DisableStartButton;
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
false);
end;




procedure EnableStartButton;
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
true);
end;

Valadi
سه شنبه 26 دی 1385, 08:01 صبح
دوست عزیز آقای حرفه ای مرسی از اینکه این تاپیک جواب دادی اما یک سوال دارم شما گفتید : ((سایر کلیدهای را می توانی از یونیت Windows در قسمت { Virtual Keys, Standard Set } پیدا کنی ))
منظور از چیست و بیشتر در مورد کد کلید های راهنمایی کن

vesal
سه شنبه 26 دی 1385, 11:09 صبح
دوست عزیز آقای حرفه ای مرسی از اینکه این تاپیک جواب دادی اما یک سوال دارم شما گفتید : ((سایر کلیدهای را می توانی از یونیت Windows در قسمت { Virtual Keys, Standard Set } پیدا کنی ))
منظور از چیست و بیشتر در مورد کد کلید های راهنمایی کن

فقط جواب آقای حرفه ای رو دیدی ؟ :متفکر: :چشمک:

Valadi
سه شنبه 26 دی 1385, 12:07 عصر
فقط جواب آقای حرفه ای رو دیدی ؟ :متفکر: :چشمک:



جناب وصال منظورتان چیست ؟



:متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر:


ضمنا سورس بالا که شما قرار دادید این مشکلی داره که صفحه کلید غیر فعال می کنه و من می خواهم که فقط منوی استارت غیر فعال بشه

vesal
سه شنبه 26 دی 1385, 12:13 عصر
جناب وصال منظورتان چیست ؟
:متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر: :متفکر:

فکر کنم سوال همین بود دیگه؟ چه جوری میشه کلید از کیبورد مثلا کلید استارت کیبورد و راست کلیک کیبورد را غیر فعال کرد؟ یا من اشتباه می کنم؟

Valadi
سه شنبه 26 دی 1385, 13:27 عصر
بله جناب وصال سوال همین بود ضمنا سورس بالا که شما قرار دادید این مشکلی داره که صفحه کلید غیر فعال می کنه و من می خواهم که فقط منوی استارت غیر فعال بشه

حرفه ای
چهارشنبه 27 دی 1385, 08:00 صبح
دوست عزیز آقای حرفه ای مرسی از اینکه این تاپیک جواب دادی اما یک سوال دارم شما گفتید : ((سایر کلیدهای را می توانی از یونیت Windows در قسمت { Virtual Keys, Standard Set } پیدا کنی ))
منظور از چیست و بیشتر در مورد کد کلید های راهنمایی کن

دوست خوبم
با بیان چند مثال برای شما توضیح می دهم
می توان تمامی کلیدهای صفحه کلید را در سه رویداد OnKeyDown (زمانی که کلید پایین رفت ) OnKeyUp (زمانی که کلید رها شد ) و OnKeyPress ( زمانی که کلیدی استفاده شد ) کنترل کنی به عنوان مثال با زدن دکمه F1 دکمه ای کلیک شود : ( در OnKeyDown )


procedure TForm1.Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If Key=VK_F1 Then Button1.Click;
end;

یا با زدن دکمه Esc فرم بسته شود : ( در OnKeyPress )


procedure TForm1.FormKeyPress(Sender: TObject; var Key: Char);
begin
If Key=#27 Then
begin
Key:=#0;
Close;
end;
end;

یا فرد Alt و F4 را گرفت پیغامی نمایش داده شود :


procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
If (ssAlt in Shift) and (Key=VK_F4) Then ShowMessage('Hello');
end;

یا در یک Edit تنها اعداد نوشته شوند و حروف درج نشود


procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
If Not(Key in ['0'..'9',#27,#13,#8]) Then Key:=#0;
end;

خلاصه بقیه رو هم خودت می تونی پیدا کنی :چشمک:

Valadi
چهارشنبه 27 دی 1385, 09:03 صبح
دوست خوبم !
اگر منظور شما غیر فعال کردن این کلیدها در داخل برنامه است من مثال زیر را برای شما می نویسم :
ابتدا خاصیت KeyPreview فرم را True کن این عمل سبب می شود تمامی کدهای نوشته شده شما در قسمت OnKeyDown یا OnKeyPress برای تمامی Object ها صدق کند
سپس در قسمت OnKeyDown کد زیر را وارد کن :


If Key=93 Then ShowMessage('aaaa');

و سایر کلیدهای را می توانی از یونیت Windows در قسمت { Virtual Keys, Standard Set } پیدا کنی

و اما دو تابع برای فعال و یا غیر فعال کردن منوی ویندوز


procedure DisableStartButton;
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
false);
end;




procedure EnableStartButton;
begin
EnableWindow(FindWindowEx(FindWindow('Shell_TrayWn d', nil),
0,
'Button',
nil),
true);
end;


جناب حرفه ای عزیز من کد بالا قرار دام در پروژه اما کلید استارت غیر فعال نشد شاید چیزی یادت رفته اگر امکان داره سورس کدش قرار بده تا مشکلم حل شه
با تشکر

Mahyaa
چهارشنبه 27 دی 1385, 09:08 صبح
دو تا راه هست
اولی استفاده از DwinLock


dWinlock خیلی ساده و مفیده : (Free Download)
http://www.kassl.de/winlock/download.shtml

حرفه ای
چهارشنبه 27 دی 1385, 10:11 صبح
جناب حرفه ای عزیز من کد بالا قرار دام در پروژه اما کلید استارت غیر فعال نشد شاید چیزی یادت رفته اگر امکان داره سورس کدش قرار بده تا مشکلم حل شه
با تشکر

دوست خوبم !
همانطور که پیداست پاسخ بالا به منظور توضیح OnKeyDown و OnKeyPrss بیان شد در صفحه قبل می توانی کد API قفل کردن منوی استارت را ببینی اما توی برنامه نیز کد زیر کمی ممکنه بدردتون بخوره


IF (Key=VK_LWIN) OR (Key=VK_RWIN) Then
begin
// Your Code
end;