|
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)
эээээ |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |