![]() |
|
|
Регистрация | << Правила форума >> | 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) нужно было дать программе уровень администратора(не просто открыть от имени администратора) а зайти в Свойства-->Совместимость-->Изменить параметры для всех пользователей--> и поставить галочку Выполнять программу от имени администратора!
и вооля всё заработало! |