1 (изменено: Dworkin, 2012-07-19 04:31:23)

Тема: AHK: Нарисованные линии поверх окна

Здравствуйте. Помогите пожалуйста нарисовать линии вот таким образом с помощью AHK, если это возможно

http://s54.radikal.ru/i143/1207/63/d7b6bd4d83ae.png

и чтобы такое изображение отображалось по середины экрана в игре. Разрешение в игре 800x600.

2

Re: AHK: Нарисованные линии поверх окна

Нашел у вас на форуме макрос и на его основе сделал как хотел

drawxhair(424,240)
Return

drawXhair(xcoord,ycoord)
{
 loop
  {
    Splashimage 1:,% "CW00FF00 B W100 H1 Y" ycoord "X" xcoord
    Splashimage 2:,% "CW00FF00 B W100 H1 Y" ycoord "X" xcoord-100
    Splashimage 3:,% "CW00FF00 B H20 W1 X" xcoord "Y" ycoord-10
        Splashimage 4:,% "CW00FF00 B H20 W1 X" xcoord-25 "Y" ycoord-10
        Splashimage 5:,% "CW00FF00 B H20 W1 X" xcoord+25 "Y" ycoord-10
    Splashimage 6:,% "CW00FF00 B H40 W1 X" xcoord+50 "Y" ycoord-20
        Splashimage 7:,% "CW00FF00 B H40 W1 X" xcoord-50 "Y" ycoord-20
        Splashimage 8:,% "CW00FF00 B H40 W1 X" xcoord-100 "Y" ycoord-20
        Splashimage 9:,% "CW00FF00 B H40 W1 X" xcoord+100 "Y" ycoord-20
        sleep 5
  }
}

но он мигает, а это отвлекает и даже мешает. Можно как то сделать чтобы оно хотя бы не так часто мигало в игре?

3

Re: AHK: Нарисованные линии поверх окна

http://img35.imageshack.us/img35/8017/d7b6bd4d83ae.png

Path:="c:\d7b6bd4d83ae.png"

#If UseOnce:=True And UseOnce=""

