Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.06.2012, 17:27   #1
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

Доброго времени суток! Очень нуждаюсь в вашей помощи...

Есть данный код:

Код:
     hwndb := FindWindow(nil, PChar('Название окна'));
     if hwndb <> 0 then
      begin   Sleep(1000);
        label1.Caption:=label1.Caption+'go';
        keybd_event(69, 0, 0, 0);
        keybd_event(69, 0, KEYEVENTF_KEYUP, 0);
        //  Sleep(200);
        keybd_event(69, 0, 0, 0);
        keybd_event(69, 0, KEYEVENTF_KEYUP, 0);
        //  Sleep(200);
        keybd_event(87, 0, 0, 0);
        keybd_event(87, 0, KEYEVENTF_KEYUP, 0);
        //  Sleep(200);
        keybd_event(82, 0, 0, 0);
        keybd_event(82, 0, KEYEVENTF_KEYUP, 0);
        //  Sleep(200);
      end;
В общем то код рабочий если учитывать что на WIndows 7/XP он работает, но на Windows 8 просто игнорируется, есть какие нибудь соображение? или же какая нибудь альтернатива?

Заранее благодарен...

в общем перерылся... элементарно никак не могу въехать, очень нужна ваша помошь, заного изложу сути проблемы...

Написал новый код:
Код:
          Inp.Itype := INPUT_KEYBOARD;
          Inp.ki.wVk := VK_RETURN;
          Inp.ki.dwFlags := 0;
          SendInput(1, Inp, SizeOf(Inp));
            sleep(500);
          Inp.ki.dwFlags := KEYEVENTF_KEYUP;
          SendInput(1, Inp, SizeOf(Inp));
элементарно вроде бы всё, при его исполнении должен нажаться Enter, и всё работает на Windows 8 да и код из первого поста тоже работал, но увы в других риложениях (блокнот, браузер и т.д) я же пишу приложение для игры конкретнее для Warcraft III, что первый что второй код удачно работают на Windows 7 c Warcraft III но просто игнорируются при выполнении на WIndows 8, подскажите в чем может быть ещё проблема?

Последний раз редактировалось artemavd; 08.06.2012 в 20:55.
saylar_06 вне форума Ответить с цитированием
Старый 08.06.2012, 20:44   #2
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,551
По умолчанию

Какой смысл сейчас что-то делать под Windows 8, если она еще не вышла?
Arigato вне форума Ответить с цитированием
Старый 08.06.2012, 20:55   #3
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,206
По умолчанию

Точно такой же как и "чатанье" ТС.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 08.06.2012, 22:26   #4
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

в общем перерылся... элементарно никак не могу въехать, очень нужна ваша помошь, заного изложу сути проблемы...

Написал новый код:
Код:
          Inp.Itype := INPUT_KEYBOARD;
          Inp.ki.wVk := VK_RETURN;
          Inp.ki.dwFlags := 0;
          SendInput(1, Inp, SizeOf(Inp));
            sleep(500);
          Inp.ki.dwFlags := KEYEVENTF_KEYUP;
          SendInput(1, Inp, SizeOf(Inp));
элементарно вроде бы всё, при его исполнении должен нажаться Enter, и всё работает на Windows 8 да и код из первого поста тоже работал, но увы в других риложениях (блокнот, браузер и т.д) я же пишу приложение для игры конкретнее для Warcraft III, что первый что второй код удачно работают на Windows 7 c Warcraft III но просто игнорируются при выполнении на WIndows 8, подскажите в чем может быть ещё проблема?
saylar_06 вне форума Ответить с цитированием
Старый 09.06.2012, 11:02   #5
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

В общем упорство и труд всё перетрут Просидев пол ночи, меня всё же осенило, проблему я решил, так что тему можно либо закрыть либо удалить, большое спасибо всем кто принял участие
saylar_06 вне форума Ответить с цитированием
Старый 09.06.2012, 12:01   #6
Fe1ix
Новичок
Джуниор
 
Регистрация: 09.06.2012
Сообщений: 1
По умолчанию

а в чем дело то было?
Fe1ix вне форума Ответить с цитированием
Старый 10.06.2012, 09:26   #7
saylar_06
Пользователь
 
Регистрация: 01.12.2009
Сообщений: 46
По умолчанию

люди, все очень просто дело было не в самом коде, а в Winodws 8, дело в том что практические любое действие oc блокирует (даже при выключеном UAC и SmartScreen) нужно было дать программе уровень администратора(не просто открыть от имени администратора) а зайти в Свойства-->Совместимость-->Изменить параметры для всех пользователей--> и поставить галочку Выполнять программу от имени администратора!

и вооля всё заработало!
saylar_06 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перехватить нажатие клавиш в Windows? JoanM Win Api 15 31.05.2013 14:42
Эмуляция клавиш Desprado C# (си шарп) 1 11.01.2012 13:14
Эмуляция нажатия клавиш KamiMAN Общие вопросы Delphi 5 13.03.2011 06:24
эмуляция клавиш в g++ NiCola999 Общие вопросы C/C++ 2 08.07.2010 15:37
Эмуляция клавиш UnD)eaD)Snake Win Api 1 04.11.2007 18:07