Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > в чем ошибка? blockinput()


Автор: cmygeHm 21.4.2009, 18:47
клиент передает серверу номер команды, тот проверяет и выбирает что сделать.


Код

if (result1==EditLogin->Text && result2==EditPassword->Text)
    {
        if (result3 == "1")SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1);
        if (result3 == "2")SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);
        if (result3 == "4")BlockInput(false);
        if (result3 == "3")BlockInput(true);
    }


BlockInput(false) и BlockInput(true) - не срабатывают.
хотя если просто серверу добавить кнопку, которая вызовет функцию BlockInput(true). то срабатывает.

помогите пожалуйста.

Автор: zim22 21.4.2009, 18:52
Цитата(cmygeHm @  21.4.2009,  18:47 Найти цитируемый пост)
BlockInput(false) и BlockInput(true) - не срабатывают.

что значит "не срабатывают"? внутрь блока if не заходит?
что за тип у переменной result3?

Автор: cmygeHm 21.4.2009, 18:56
переменная rusult3 типа ансистринг

монитор то включается и выключается, а эти две нижние не срабатывают.

Автор: zim22 21.4.2009, 18:59
Цитата(cmygeHm @  21.4.2009,  18:56 Найти цитируемый пост)
монитор то включается и выключается, а эти две нижние не срабатывают.

что значит "не срабатывают"? внутрь блока if не заходит?

Автор: cmygeHm 21.4.2009, 19:34
if (result1==EditLogin->Text && result2==EditPassword->Text)
    {
        //сюда заходит
        if (result3 == "1")SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, -1); // если 1 то срабатывает эта функция
        if (result3 == "2")SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, 2);  // если 2 то срабатывает эта функция
        if (result3 == "4")BlockInput(false);  // если 3 эта функция не срабатывает
        if (result3 == "3")BlockInput(true);   // если 4 эта функция не срабатывает
    }

Автор: Soah 21.4.2009, 19:44
    if (result3 == "4")BlockInput(false);  // если 3 эта функция не срабатывает
    if (result3 == "3")BlockInput(true);   // если 4 эта функция не срабатывает

Автор: zim22 21.4.2009, 19:57
cmygeHm, поставьте breakpoint и пройдитесь дебагером.

Автор: cmygeHm 21.4.2009, 20:23
Цитата(Soah @  21.4.2009,  19:44 Найти цитируемый пост)
   
if (result3 == "4")BlockInput(false);  // если 3 эта функция не срабатывает   
 if (result3 == "3")BlockInput(true);   // если 4 эта функция не срабатывает



я ошибся когда писал. на самом деле все именно так как вы и подразумевали, где три - там три, где четыре- там четыре

Автор: cmygeHm 23.4.2009, 18:39
вобщем когда пошагово - срабатывает BlockInput() и вырубает клаву и мышь, а когда от клиента серверу отправляется, то в логе билдера видно что создается поток и сразу уже умирает. вот. как сделать чтобы он не умирал? может создавть поток самому? я попробывал и всеравно  тот поток умер, может что неправильно сделал?

Автор: zim22 23.4.2009, 19:10
Цитата(cmygeHm @  23.4.2009,  18:39 Найти цитируемый пост)
 может что неправильно сделал?

может

Автор: cmygeHm 25.4.2009, 05:30
ну подскажите тогда, плиз  smile 

Автор: zim22 25.4.2009, 07:20
cmygeHm, у вас вопросы по http://forum.vingrad.ru/forum/c-c++network.html И http://forum.vingrad.ru/forum/c-c++system-programming-WinAPI.html. там и спрашивайте.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)