Модераторы: feodorv, GremlinProg, xvr, Fixin
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> setlocale() не работает, прога выводит разные символы вместо букв 
V
    Опции темы
winsent7
Дата 25.2.2011, 10:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 3.9.2010

Репутация: нет
Всего: нет



Здравствуйте, 
подскажите в чем проблема, не хочет выводить буквы, вместо них всякую ерунду пишет, цифры - нормально. 
Спасибо.
Код

#include <windows.h>
#include <iostream>
#include <cstring>
#include <clocale>
using namespace std;

int main()
{
                
ShellExecute(NULL,TEXT("open"),TEXT("c:windows\\system32 \\cmd.exe"),NULL,NULL,SW_SHOWNORMAL); 

    INPUT it[1];
    memset(it,0,sizeof(INPUT));
 
                 it[0].type = INPUT_KEYBOARD;
                 it[0].ki.wVk = VK_RETURN;
                    
    Sleep(1000);

                SendInput(1,it, sizeof(INPUT));
      
    INPUT qwe[1];
    memset(login,0,sizeof(INPUT));

    
    qwe[0].type = INPUT_KEYBOARD;
    qwe[0].ki.wVk  = 'm';
    qwe[0].ki.dwFlags = 0;

                setlocale(LC_ALL, "English_United States.1252"); 

    SendInput(1,qwe, sizeof(INPUT));
      
        return 0;
}



Это сообщение отредактировал(а) winsent7 - 25.2.2011, 10:29
PM MAIL   Вверх
maint
Дата 25.2.2011, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 77
Регистрация: 12.5.2008

Репутация: нет
Всего: 2



Код

http://msdn.microsoft.com/en-us/library/x99tb11d%28v=vs.80%29.aspx


а вкратце
Цитата

If a valid locale and category are given, returns a pointer to the string associated with the specified locale and category. If the locale or category is invalid, returns a null pointer and the current locale settings of the program are not changed.

For example, the call

setlocale( LC_ALL, "English" );

sets all categories, returning only the string

English_United States.1252 


Это сообщение отредактировал(а) GremlinProg - 3.3.2011, 09:29
PM   Вверх
winsent7
Дата 25.2.2011, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 3.9.2010

Репутация: нет
Всего: нет



Цитата

setlocale( LC_ALL, "English" );


и так пробовал - то же самое, 
а также варианты NULL и "" вторым параметром - не помогает.

Это сообщение отредактировал(а) winsent7 - 25.2.2011, 11:25
PM MAIL   Вверх
xvr
Дата 25.2.2011, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 40
Всего: 223



Загадочная программа  smile Локаль чего она должна была поставить? И куда она не выводит, как должна?
Если вы думаете, что setlocale будет действовать на SendInput - то вы глубоко заблуждаетесь. Отправляйте эвенты в Unicode (см флажок KEYEVENTF_UNICODE тут)

PM MAIL   Вверх
winsent7
Дата 28.2.2011, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 3.9.2010

Репутация: нет
Всего: нет



xvr, спасибо, попробую разобраться, я только учусь smile  
PM MAIL   Вверх
winsent7
Дата 14.3.2011, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 3.9.2010

Репутация: нет
Всего: нет



Да, локаль здесь не нужна, надо только нужные символы в hex-коде написать и не забыть KEYEVENTF_KEYUP добавлять, если нужно несколько символов вывести, спасибо    
xvr за подсказку.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Системное программирование и WinAPI"
Fixin
GremlinProg
xvr
feodorv
  • Большое количество информации и примеров с использованием функций WinAPI можно найти в MSDN
  • Описание сообщений, уведомлений и примеров с использованием компонент WinAPI (BUTTON, EDIT, STATIC, и т.п.), можно найти в MSDN Control Library
  • Непосредственно, перед созданием новой темы, проверьте заголовок и удостоверьтесь, что он отражает суть обсуждения.
  • После заполнения поля "Название темы", обратите внимание на наличие и содержание панели "А здесь смотрели?", возможно Ваш вопрос уже был решен.
  • Приводите часть кода, в которой предположительно находится проблема или ошибка.
  • Если указываете код, пользуйтесь тегами [code][/code], или их кнопочными аналогами.
  • Если вопрос решен, воспользуйтесь соответствующей ссылкой, расположенной напротив названия темы.
  • Один топик - один вопрос!
  • Перед тем как создать тему - прочтите это .

На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы .


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема »


 




[ Время генерации скрипта: 0.0848 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.