procedure TForm1.Timer1Timer(Sender: TObject); var h:HWND; begin h:= FindWindow('TaskSwitcherWnd','Переключение задач'); if h<>0 then ShowWindow(h,SW_MINIMIZE); end;
таким образом можно) только не забудте поставить таймер на минимум на семёрке 100% работает на других ос незнаю(нет возм проверить)
Сообщение отредактировал oke - Суббота, 26.05.2012, 17:40
oke ты же читал эту тему Диспетчер задач, там вариант эдентичный твоему уже был представлен, смысл в новой теме?
в любом случае сейчас у многих более менее прошареных пользователей есть еще проги открывающие процессы по мимо диспетчера задач, не говоря уже о том что сами разработчики Антивирусов в свои продукты начали пихать менеджеры процессов, так что такой код уже в ближайшем будующем будет неактуален, я бы даже сказал уже не актуален, vvova15 писал на счет перехвата API функций, юзайте лучше перехват, больше пользы!!!
(Абсолютно не по теме, еще раз прошу прощения!!!)
Сообщение отредактировал xXxSh@dowxXx - Суббота, 26.05.2012, 19:47
извините,что влажу,но у меня вопрос: как мне сделать имитацию нажатия ctrl+x по заданному количеству раз (в Tedit)? Просто неполучаеться у меня для одной игры создать такое вот приложение...
oke ты же читал эту тему Диспетчер задач, там вариант эдентичный твоему уже был представлен, смысл в новой теме? в любом случае сейчас у многих более менее прошареных пользователей есть еще проги открывающие процессы по мимо диспетчера задач, не говоря уже о том что сами разработчики Антивирусов в свои продукты начали пихать менеджеры процессов, так что такой код уже в ближайшем будующем будет неактуален, я бы даже сказал уже не актуален, vvova15 писал на счет перехвата API функций, юзайте лучше перехват, больше пользы!!!
не ну как бы причем здесь "Деспетчер задач" и другие менеджеры процессов ведь я не про него имел ввиду так что к данной теме про дипетчер задач моя тема не имеет отношения
Сообщение отредактировал oke - Суббота, 26.05.2012, 18:29
извините,что влажу,но у меня вопрос: как мне сделать имитацию нажатия ctrl+x по заданному количеству раз (в Tedit)? Просто неполучаеться у меня для одной игры создать такое вот приложение...
Code
var I:integer; L:hwnd; begin L:= findwindow('класс окна','имя окна'); for i:=1 to StrToInt(Edit1.Text) do SendMessage(L,WM_KEYUP ,VK_CONTROL, MakeLong(0, MapVirtualKey(VK_CONTROL, 0))); SendMessage(L,WM_KEYUP ,ord(x), MakeLong(0, MapVirtualKey(ord(x), 0))); SendMessage(L,WM_KEYDOWN ,VK_CONTROL, MakeLong(0, MapVirtualKey(VK_CONTROL, 0))); SendMessage(L,WM_KEYDOWN ,ord(x), MakeLong(0, MapVirtualKey(ord(x), 0))); end;
не ну как бы причем здесь "Деспетчер задач" и другие менеджеры процессов ведь я не про него имел ввиду sad так что к данной теме про дипетчер задач моя тема не имеет отношения
Тьфу блин, ЁмаЁ Приношу свои извинения, после суток на работе запаренный совсем, не разглядел твой код сначала, это уже моя вина,все правильно у тебя, держи +
Тьфу блин, ЁмаЁ Приношу свои извинения, после суток на работе запаренный совсем, не разглядел твой код сначала, это уже моя вина,все правильно у тебя, держи +
Дата: Понедельник, 28.05.2012, 08:33 | Сообщение # 8
Продвинутый
Зарегистрирован: 28.01.2010
Группа: Пользователи
Сообщений: 263
Статус: Offline
oke, пасиба,что привел пример,но он не заработал( вот,просто нужно сделать прожку-кнопконажимальщик для игры Mount&Blade: Епоха Турниров (мод дипломатия гамаю),а там при включении читов чтобы войска улучшить надо контрол+х дофига клацать(( пальцы болят а толку мало((
Дата: Понедельник, 28.05.2012, 11:11 | Сообщение # 9
Авторитетный
Зарегистрирован: 22.01.2012
Группа: Модераторы
Сообщений: 702
Статус: Offline
На сколько мне известно,сейчас во многих играх простая эмуляция нажатия клавишь не поможет,этот вопрос уже поднимался в одной из тем,хотя некоторые игры все же позволяют обрабатывать простые методы программного нажатия клавишь,я думаю у меня есть код который тебе подойдет,но так как я сейчас на работе,не имею возможности тебе его представить,дома буду выложу...
На сколько мне известно,сейчас во многих играх простая эмуляция нажатия клавишь не поможет,этот вопрос уже поднимался в одной из тем,хотя некоторые игры все же позволяют обрабатывать простые методы программного нажатия клавишь,я думаю у меня есть код который тебе подойдет,но так как я сейчас на работе,не имею возможности тебе его представить,дома буду выложу...
что то типо этого слышал только про мышку но про клавиатуру все вроде норм робит
var h:hwnd; p:pchar; mk:Cardinal; begin h:=GetWindow(GetForegroundWindow,GW_HWNDFIRST); getmem(p,2000); GetWindowText(h,p,mk); //вместо "Безымянный - Блокнот" пишешь название окна своего приложения while (pos('Безымянный - Блокнот',p)=0)and(h<>0) do begin h:=GetWindow(h,GW_HWNDNEXT); GetWindowText(h,p,mk); end; If (h <> 0 )then BringWindowToTop(h); end;
//так мы сделаем активным окно твоего приложения
var i: Integer; begin for i := 1 to 200 do begin keybd_event(VK_LCONTROL, 0, 0, 0); //Нажатие левого Ctrl. keybd_event(Ord('X'), 0, 0, 0); //Нажатие 'x'. Sleep(10); end; keybd_event(Ord('X'), 0, KEYEVENTF_KEYUP, 0); //Отпускание 'x'. keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0); //Отпускание левого Ctrl. end;
//а так мы вызываем цикл из 200 нажатий CTRL+X
конечно это немного быдлокод получился, по хорошему как мне кажется нужно отдельно нажать Ctrl потом клацать Х
Сообщение отредактировал xXxSh@dowxXx - Пятница, 01.06.2012, 21:18