1 ضمیمه
تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
با سلام
برای تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی در سایت های داخلی و خارجی خیلی جستجو کردم ولی به موردی بر نخوردم . آیا بنظر اساتید تغییر این آیتم از طریق کدنویسی امکان پذیر است ؟
با تشکر
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
atf1379
با سلام
برای تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی در سایت های داخلی و خارجی خیلی جستجو کردم ولی به موردی بر نخوردم . آیا بنظر اساتید تغییر این آیتم از طریق کدنویسی امکان پذیر است ؟
با تشکر
با سلام
بنده هم قبلا جستجو کرده ام ولی موردی رو پیدا نکردم
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
سلام و روز خوش
دلیلش اینه که مطلقا هیچ api پابلیک و مستند شده ای واسه این کار نیست!
فقط و فقط باید از کنترل پنل انجام بشه و اتفاقا کار درست همینه.
اگر برای نمایش پیام هست که اون راهکار دیگه ای داره.
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
mazoolagh
سلام و روز خوش
دلیلش اینه که مطلقا هیچ api پابلیک و مستند شده ای واسه این کار نیست!
فقط و فقط باید از کنترل پنل انجام بشه و اتفاقا کار درست همینه.
اگر برای نمایش پیام هست که اون راهکار دیگه ای داره.
سلام و عرض ادب خدمت استاد mazoolagh
ممنون از راهنمائی های مفیدتون
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
mazoolagh
فقط و فقط باید از کنترل پنل انجام بشه و اتفاقا کار درست همینه.
اگر برای نمایش پیام هست که اون راهکار دیگه ای داره.
با سلام
در تائید فرمایش استاد mazoolagh عزیز ، بر اساس تجربه ای که حقیر دارم برای تغییر Current System Locale از طریق کنترل پنل انجام بشه خیلی بهتره
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
Sub ChangeSystemLocaleToPersian()
Dim regPath As String
Dim shell As Object
' مسیر رجیستری برای تغییر locale
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Nls\Locale"
' ایجاد شیء Shell
Set shell = CreateObject("WScript.Shell")
' تغییر مقدار Locale به 00000429 (فارسی)
shell.RegWrite regPath & "Locale", "00000429", "REG_SZ"
' تغییر مقادیر ACP، MACCP و OEMCP به 1256 (کد صفحهی فارسی)
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Nls\CodePage"
shell.RegWrite regPath & "ACP", "1256", "REG_SZ"
shell.RegWrite regPath & "MACCP", "1256", "REG_SZ"
shell.RegWrite regPath & "OEMCP", "1256", "REG_SZ"
MsgBox "Current System Locale has been changed to Persian (فارسی). Please restart your computer."
End Sub
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
eb_1345
با سلام
در تائید فرمایش استاد mazoolagh عزیز ، بر اساس تجربه ای که حقیر دارم برای تغییر Current System Locale از طریق کنترل پنل انجام بشه خیلی بهتره
با سلام متقابل
سپاسگزارم
1 ضمیمه
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
ARData
Sub ChangeSystemLocaleToPersian()
Dim regPath As String
Dim shell As Object
' مسیر رجیستری برای تغییر locale
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Nls\Locale"
' ایجاد شیء Shell
Set shell = CreateObject("WScript.Shell")
' تغییر مقدار Locale به 00000429 (فارسی)
shell.RegWrite regPath & "Locale", "00000429", "REG_SZ"
' تغییر مقادیر ACP، MACCP و OEMCP به 1256 (کد صفحهی فارسی)
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contr ol\Nls\CodePage"
shell.RegWrite regPath & "ACP", "1256", "REG_SZ"
shell.RegWrite regPath & "MACCP", "1256", "REG_SZ"
shell.RegWrite regPath & "OEMCP", "1256", "REG_SZ"
MsgBox "Current System Locale has been changed to Persian (فارسی). Please restart your computer."
End Sub
بر روی سیستم من خطای زیر صادر میشود:
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
این کدی رو که هوش ساختگی پیشنهاد داده (پست شماره 6)
اینجا در تگ مناسب میذارم که دست کم خوانا باشه (بگذریم که کد ایراد آشکار داره!)
Sub ChangeSystemLocaleToPersian()
Dim regPath As String
Dim shell As Object
' مسیر رجیستری برای تغییر locale
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\C ontr ol\Nls\Locale"
' ایجاد شیء Shell
Set shell = CreateObject("WScript.Shell")
' تغییر مقدار Locale به 00000429 (فارسی)
shell.RegWrite regPath & "Locale", "00000429", "REG_SZ"
' تغییر مقادیر ACP، MACCP و OEMCP به 1256 (کد صفحهی فارسی)
regPath = "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\C ontr ol\Nls\CodePage"
shell.RegWrite regPath & "ACP", "1256", "REG_SZ"
shell.RegWrite regPath & "MACCP", "1256", "REG_SZ"
shell.RegWrite regPath & "OEMCP", "1256", "REG_SZ"
MsgBox "Current System Locale has been changed to Persian (فارسی). Please restart your computer."
End Sub
نقل قول:
بر روی سیستم من خطای زیر صادر میشود:
1- این کد ایراد داره
2- بعد از رفع ایراد هم گارانتی این که در همه شرایط کار کنه نیست
3- از همه اینها، و بفرض درست بودن همه چیز، باز هم کاربر باید ریستارت کنه،
یعنی عملا بی ارزشه (منظور فقط این نیست - هر کدی)
4- اینکه برای یک کار ساده که خنگ ترین کاربر هم میتونه در یک دقیقه انجام بده،
بیاییم در رجیستری و اون هم یک جای حساس دستکاری کنیم (حالا انجام درستش بماند)
کلا کار نادرستیه - اگر منطقی بود مایکروسافت خودش api مناسب مستند شده میداد.
5- ایراد دیگه کدهای اینجوری (هوش ساختگی) اینه که نه اعتباری به درست بودنشون هست،
نه این که تست شدن (همه شرایط)،
نه این که اگر مشکلی داشته باشه میتونین بپرسین!
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
اگه ویندوز شما 7 هست اینو امتحان کنید دیگه آخرین راهه :
Private Sub Command1_Click()
Dim WshShell As Object
Dim Command As String
Command = "control.exe intl.cpl,,3"
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run Command, 1, True
SendKeys "{TAB}"
SendKeys "{TAB}"
SendKeys "{Enter}"
SendKeys "{P}"
SendKeys "{Enter}"
SendKeys "{ESC}"
SendKeys "%{F4}"
End Sub
اگه روی ویندوز های دیگه کار نکرد اعلام کنید
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
خب،
با این حساب تکلیف کد پست شماره 6 مشخص شد.
اما این پست شماره 10:
یکم این که کد نیست و کدنما است!
دویم این که بسیار hacky و unstable و شکننده است!
سیم این که بستگی به security policy داره (خیلی جاها که ادمین درست و حسابی داره دسترسی کاربر به خیلی چیزا بسته یا محدوده)
1 ضمیمه
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
برای اینکه بخواهیم موقتا اختیارات کاربر را از نوع administrator کنیم و پس از اعمال تغییرات آن را به حالت قبلی برگردانیم نیاز هست از یک اسکریپت استفاده کنیم
Option Explicit
Public Sub RunPowerShellScript()
Dim strScriptPath As String
Dim strCommand As String
Dim shell As Object
' مسیر کامل به اسکریپت PowerShell
strScriptPath = "C:\Path\To\TemporaryAdmin.ps1"
' دستور PowerShell برای اجرای اسکریپت
strCommand = "powershell.exe -ExecutionPolicy Bypass -File """ & strScriptPath & """"
' ایجاد شیء Shell برای اجرای دستور
Set shell = CreateObject("WScript.Shell")
shell.Run strCommand, 1, True
' پیام موفقیت
MsgBox "PowerShell script executed successfully!", vbInformation
End Sub
این کد بدون استفاده از sendkeys System Locate را به Persian بر می گرداند فقط کافی فایل ضمیمه را از حالت زیپ دربیارید و در درایو مثلا c کپیش کنید .
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
ARData
این کد بدون استفاده از sendkeys System Locate را به Persian بر می گرداند فقط کافی فایل ضمیمه را از حالت زیپ دربیارید و در درایو مثلا c کپیش کنید .
فایل رو از حالت زیپ خارج و در درایو C کپی کردم ولی غیر از باز شدن فایل و نمایش کدها اتفاق خاص دیگری نیفتاد .
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
یکم یه کوچولو تلاش میکردی به نتیجه می رسیدی !!! واقعا متاسفم
4 ضمیمه
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
ARData
یکم یه کوچولو تلاش میکردی به نتیجه می رسیدی !!! واقعا متاسفم
بیشتر از ی کوچولو تلاش شد !
بعد از خارج کردن فایل از حالت زیپ اون رو در درایو C کپی کردم
با راست کلیک بر روی فایل مطابق تصویر زیر سه گزینه در ابتدای منوی شناور نمایش داده میشود :
ضمیمه 156416
نتیجه انتخاب گزینه اول ، دوم و سوم مطابق تصاویر ضمیمه:
در حالت دوم با درج حرف Y و بعد ENTER باید در کنترل پنل زبان به فارسی تبدیل میشد که تغییر حاصل نشد حتی بعد از ریستارت کردن کامپیوتر
در واقع علت عدم تغییر در تصویر شماره 3 بصورت سیستمی توضیح داده شده
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
atf1379
بیشتر از ی کوچولو تلاش شد !
بعد از خارج کردن فایل از حالت زیپ اون رو در درایو C کپی کردم
با راست کلیک بر روی فایل مطابق تصویر زیر سه گزینه در ابتدای منوی شناور نمایش داده میشود :
ضمیمه 156416
نتیجه انتخاب گزینه اول ، دوم و سوم مطابق تصاویر ضمیمه:
در حالت دوم با درج حرف Y و بعد ENTER باید در کنترل پنل زبان به فارسی تبدیل میشد که تغییر حاصل نشد حتی بعد از ریستارت کردن کامپیوتر
در واقع علت عدم تغییر در تصویر شماره 3 بصورت سیستمی توضیح داده شده
قرار نیست از این فایل استفاده مستقیم بشه
شما کافیه از این کد در اکسس استفاده کنید :
Option Explicit
Public Sub RunPowerShellScript()
Dim strScriptPath As String
Dim strCommand As String
Dim shell As Object
' مسیر کامل به اسکریپت PowerShell
strScriptPath = "C:\Path\To\TemporaryAdmin.ps1"
' دستور PowerShell برای اجرای اسکریپت
strCommand = "powershell.exe -ExecutionPolicy Bypass -File """ & strScriptPath & """"
' ایجاد شیء Shell برای اجرای دستور
Set shell = CreateObject("WScript.Shell")
shell.Run strCommand, 1, True
' پیام موفقیت
MsgBox "PowerShell script executed successfully!", vbInformation
End Sub
1 ضمیمه
نقل قول: تغییر آیتم Current System Locale در قسمت Region از طریق کد نویسی
نقل قول:
نوشته شده توسط
ARData
قرار نیست از این فایل استفاده مستقیم بشه
شما کافیه از این کد در اکسس استفاده کنید :
در کل هیچ فرقی نمیکنه کدهای فوق باعث تغییر Current System Locale در قسمت Region نمیشه( چه مستقیم چه غیر مستقیم)
شاید هم بخاطر اینکه ویندوز سیستم بنده ویندوز 10 میباشه این تغییر صورت نمی گیره