Enter::
   Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow
   Gui, Color, FE0000
   WinSet, TransColor, FE0000
   Gui, Add, Picture,, % Path
   Gui, Show, % "x"(A_ScreenWidth//2)-(188/2)
            .  " y"(A_ScreenHeight//2)-(57//2)
   Return

4

Re: AHK: Нарисованные линии поверх окна

Делаю рисунок и сохраняю его с названием d7b6bd4d83ae и расширением png по такому пути c:\
Когда пытаюсь запустить скрипт то пишет ошибку
http://i058.radikal.ru/1207/31/e4e0190728f7.png

5

Re: AHK: Нарисованные линии поверх окна

Обновите интерпретатор до последней версии.

6

Re: AHK: Нарисованные линии поверх окна

http://s40.radikal.ru/i090/1207/96/9d7af4bfcb03.png
То же самое происходит, если задать координаты Gui через переменные, значение которым вычислять с использованием "/", - как ошибочная все равно указывается та же строка "Gui, Show". Другие операции деления в скрипте, если они не связаны с вычислением координат Gui, ошибки не вызывают.
Стоит заменить (188/2) на (188//2) или (99) или (33*3) - все работает.

Я в шоке, мой гуманитарий головного мозга прогрессирует ???

BIG BROTHER IS WATCHING YOU.

7

Re: AHK: Нарисованные линии поверх окна

Обновите интерпретатор до последней версии.

1.1.08.00 - July 14, 2012 пишет:

Changed Gui Show to allow floating-point numbers.

8

Re: AHK: Нарисованные линии поверх окна

Упс, "гляжу в книгу, вижу фигу" .
Спасибо, так бы и не заметил обновления.

BIG BROTHER IS WATCHING YOU.

9 (изменено: Dworkin, 2012-07-20 19:27:21)

Re: AHK: Нарисованные линии поверх окна

Обновил. Скрипт запускается. Рисунок появляется при нажатии Enter, но когда захожу в игру, запускаю скрипт и нажимаю Enter то игру сворачивает, а когда разворачиваю то рисунка там не видно. В винде рисунок видно.

10

Re: AHK: Нарисованные линии поверх окна

Запускайте игру в оконном режиме.

11

Re: AHK: Нарисованные линии поверх окна

Запускаю в оконном режиме, появляется рисунок, но окно игры на задний план сразу и когда я активирую окно то рисунок исчезает.
Кстати спасибо большое за рабочий скрипт)

12

Re: AHK: Нарисованные линии поверх окна

@Dworkin

Запускайте игру в оконном режиме.

Path:="c:\d7b6bd4d83ae.png"
OnExit, ExitScript

#If UseOnce:=True And UseOnce=""

Enter::
   WinGetPos, X, Y, W, H, % "ahk_id"hWnd:=WinActive("A")
   WinMove, % "ahk_id"hWnd,, 0, 0, A_ScreenWidth, A_ScreenHeight
   WinSet, Style, -0xC00000, % "ahk_id"hWnd
   Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow HwndGUIhWnd
   Gui, Color, FE0000
   WinSet, TransColor, FE0000
   Gui, Add, Picture,, % Path
   Gui, Show, % "x"(A_ScreenWidth//2)-(188//2)
             . " y"(A_ScreenHeight//2)-(57//2)
   WinSet, ExStyle, +0x80020, % "ahk_id"GUIhWnd
   WinActivate, % "ahk_id"hWnd
   Return

ExitScript:
   WinMove, % "ahk_id"hWnd,, X, Y, W, H
   WinSet, Style, +0xC00000, % "ahk_id"hWnd
   ExitApp

13

Re: AHK: Нарисованные линии поверх окна

Хм. Захожу в игру в окном режиме, запускаю скрипт, в игре нажимаю ентер, игра становиться в оконном режиме на весь экран, мигает рисунок от скрипта и все...рисунок не видно, ну хоть игра в переднем плане остаеться

14

Re: AHK: Нарисованные линии поверх окна

Добавьте в код WinSet, AlwaysOnTop, Off:

  ... 
   WinSet, Style, -0xC00000, % "ahk_id"hWnd
   WinSet, AlwaysOnTop, Off, % "ahk_id"hWnd
   Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow HwndGUIhWnd
...

15

Re: AHK: Нарисованные линии поверх окна

Grey пишет:

Добавьте в код WinSet, AlwaysOnTop, Off:

  ... 
   WinSet, Style, -0xC00000, % "ahk_id"hWnd
   WinSet, AlwaysOnTop, Off, % "ahk_id"hWnd
   Gui, -Caption +AlwaysOnTop +Lastfound +ToolWindow HwndGUIhWnd
...

Спасибо огромное, теперь нормально заработало)
Еще один маленький вопросик если можно). Как можно сделать прозрачный фон(линии видно, а белое вокруг нет)?

16

Re: AHK: Нарисованные линии поверх окна

Ну а мой рисунок из третьего поста, зачем по Вашему я в него альфа-канал добавил и выложил?

17

Re: AHK: Нарисованные линии поверх окна

я примерно сделал рисунок, а теперь когда все работает я хотел бы сделать другой рисунок более ровный)
Подскажите пожалуйста в какой программе можно убрать фон как вы?

18

Re: AHK: Нарисованные линии поверх окна

Пользуюсь Adobe Photoshop.

19 (изменено: Dworkin, 2012-07-22 16:05:01)

Re: AHK: Нарисованные линии поверх окна

Скажи пожалуйста как поменять координаты чтобы рисунок был на таких координатах 424,240?

20

Re: AHK: Нарисованные линии поверх окна

Это координаты в игре при разрешении 800x600

21

Re: AHK: Нарисованные линии поверх окна

...
   Gui, Show, % "x"(A_ScreenWidth//2)-(188//2)
             . " y"(A_ScreenHeight//2)-(57//2)
...

Тут всё, что нужно.