1

Тема: AHK: Отображение элементов поверх полноэкранных приложений

Здравствуйте.
Обнаружил в интернете возможность выносить какие-то вещи, навроде окон или текста - прямо поверх полноэкранных приложений. Вот здесь: http://agrippa1994.github.io/DX9-Overlay-API/
Но никак не пойму как он работает.

При запуске файла hello world.ahk - пишет "The dll-file couldnt be loaded!"
Подскажите - как же его запустить ?

Скрипт выглядит так:


/*
DX9-Overlay-API AutoHotkey "Hello World" script

By default, injects to the GFXTest application by evolution536 and learn_more from here: http://www.unknowncheats.me/forum/general-programming-and-reversing/105528-gfxtest-lightweight-graphics-testing-application.html

Usage:
1) Install Autohotkey (http://ahkscript.org) - BE SURE TO INSTALL ANSI 32-bit version!!
2) Change PROC_NAME to desired process name
3) Run script and DX application (in any order)

Hitting ALT+X will exit the script, hitting ALT+T will toggle the text on/off
*/

#SingleInstance, force
#NoEnv

PROC_NAME := "GFXTest.exe"

overlay_ids := {}
text_visible := 1

#include ..\..\include\ahk\overlay.ahk
OnExit, GuiClose

SetParam("notepad.exe", PROC_NAME)

WatchProcess(PROC_NAME)

return

; Quit script hotkey: ALT+X
~!x::
GuiClose:
	soundbeep
	DestroyOverlays()
	ExitApp
	return

; Toggle text overlay hotkey - ALT+T
~!t::
	text_visible := 1 - text_visible
	TextSetShown(overlay_ids.text,text_visible)
	return

; Watch process and add overlays when it starts running.
WatchProcess(name){
	global overlay_ids
	static proc_running := 0

	Loop {
		ifwinexist, ahk_exe %name%
		{
			if (!proc_running){
				proc_running := 1
				overlay_ids := CreateOverlays()
			}
		} else {
			if (proc_running){
				proc_running := 0
				overlay_ids := {}
			}
		}
		Sleep 100
	}
}

; Add overlays to application
CreateOverlays(){
	ret := {}
	ret.text := TextCreate("Arial", 25, false, false, 100, 100, 0xFFFFFFFF, "Hello {ffff00}World", true, true)
	ret.box := BoxCreate(200, 200, 200, 200, 0xFFFFFFFF, true)
	return ret
}

; Remove overlays from application
DestroyOverlays(){
	DestroyAllVisual()
}

2

Re: AHK: Отображение элементов поверх полноэкранных приложений

Прочитали Usage?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3 (изменено: Snegovik2, 2020-02-26 02:08:41)

Re: AHK: Отображение элементов поверх полноэкранных приложений

Да, прочитал.
Все равно не запускается скрипт.

4 (изменено: teadrinker, 2020-02-26 02:11:06)

Re: AHK: Отображение элементов поверх полноэкранных приложений

У меня запустился, но попробовать не на чем. Если сообщение "The dll-file couldnt be loaded!" — возможно не совпадает битность AHK и dll, AHK должен быть 32 Ansi.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

5

Re: AHK: Отображение элементов поверх полноэкранных приложений

У меня AHK наверное 64.
На нем можно как-нибудь запустить ?

6 (изменено: teadrinker, 2020-02-26 02:24:53)

Re: AHK: Отображение элементов поверх полноэкранных приложений

Прочитали Usage?

BE SURE TO INSTALL ANSI 32-bit version!!

У вас в папке, где установлен AHK, возможно есть AutoHotkeyA32.exe файл. Вот им можно запустить.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

7

Re: AHK: Отображение элементов поверх полноэкранных приложений

Есть файл AutoHotkeyA32.exe

Щелкаю по нему - открывается справка.
Как с его помощью запустить файл ?

8

Re: AHK: Отображение элементов поверх полноэкранных приложений

Переместить например .ahk на AutoHotkeyA32.exe.

Win10: LTSC (21H2); AHK: ANSI (v1.1.36.02)

9

Re: AHK: Отображение элементов поверх полноэкранных приложений

Это только для directx9 игр.

10

Re: AHK: Отображение элементов поверх полноэкранных приложений

Phoenixxx_Czar, я переместил - но ничего не произошло.
Текст не отобразился.

11

Re: AHK: Отображение элементов поверх полноэкранных приложений

Понятное дело.
Даже если бы вы написали собственный блокнот на директикс, то всё-равно у вас ничего не получилось бы.

SetParam("notepad.exe", PROC_NAME)

12

Re: AHK: Отображение элементов поверх полноэкранных приложений

Malcev, ясно.

Запускаю скрипт.
Открываю полноэкранный процесс Battlebrothers.exe

SetParam("BattleBrothers.exe", PROC_NAME)

Жму Alt+T
Ничего не происходит.
Текст "Hello World" - не появляется.

13

Re: AHK: Отображение элементов поверх полноэкранных приложений

У вас в коде написано где надо вписывать приложение:

PROC_NAME := "GFXTest.exe"

Эту строку менять не нужно.

SetParam("process", PROC_NAME)

14 (изменено: Snegovik2, 2020-02-27 23:32:59)

Re: AHK: Отображение элементов поверх полноэкранных приложений

Понятно.
Теперь написал:

PROC_NAME := "BattleBrothers.exe"

Результата - тоже никакого нет.
Нажимаю Alt+T ничего не происходит.

15

Re: AHK: Отображение элементов поверх полноэкранных приложений

Пробуйте на тестовой программе, на которую ссылается автор.

16

Re: AHK: Отображение элементов поверх полноэкранных приложений

Где ее достать ?

17

Re: AHK: Отображение элементов поверх полноэкранных приложений

Вы перед тем как запускать код, читаете, что в нем написано?

18

Re: AHK: Отображение элементов поверх полноэкранных приложений

Программа GFXTest.exe не запускается

19

Re: AHK: Отображение элементов поверх полноэкранных приложений

Тогда бросьте эту затею.

20

Re: AHK: Отображение элементов поверх полноэкранных приложений

Нет.
Бросать эту затею - никак нельзя.

21

Re: AHK: Отображение элементов поверх полноэкранных приложений

Ну тогда создавайте платный заказ.