Viktor1703
AutoIT Гуру
- Сообщения
- 1,535
- Репутация
- 413
Решил попробовать написать скин для приложения, но получилось всё примитивно,
хотелось бы посмотреть что Вы думаете по этому поводу, что можно добавить или
как лучше сделать без создания GUI в модуле, модуль работает посредством
StdinWrite, на не аккуратность прошу не обращать внимания, я его только что
начал писать.
Ваше приложение
Скиновый модуль
Для примера вот примитивный пример
хотелось бы посмотреть что Вы думаете по этому поводу, что можно добавить или
как лучше сделать без создания GUI в модуле, модуль работает посредством
StdinWrite, на не аккуратность прошу не обращать внимания, я его только что
начал писать.
Код:
#include <WindowsConstants.au3>
#include <WinAPIEx.au3>
$hForm = GUICreate("", 300, 200, -1, -1, $WS_SIZEBOX)
SkinSetHWnd($hForm, @ScriptDir & "\skin.exe")
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
EndSwitch
WEnd
Func SkinSetHWnd($hWnd, $hModule)
$iPid = Run($hModule, "", @SW_HIDE, 1)
StdinWrite($iPid, $hWnd)
EndFunc
Код:
#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <WinAPIEx.au3>
Global Const $SS_BITMAP = 0xE
Global Const $GWL_STYLE = -16
Global $sRead = ""
While 1
$sRead &= ConsoleRead()
If $sRead Then
GUISetSkin($sRead)
$sRead = ""
EndIf
WEnd
Func GUISetSkin($hWnd)
$hWnd = HWnd($hWnd)
$hPos = WinGetPos($hWnd)
$Img1 = GUICreate("", $hPos[2], $hPos[3], $hPos[0], $hPos[1], BitOR($WS_POPUP, $WS_VISIBLE, $SS_BITMAP), $WS_EX_MDICHILD, $hWnd)
$Bitmap1 = GUICtrlCreateIcon("", -1, 0, 0, $hPos[2], $hPos[3])
GUICtrlSetState($Bitmap1, $GUI_DISABLE)
GUICtrlSetImage($Bitmap1, @ScriptFullPath, 6000)
GUISetState()
_WinAPI_SetWindowLong($Img1, $GWL_STYLE, BitOR(_WinAPI_GetWindowLong($Img1, $GWL_STYLE), $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
While 1
If Not WinExists($hWnd) Then Exit
$sPos = WinGetPos($hWnd)
WinMove($Img1, "", $sPos[0], $sPos[1]+20, $sPos[2], $sPos[3])
GUICtrlSetPos($Bitmap1, 0, 0, $sPos[2], $sPos[3])
Wend
EndFunc
Для примера вот примитивный пример