Что нового

Вывод графики поверх всех окон

VadimKHL

Новичок
Сообщения
155
Репутация
0
Добрый день!

Возможно ли сделать средствами AutoIT вывод небольшого графического изображения (с прозрачным фоном), по верх всех окон?

По аналогии как на ноутбуках, когда включаешь тачпад или громкости регулируешь,
вылетаю графические значки по центру экрана, информируя пользователя о изменении состояния разных устройств?
 
Автор
V

VadimKHL

Новичок
Сообщения
155
Репутация
0
Пример не запускается ::smile:

[box title=ERROR]"C:\Users\VadimKHL\Desktop\Image_POP_UP\Pop-ups_Ex.au3" (64) : ==> Duplicate function name.:
Func _GDIPlus_GraphicsSetTextRenderingHint($hGraphics, $iTextRenderingHint)[/box]
 
A

Alofa

Гость
OffTopic:
VadimKHL сказал(а):
Пример не запускается...
Не удивительно, посмотрите для какой версии Autoit создавалась UDF.
Вот и получается:
VadimKHL сказал(а):
==> Duplicate function name.:
Func _GDIPlus_GraphicsSetTextRenderingHint($hGraphics, $iTextRenderingHint)
С тех пор данная функция вошла в релиз UDF функций Autoit по умолчанию.
Удалите функцию (не ее вызов, а тело самой функции) из скрипта и наслаждайтесь.
 
Автор
V

VadimKHL

Новичок
Сообщения
155
Репутация
0
Да, все заработало.
Код:
#Include <GDIPlus.au3>
#Include <Pop-ups.au3>

Opt('MustDeclareVars', 1)
Opt('TrayAutoPause', 0)

_GDIPlus_Startup()

Global $hImage1 = _GDIPlus_ImageLoadFromFile(@ScriptDir & '\Image2.png')
Global $hPopup1 = _Popup_Register()

HotKeySet('+1', '_Popup1') ; SHIFT+1

While 1
	Sleep(1000)
WEnd

_GDIPlus_Shutdown()

Func _Popup1()
	; Show or hide pop-up image ("Image2.png")
	If Not _Popup_IsActive($hPopup1) Then
		_Popup_Show($hPopup1, _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage1), 1, @DesktopWidth - 90, @DesktopHeight - 110, -1)
	Else
		_Popup_Hide($hPopup1)
	EndIf
EndFunc   ;==>_Popup1


Автор пишет что GDIPlus не требуется для UDF если просто показывать картинку, можете помочь убрать лишний код из данного примера.
 
A

Alofa

Гость
VadimKHL сказал(а):
... можете помочь убрать лишний код из данного примера.
Вы и сами не плохо справились. :smile:

VadimKHL сказал(а):
... Автор пишет что GDIPlus не требуется для UDF если просто показывать картинку...
Но так-то оно так, самой UDF библиотека GDIPlus не требуется. Но...
Но для работы к примеру той же функции "_Popup_Show()" в ее параметрах необходимо указать дескриптор Bitmap, а как его получить? В некоторых случаях в этом могут помочь функции из разряда _WinAPI...(почитайте FAQ по использованию ресурсов в AutoIt), ну а так GDIPlus вам в руки.
 
Автор
V

VadimKHL

Новичок
Сообщения
155
Репутация
0
Понял.
Всем спасибо за ответы!
Тема решена.
 
Верх