View Full Version : سوال: id (شماره) Language bar در کد جاک برای نمایش زبان کیبورد در استاتوس بار
saeed_r67
دوشنبه 15 آذر 1389, 20:52 عصر
سلام خدمت همه عزیزان.
id (شماره) Language bar در کد جاک برای نمایش زبان کیبورد در استاتوس بار چنده؟
amir200h
دوشنبه 15 آذر 1389, 21:02 عصر
سلام دوست من.
ای دی رو خودت باید بدی
saeed_r67
پنج شنبه 18 آذر 1389, 22:47 عصر
سلام .
دوست عزیز :
برای اینکه مثلا :در استاتوس باری که با کدجاک ایجاد کردیم روشن بودن دکمه ناملوک یا کپس لوک رو نمایش بدیم باید
در پنلی که ایجاد میکنیم کد قرارا بدیم
2156=panel.
حالا نمیدونم کدی که زبان کیبورد رو نشون میده چنده؟
بازم ممنون.
saeed_r67
جمعه 26 آذر 1389, 00:45 صبح
اگه میشه دوستان یه نظری به این تاپیک داشته باشند .
ممنون
butterfly8528
پنج شنبه 02 دی 1389, 00:01 صبح
سلام دوست عزیز .
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Private Sub Timer1_Timer()
Select Case GetKeyboardLayout(0)
Case 67699721
CommandBars.StatusBar.FindPane(101).Text = "EN"
Case 69796905
CommandBars.StatusBar.FindPane(101).Text = "FA"
End Select
End Sub
به جای 101 ، آیدی Pane مورد نظر را وارد کنید .
موفق باشید .
saeed_r67
پنج شنبه 02 دی 1389, 20:49 عصر
سلام دوست عزیز .
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Private Sub Timer1_Timer()
Select Case GetKeyboardLayout(0)
Case 67699721
CommandBars.StatusBar.FindPane(101).Text = "EN"
Case 69796905
CommandBars.StatusBar.FindPane(101).Text = "FA"
End Select
End Sub
به جای 101 ، آیدی Pane مورد نظر را وارد کنید .
موفق باشید .
سلام .ممنون
اما من نمی خواستم از تایمر استفاده کنم .
می خواستم از کد ، خود کد جاک استفاده کنم .
که با قرار دادن کد ، کد جاک به صورت خودکار زبان رو نمایش بده .
مثل num و caps
بازم ممنون از لطفتون.
milad-fa
پنج شنبه 02 دی 1389, 21:19 عصر
سلام دوست عزیز .
Private Declare Function GetKeyboardLayout Lib "user32" (ByVal dwLayout As Long) As Long
Private Sub Timer1_Timer()
Select Case GetKeyboardLayout(0)
Case 67699721
CommandBars.StatusBar.FindPane(101).Text = "EN"
Case 69796905
CommandBars.StatusBar.FindPane(101).Text = "FA"
End Select
End Sub
به جای 101 ، آیدی Pane مورد نظر را وارد کنید .
موفق باشید .
با سلام،
فکر کنم منظور saeed_r67 این هستش که با استفاده از آیدی LanguageBar بجای استفاده از Timer و امثال اون بشه این قابلیت رو به StatusBar اضافه کرد.
مثل دکمه های NumLock,CapsLock,ScrollLock که برای استفاده از اونها از آیدیشون به شکل زیر استفاده میشه:
StatusBar.AddPane 59137
StatusBar.AddPane 59138
StatusBar.AddPane 59139
فکر کنم LanguageBar هم آیدی ای داشته باشه!!!
من هم همین مشکل رو دارم که تو تاپیک زیر مطرح کردم.
http://barnamenevis.org/showthread.php?266120-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-StatusBar
ممنون میشم اگه به این تاپیک هم یه نگاهی بندازید.
با تشکّر.
butterfly8528
پنج شنبه 02 دی 1389, 23:12 عصر
سلام دوستان عزیز .
تا اونجایی که من اطلاع دارم ID خاصی برای Language در نظر گرفته نشده.
اگه ناراحت استفاده از تایمر و سرباری که ایجاد میکنه هستید،یک راه دیگه وجود داره که در زیر اون رو توضیح میدم :
ویندوز یه پیغام داره با نام WM_INPUTLANGCHANGE که برابر با مقدار &H51 هست، وقتی زبان نوشتار تغییر پیدا بکنه این پیغام به صورت خودکار به همه پنجره های برنامه ها ارسال میشه .
حالا شما باید با استفاده از توابع WaitMessage و PeekMessage یک Message Handler در برنامه خودتون ایجاد کنید، و به محض دریافت پیغام WM_INPUTLANGCHANGE ، با استفاده از تابع GetKeyboardLayout آیدی زبان نوشتار رو چک کنید و مقدار مورد نظر رو در StatusBar نمایش بدید .
موفق و پیروز باشید .
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.