PDA

View Full Version : خطای فارسی نمودن صفحه کلید



MMR_1344
سه شنبه 07 فروردین 1386, 06:59 صبح
با سلام وقتی از تابع زیر برای فارسی کردن صفحه کلید استفاده می¬کنم خطای منعکس شده در زیر را می¬دهد
Public Declare Function LoadKeyboardLayout Lib "user32" Alias "LoadKeyboardLayOutA" (ByVal pwsKLID As String, ByVal flags As Long) As Long

Compile error:
Constants,fixed-length string , arrays , user-defined typs and Declare statement not allowed Public members of object models
در برنامه خودم برای فارسی کردن از دستور زیر استفاده می¬کنم
Dim xx AS Long
Xx = LoadKeyboardLayout(“00000429” , 1)

CodeMasterX
سه شنبه 07 فروردین 1386, 07:12 صبح
عزیز من بخ حاط اینکه کد ات غلط هست.
اول کد زیر رو تو یه ماژول بنویس:



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

Public Const KL_NAMELENGTH = 9
Public Const KLF_ACTIVATE = &H1
Public Const LANG_FA As String = "00000429" 'Farsi
Public Const LANG_EN_US As String = "00000409" 'English


حالا تو همون ماژول این کد رو اضافه کن:



Public Function SetKbLayout(strId As String) As Boolean
Dim strLayoutId As String

strLayoutId = String(KL_NAMELENGTH, 0)
GetKeyboardLayoutName strLayoutId
If (strLayoutId = (strId & Chr(0))) Then
SetKbLayout = True
Else
strLayoutId = String(KL_NAMELENGTH, 0)
strLayoutId = LoadKeyboardLayout((strId & Chr(0)), KLF_ACTIVATE)
If IsNull(strLayoutId) Then
SetKbLayout = False
Else
strLayoutId = String(KL_NAMELENGTH, 0)
GetKeyboardLayoutName strLayoutId
If strLayoutId = (strId & Chr(0)) Then
SetKbLayout = True
Else
SetKbLayout = False
End If
End If
End If
End Function


حالا توی فرم اصلی برنامه ات توی Form_Load() این کد رو اینطوری استفاده کن:



Call SetKbLayout(00000429)

MMR_1344
سه شنبه 07 فروردین 1386, 07:37 صبح
متشکر از محبت تون اگر بخوام مجددا" انگلیسی بشه چه کدی داره

CodeMasterX
سه شنبه 07 فروردین 1386, 09:29 صبح
مثل اینکه به کدی که براتون گذاشتم دقت نکردین:

Public Const LANG_EN_US As String = "00000409" 'English

قابلی هم نداشت.

MMR_1344
سه شنبه 07 فروردین 1386, 11:48 صبح
از لطف شما کمال تشکر رادارم اگر ممکن است برای کار با فایلهای اکسل توسط وی بی فایلی یا کتابی میشناسی مغرفی کن

CodeMasterX
سه شنبه 07 فروردین 1386, 13:18 عصر
شما اول به منوی Project|References برو و گزینه Microsoft Excel 11.0 Object Library رو انتخاب کن و به پروژه استفاده کن.البته Excel 11.0 مربوط به Office2003 هست که شاید نسخه دیگه ای روی سیستم شما نصب باشه.بعد کد زیر رو توی قسمت General فرم ات بنویس:



Dim mExcel As New Excel.Application


حالا دیگه می تونی مثل یه فایل باهاش رفتار کنی.اگه کد بیشتری میخواستی بگو دقیقا چیگار میخوای بکنی تا برات بنویسم.