Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/45: Рейтинг темы: голосов - 45, средняя оценка - 4.64
vladik1024
0 / 0 / 0
Регистрация: 16.12.2008
Сообщений: 7
1

Как узнать раскладку клавиатуры? Как её изменить? Как узнать, на каком языке текст в файле?

29.12.2008, 19:02. Просмотров 8993. Ответов 1
Метки нет (Все метки)

сабж
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.12.2008, 19:02
Ответы с готовыми решениями:

Как узнать на каком языке заполнена форма!
Помагите логически узнать на каком языке заполнена форма?

Как узнать на каком языке написана программа?
Здравствуйте. Опытные программисты, подскажите пожалуйста, есть ли возможность взглянув на файлы...

Как узнать на каком языке программирования написано приложение!
Добрый день! Помогите узнать на каком языке написана программа. Информацию по этой теме я уже...

Как мне узнать по классу в каком файле.h он находится?
Здравствуйте. В среде (java) eclipse , как и в NetBeans, есть возможность импортировать не...

Как узнать в каком файле .lib содержится конкретная функция Windows?
Мне например надо узнать в каком библиотечном файле искать функцию GetSystemMetrics@4. С помощью...

1
MAcK
Комбайнёр
1578 / 676 / 77
Регистрация: 27.05.2008
Сообщений: 2,535
30.12.2008, 09:16 2
Лучший ответ Сообщение было отмечено как решение

Решение

как узнать раскладку клавиатуры?
Вот пример кода, чтобы получить текущую раскладку клавиатуры, для этого нужно просто вызвать метод GetKeyboardLayoutIdAtTime(), который вернет номер кодовой страницы. Код работает под все языки, т.к. сначала получает все установленные в системе языки. Написан на С#. Может чем поможет тебе

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
using System.Globalization;
using System.Windows.Forms;
namespace HotKey
{
/// 
/// Позволяет получить язык ввода для любого активного окна в любой момент времени.
/// 
public static class CurrentCultureInfo
{
#region Fields & Properties
private static int lpdwProcessId;
private static InputLanguageCollection installedInputLanguages = InputLanguage.InstalledInputLanguages;
private static CultureInfo currentInputLanguage;
public static string InputLangTwoLetterISOLanguageName
{
get { return CurrentCultureInfo.currentInputLanguage.TwoLetterISOLanguageName; }
}
public static string InputLangThreeLetterWindowsLanguageName
{
get { return CurrentCultureInfo.currentInputLanguage.ThreeLetterWindowsLanguageName; }
}
public static string InputLangThreeLetterISOLanguageName
{
get { return CurrentCultureInfo.currentInputLanguage.ThreeLetterISOLanguageName; }
}
public static string InputLangNativeName
{
get { return CurrentCultureInfo.currentInputLanguage.NativeName; }
}
public static string InputLangName
{
get { return CurrentCultureInfo.currentInputLanguage.Name; }
}
public static int InputLangLCID
{
get { return CurrentCultureInfo.currentInputLanguage.LCID; }
}
public static int InputLangKeyboardLayoutId
{
get { return CurrentCultureInfo.currentInputLanguage.KeyboardLayoutId; }
}
public static string InputLangEnglishName
{
get { return CurrentCultureInfo.currentInputLanguage.EnglishName; }
}
public static string InputLangDisplayName
{
get { return CurrentCultureInfo.currentInputLanguage.DisplayName; }
}
#endregion
/// 
/// Получает маркер активного окна Windows.
/// 
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern IntPtr GetForegroundWindow();
/// 
/// Получает идентификационный номер потока для окна.
/// 
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern int GetWindowThreadProcessId(IntPtr handleWindow, out int lpdwProcessID);
/// 
/// Получает информацию о раскладке клавиатуры.
/// 
[DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
private static extern IntPtr GetKeyboardLayout(int WindowsThreadProcessID);
/// 
/// Получает значение раскладки клавиатуры в формате кода страницы в текущий момент времени.
/// 
public static int GetKeyboardLayoutIdAtTime()
{
IntPtr hWnd = GetForegroundWindow();
int WinThreadProcId = GetWindowThreadProcessId(hWnd, out lpdwProcessId);
IntPtr KeybLayout = GetKeyboardLayout(WinThreadProcId);
for (int i = 0; i < installedInputLanguages.Count; i++)
{
if (KeybLayout == installedInputLanguages[i].Handle) currentInputLanguage = installedInputLanguages[i].Culture;
}
return currentInputLanguage.KeyboardLayoutId;
}
}
}
как её изменить?

Всё в томже духе, через апи

и как узнать на каком языке текст в файле?

Это уже высший пилотаж
5
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.12.2008, 09:16

Как узнать раскладку клавикатуры в С билдере???
ПОМОГИТЕ ЛАМЕРУ!!! Короче надо узнать итендификатор раскладки клавы в программе. Делатся это...

Как изменить раскладку клавиатуры?
как изменить раскладку клавиатуры? tc 3. шифт+контрол и шифт+алт и шифт+шифт не помогает

Как в командной строке изменить раскладку клавиатуры на английскую?
Пишу прогу, после открытия окна для ввода данных автоматически раскладка меняется на русскую....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.