|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#31
|
||||
|
||||
Вы пробовали хоть РАЗ воспользоваться справкой или поиском? Мне не сложно ответить, но так вы никогда не научитесь ничего самостоятельно делать. Пока же ваше поведение напоминает сибаритство.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#32
|
|||
|
|||
Цитата:
да канечно вон скока вкладок в опере _http://s48.radikal.ru/i122/1107/f1/7f3c6487af2a.jpg |
#33
|
||||
|
||||
Цитата:
2. AlphaBlend 3. HWND_TOPMOST Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#34
|
|||
|
|||
Цитата:
всё нашёл как делать и вроде работает вот так сделал (точнее скапирывал=)) Код:
with form1 do SetWindowPos(Handle, HWND_TOPMOST, Left, Top, Width, Height, SWP_NOACTIVATE or SWP_NOMOVE or SWP_NOSIZE); |
#35
|
||||
|
||||
Всё правильно, в данном случае выполняются условия:
1. Сделать поверх всех (активных на данный момент) окон. 2. Не менять активность программы (если активна оставить активной, если нет соответственно нет) 3. Не перемещать 4. Не менять размер. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#36
|
|||
|
|||
Цитата:
оно так работает пока игра в оконом режими а когда её делаеш на весь экран то это непомагает вроде это тяжело сделать чтоб поверх игры было |
#37
|
||||
|
||||
Если имеется несколько окон с таким флагом (HWND_TOPMOST), то верхним будет то, что активировано последним. Игра скорее всего использует DirectX, а там не всегда этот фокус прокатывает.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#38
|
|||
|
|||
вот что я нашёл
было написано что эти стили которые выводяться поверх игр: Window Styles: WS_POPUP WS_VISIBLE WS_CLIPSIBLINGS Extended Styles: WS_EX_LEFT WS_EX_LTRREADING WS_EX_RIGHTSCROLLBAR WS_EX_TOPMOST WS_EX_TOOLWINDOW WS_EX_LAYERED куда мне название стиля вводить? делал так но поверх игры нечего невыводиться: Код:
procedure TForm1.Btn1Click(Sender: TObject); var Style : Longint; begin {старый стиль окна} Style:=GetWindowLong(Btn1.Handle,WS_VISIBLE); {меняем стиль окна} Style:=Style or WS_OVERLAPPEDWINDOW; SetWindowLong(Btn1.Handle,WS_VISIBLE, Style); {обновление окна (Invalidate не сработает)} SetWindowPos(Btn1.Handle, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE or SWP_NOZORDER or SWP_DRAWFRAME or SWP_NOACTIVATE); end; Последний раз редактировалось unity, 17.07.2011 в 02:54. |
#39
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#40
|
||||
|
||||
Цитата:
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#41
|
|||
|
|||
Код:
procedure TForm1.tmr1Timer(Sender: TObject); begin if getasynckeystate($71)<>0 then t:= PChar(edt1.Text); // считывает назавание окна из edt1 id:=FindWindow(nil,(t)); // узнаёт hwnd окна PostMessage(id,WM_KEYDOWN,vk_F1, 0); //посылает нажатие кнопки f1 окну PostMessage(id,WM_KEYUP,vk_F1, 0); // посылает отжатие кнопки f1 окну end; как сделать чтобесли я нажал 1 раз F2 то и в окно 1раз было послоно нажатиеи отжатие F1 (щас у меня после тогокак нажал 1раз F2 в окно посылаеться множество нажатий) Последний раз редактировалось unity, 17.07.2011 в 20:55. |
#42
|
||||
|
||||
PostMessage - послать сообщение с возможной потерей в дороге
SendMessage - послать и забыть, программа прерывается до ответа функции Попробуй вторую функцию. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#43
|
|||
|
|||
Цитата:
так вообще неработает я вотнашёл тока я незнаю как использавать (тоесть я знаю что нада в конце добавить код который делает так что клавиша уже ненажата): function GetAsyncKeyState(Key: Integer): Integer; Опpеделяет состояние виpтуальной клавиши. Паpаметpы: Key: Код виpтуальной клавиши. Возвpащаемое значение: Если установлен стаpший байт, клавиша Key находится в нажатом положении, а если младший - то клавиша Key была нажата после пpедыдущего вызова функции. как задавать младший байт? Последний раз редактировалось unity, 17.07.2011 в 21:41. |
#44
|
|||
|
|||
Цитата:
из палитры компонентов на вкладке стандарт выбери компонент TEdit и кинь куда нить на форму. Вот немного модифицированный вариант нажатия на кнопке: procedure TForm1.btn1Click(Sender: TObject); begin if d <> StrToInt(Edit1.Text) then begin d:= StrToInt(Edit1.Text) Tmr1.Interval:= d; // интервал Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл end else begin Tmr1.Interval:= d; // интервал Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл end; end; |
#45
|
|||
|
|||
из палитры компонентов на вкладке стандарт выбери компонент TEdit и кинь куда нить на форму.
Вот немного модифицированный вариант нажатия на кнопке: procedure TForm1.btn1Click(Sender: TObject); begin if d <> StrToInt(Edit1.Text) then begin d:= StrToInt(Edit1.Text) Tmr1.Interval:= d; // интервал Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл end else begin Tmr1.Interval:= d; // интервал Tmr1.Enabled:= Not(Tmr1.Enabled); // вкл / выкл end; end; |