PDA

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



hr0694
چهارشنبه 19 مرداد 1390, 12:16 عصر
من سورس یه برنامه ای را میخواهم که یه Text روی Form داریم و با زدن Alt+Shift زبان Text تغییر نکند در واقع Alt+Shift غیر فعال شده باشد فقط فقط Alt+Shift غیر فعال شده باشه

محسن واژدی
چهارشنبه 19 مرداد 1390, 12:49 عصر
سلام علیکم
کتابخانه موجود در سورس زیر همه رویدادهای ویندوز اعم از صفحه کلید، موس و ... را مانیتورینگ میکند
و رویداد مورد نظر که میتواند Shift+Alt باشد را غیرفعال کنید

موفق باشید

hr0694
چهارشنبه 19 مرداد 1390, 15:56 عصر
دوست عزیز من چکار کنم که خط چشمک زن روی فارسی قفل بشه نه انگلیسی بعدش هم وقتی این کد را بکار میبرم برای تکستی که روی Form خودم ایجاد کرده ام برنامه ارور میدهد از این قسمت Dim fnc As New EventVB.APIFunctions

:Compile error
User defined type not defined

setroyd
چهارشنبه 19 مرداد 1390, 16:10 عصر
دوست عزیز دیروز که گفتم ربطی به چشمک زن نداره شما میتونی کاری کنی که وقتی روی textbox کلیک کردی یا focus گرفت زبان هم تغییر کنه با api میتونی این کارو بکنی

ramzdar
چهارشنبه 19 مرداد 1390, 16:19 عصر
ابتدایی ترین روش اینه که بسیار سادست
یه تکست باکس و یه تایمر بذار رو فرم و این کد رو تو صفحه کدنویسی بنویس:

Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Private Sub Timer1_Timer()
LoadKeyboardLayout "00000429", 1
End Sub

مقدار Interval تایمر هرچی کمتر باشه سریعتر کار میکنه. فکر کنم 10 خوب باشه

ali.rezaei7
چهارشنبه 19 مرداد 1390, 16:33 عصر
من سورس یه برنامه ای را میخواهم که یه Text روی Form داریم و با زدن Alt+Shift زبان Text تغییر نکند در واقع Alt+Shift غیر فعال شده باشد فقط فقط Alt+Shift غیر فعال شده باشه

عزیز چرا اون تاپیکی رو که 2 روز پیش ایجاد کرده بودی رو پاک کردی؟!!! من که تو اون تاپیک پاسخ داده بودم!!! کار خوبی نکردی. با اینکار به بنده بی احترامی کریدید.

setroyd
چهارشنبه 19 مرداد 1390, 17:04 عصر
این کدی که دوستمون گذاشتن خیلی کند میکنه برنامه رو چون همش بدون چک کردن داره کیبورد رو فارسی میکنه حتی اگه کیبورد فارسی باشه . این کد که گذاشتم چک میکنه اگه en بو fn میکنه به همین دلیل بهتره

Private Declare Function GetKeyboardLayoutName Lib "user32" Alias "GetKeyboardLayoutNameA" (ByVal pwszKLID As String) As Long
Private Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayoutA" (ByVal pwszKLID As String, ByVal flags As Long) As Long

Private Sub Timer1_Timer()
Dim s As String
s = String(9, 0)
GetKeyboardLayoutName s
If Right(s, 4) = "409" & Chr(0) Then LoadKeyboardLayout "00000429", 1
End Sub

محسن واژدی
چهارشنبه 19 مرداد 1390, 18:50 عصر
دوست عزیز من چکار کنم که خط چشمک زن روی فارسی قفل بشه نه انگلیسی بعدش هم وقتی این کد را بکار میبرم برای تکستی که روی Form خودم ایجاد کرده ام برنامه ارور میدهد از این قسمت Dim fnc As New EventVB.APIFunctions

:Compile error
User defined type not defined

برای استفاده ابتدا باید فایل EventVB.dll را ریجستر کنید سپس سورس را اجرا کنید، همانگونه که میدانید ریجستر کردن یک فایل توسط دستور زیر امکان پذیر است:
Regsvr32 "DLL_PATH"
بجای DLL_PATH مسیر EventVB.dll جایگزین میشود

در کل در صورت استفاده از این کامپوننت کافیست یکبار کد جناب ramzdar (http://barnamenevis.org/member.php?151819-ramzdar) موجود در پست شماره 5 را جهت فارسی کردن اجرا کنید پس از آن کلید های Alt+Shift ارسالی به برنامه غیرفعال خواهند شد
البته چون در این کامپوننت از فرایند هوک کردن رویدادها استفاده شده است فقط در صورت لزوم از آن استفاده کنید،

موفق باشید