![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Доброго времени суток! Очень нуждаюсь в вашей помощи...
Есть данный код: Код:
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 просто игнорируется, есть какие нибудь соображение? или же какая нибудь альтернатива? Заранее благодарен... |
|
#2
|
|||
|
|||
|
Цитата:
"ребята,функция keybd_event оставлена для совместимости,пользуйтесь SendInput" но ребятам же похрен, они могут только с форумов копипастить... зы на 8ке много еще чего не будет работать |
| Этот пользователь сказал Спасибо robt за это полезное сообщение: | ||
saylar_06 (08.06.2012)
| ||
|
#3
|
|||
|
|||
|
Цитата:
в общем перерылся... элементарно никак не могу въехать, очень нужна ваша помошь, заного изложу сути проблемы... Написал новый код: Код:
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, подскажите в чем может быть ещё проблема? |
|
#4
|
|||
|
|||
|
Цитата:
да чо угодно там может быть ,если в висте подсистему звука полность заменили, то логично что в 8ке изменена система в ввода, онаж под планшетники заточена при выхода финала все может измениться пока не выйдет офицального SDK для 8ки можно тока методом тыка делать |
| Этот пользователь сказал Спасибо robt за это полезное сообщение: | ||
saylar_06 (08.06.2012)
| ||
|
#5
|
|||
|
|||
|
robt, метод тыка - самый эффективный способ найти решение
![]() |
|
#6
|
|||
|
|||
|
Цитата:
это то понятно, но в Windows 8 открыв блокнот или другое приложение данный код работает, а вот в игре отказывается! а на Windows 7 он в игре тоже работает... |
|
#7
|
|||
|
|||
|
Цитата:
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
|||
|
|||
|
Цитата:
|
|
#10
|
|||
|
|||
|
Цитата:
В общем упорство и труд всё перетрут Просидев пол ночи, меня всё же осенило, проблему я решил, так что тему можно либо закрыть либо удалить, большое спасибо всем кто принял участие ![]() |
|
#11
|
||||
|
||||
|
saylar_06 ну так как же?
|
|
#12
|
|||
|
|||
|
люди, все очень просто дело было не в самом коде, а в Winodws 8, дело в том что практические любое действие oc блокирует (даже при выключеном UAC и SmartScreen) нужно было дать программе уровень администратора(не просто открыть от имени администратора) а зайти в Свойства-->Совместимость-->Изменить параметры для всех пользователей--> и поставить галочку Выполнять программу от имени администратора!
и вооля всё заработало! |