Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

WriteConsoleInput [D7, WinXP]


Страницы:   1 2

Logo ©   (2005-05-31 08:47:00) 

Использую WriteConsoleInput.
Но почему то передается не буква "n", а буква "N".
И еще какой-то пробел после нее. Вместо Энтера знак равно.
Что может быть не так?
Еще не могу по русски писать в консоль.


Digitman   (2005-05-31 11:07:00) [21]


> Logo   (31.05.05 10:28) [4]


> Хотим передать: s:='123абв';


> почему то передается не буква "n", а буква "N".


и где здесь "буква "n" ?


> Консоль получает: 'nm,= '


скорей всего ты неверно передаешь данные строки на вход WriteConsoleInput , т.е. неверно формируешь INPUT_RECORD


> alpet ©   (31.05.05 10:50) [5]
> Кто ж строки напрямую передает CharToOem


все он правильно передает в CharToOem, не выдумывай


alpet   (2005-05-31 10:50:00) [22]

Кто ж строки напрямую передает CharToOem.

function ChToOem (const s: string): string;
var p: array [0..255] of char;
begin
CharToOemBuff (PChar (s), p, Length (s) + 1); // + \0
result := p;
end;    


Logo   (2005-05-31 10:28:00) [23]

Хотим передать: s:='123абв';
потом  CharToOemBuff(@S[1],@S[1],Length(S));
Передаем:'123 Ўў' (попадает в memo1)
Консоль получает: 'nm,= '
где копать?


Digitman   (2005-05-31 09:16:00) [24]


> не помогает


приведи полное конкретное содержимое s ДО и ПОСЛЕ CharToOemBuff


Logo   (2005-05-31 09:07:00) [25]

я это читал сегодня в доках :)
только юзаю CharToOemBuff(@S[1],@S[1],Length(S));
чтобы передать ОЕМ строку.
Но не помогает. Видимо придется таки SetConsoleCP использовать.


Digitman   (2005-05-31 09:03:00) [26]


> Еще не могу по русски писать в консоль


Windows NT: This function uses either Unicode characters or 8-bit characters from the console's current codepage. The console's codepage defaults initially to the system's OEM codepage. To change the console's codepage, use the SetConsoleCP or SetConsoleOutputCP functions, or use the chcp or mode con cp select= commands.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо