|
SendMessage WM_CHAR и русские буквы
| ☑ |
0
n0ther
25.09.13
✎
19:46
|
Необходимо передать в окно 1С символы. Проблема возникает с передачей русских букв.
Исходная строка в кодировке CP1251.
так не работает
for (i=0;i<sizeof(str1);i++) {
SendMessage(hwnd,WM_CHAR,str1[i],1);
}
так тоже
i = MultiByteToWideChar(CP_ACP, 0, str1, MAX_PATH, pwc, MAX_PATH);
for (i=0;i<sizeof(pwc);i++) {
SendMessageW(hwnd,WM_CHAR,pwc[i],1);
}
|
|
1
Torquader
26.09.13
✎
00:46
|
Передавать надо не WM_CHAR, а WM_KEYDOWN и в нужной раскладке - тогда всё прекрасно работает.
Да и потом, WM_CHAR обычно через PostMessage передаются.
P.S. передавать нужно в элемент диалога, куда это будет вводиться - основное окно 1С не очень готово к обработке символов.
Ну и проще перехватчиком поймать в окне 1С рождное WM_CHAR и посмотреть - кому оно идёт, и как в нём передаются русские буквы.
Удачи.
У меня родной WM_CHAR работал (правда в Windows XP)
|
|
2
n0ther
26.09.13
✎
07:34
|
(1) передаю в элемент диалога. цифры туда "залетают" на ура
WM_KEYDOWN неудобна, так как у меня и русские и английские буквы. попробую PostMessage
|
|
3
vcv
26.09.13
✎
07:57
|
Попробуй патч реестра. При копи/пасте помогает от превращения русских букв в "кракозябры".
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]
1250 = c_1251.nls
1251 = c_1251.nls
1252 = c_1251.nls
|
|
4
Cerera
26.09.13
✎
08:25
|
(0)а для чего вам это?
|
|
5
n0ther
26.09.13
✎
09:17
|
всё взлетело
(4) переход "извне" по гиперссылке на элемент справочника
|
|
6
Torquader
27.09.13
✎
00:05
|
(5) Если нужно открыть форму в 1С из-вне, то лучше всего DDE и немного поправить код в 1С, чтобы не открывать формы в момент проведения документов.
|
|
7
n0ther
27.09.13
✎
10:54
|
(6) пример?
|
|
8
oleg_km
27.09.13
✎
12:24
|
(6) А разве восьмерка поддерживает DDE?
|
|
9
Torquader
29.09.13
✎
23:15
|
(8) Восьмёрка COM-connector поддерживает.
Я как-то о семёрке подумал - в восьмёрке как-то не приходилось что-то в окна вписывать - там можно из запущенной внешней обработки управлять другими формами.
|
|
10
n0ther
11.10.13
✎
16:27
|
(9)
эээээ
|
|