GUI Skinning Methods

Post your working scripts, libraries and tools for AHK v1.1 and older
ruespe
Posts: 26
Joined: 09 Nov 2013, 04:47

Re: GUI Skinning Methods

19 Feb 2015, 09:43

Soft wrote:@lblb / oh same for me, the black box appears while resizing. I will figure it out. Thanks for the report
With me, the black box appears always, not only while resizing, but only with Aero-Designs. Is there anything, what can be done to eliminate this?

Btw, with

Code: Select all

DllCall(a_scriptdir . "\USkin.dll" . "\USkinExit")
DllCall(a_scriptdir . "\USkin.dll" . "\USkinInit", Int,0, Int,0, AStr,_Skin)
you can change the skin while script is running. Unfortunately every already existing windows (GUI, MsgBox, Requester...) will change their design as well, not only those, which appear after that call. I coudn't find a way to only touch new windows (I tried to switch back to Windows-standard before calling a requester).
User ahk new

Re: GUI Skinning Methods

13 Mar 2017, 14:35

Hi AHK


How can I use this script in windows 7, 64 bit ,version v1.1.22.07?

Somebody have USkin.dll for 64 Bit?

Thanks in advance
USER
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

13 Mar 2017, 19:58

I have 32bit here. I don't know if 64bit is available.
https://autohotkey.com/joe_df/autohotke ... e-joedf.7z
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
hot hot 85
Posts: 18
Joined: 27 Dec 2015, 19:34

Re: GUI Skinning Methods

13 Mar 2017, 22:25

Hi Joedf

Thanks for your quickly answer , do you have SkinSharp.dll for 64 Bit system?


Thanks A lot
Hot
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

13 Mar 2017, 23:31

I do not :(
Maybe try the 32bit? or download one from here? http://www.skinsharp.com/htdocs/en/products.htm#
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

14 Mar 2017, 04:12

Why does this here not show one style after the other?
Only the first is applied, the others dont change the style...

Code: Select all

#NoEnv
#SingleInstance force

stylearray:=Object()

Loop,%A_ScriptDir%\styles\*.msstyles
{
	stylearray.insert(A_LoopFilename)
}


;SkinForm(Apply, A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\Ayofe.msstyles")
OnExit, GetOut
Gosub, Gui





for key, value in stylearray
{
	msgbox Wende an: %value%
	Gui, Destroy
	SkinForm(Apply, A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . value)
	Gosub, Gui
}
return

GetOut:
GuiClose:
Gui, Hide
SkinForm(0)
ExitApp
return

SkinForm(Param1 = "Apply", DLL = "", SkinName = ""){
	if(Param1 = Apply){
		DllCall("LoadLibrary", str, DLL)
		DllCall(DLL . "\USkinInit", Int,0, Int,0, AStr, SkinName)
	}else if(Param1 = 0){
		DllCall(DLL . "\USkinExit")
		}
}


Gui:
Gui, add, button,xm w100 h40 , Style ändern
Gui, add, edit, xm y+20 w100 h20, Edit
Gui, add, listbox,xm y+20, ListBox
Gui, add, checkbox,xm y+20, checkbox
Gui, add, DDL, xm y+20, DropDownList
Gui, Show, AutoSize, Test
Return
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

14 Mar 2017, 04:52

sorry, got it:

Code: Select all

#NoEnv
#SingleInstance force

stylearray:=Object()
Loop,%A_ScriptDir%\styles\*.msstyles
	stylearray.insert(A_LoopFilename)

OnExit, GetOut
for key, value in stylearray
{
		derzeitstyle:=value
		SkinForm(Apply, A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . derzeitstyle)
		Gosub, Gui
		SkinForm("0", A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . derzeitstyle)		
}

GetOut:
GuiClose:
Gui, Hide
SkinForm(0)
ExitApp
return

SkinForm(Param1 = "Apply", DLL = "", SkinName = ""){
	if(Param1 = Apply){
		DllCall("LoadLibrary", str, DLL)
		DllCall(DLL . "\USkinInit", Int,0, Int,0, AStr, SkinName)
	}else if(Param1 = 0){
		DllCall(DLL . "\USkinExit")
		}
}


Gui:
Gui, add, button,xm w100 h40 gweiter, Style ändern
Gui, add, edit, xm y+20 w100 h20, Edit
Gui, add, listbox,xm y+20, ListBox
Gui, add, checkbox,xm y+20, checkbox
Gui, add, DDL, xm y+20, DropDownList
Gui, Show, w300, %derzeitstyle%
WinWaitClose,%derzeitstyle%
Return

Weiter:
Gui, Destroy
Return
Does someone know how to change it so that I don´t need WinWaitClose,%derzeitstyle% ?
Btw: SkinForm(0) doesnt work for me.
But
SkinForm("0", A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . derzeitstyle)
works.....
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

14 Mar 2017, 10:24

I don't know... It doesn't seem to be always working :/
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

14 Mar 2017, 10:27

Ok, and how about the WinWaitClose,%derzeitstyle%?
Do you know how to do it better so I dont need it?
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

14 Mar 2017, 20:27

Code: Select all

#NoEnv
#SingleInstance force

stylearray:=Object()
Loop,%A_ScriptDir%\styles\*.msstyles
	stylearray.insert(A_LoopFilename)

OnExit, GetOut
for key, value in stylearray
{
		derzeitstyle:=value
		SkinForm(Apply, A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . derzeitstyle)
		Gosub, Gui
		while (1) 
		{
			if (GuiOpen)
				Sleep, 500
			else
				break
		}
		SkinForm("0", A_ScriptDir . "\USkin.dll", A_ScriptDir . "\styles\" . derzeitstyle)		
}

GetOut:
Gui, Hide
SkinForm(0)
ExitApp
return

SkinForm(Param1 = "Apply", DLL = "", SkinName = ""){
	if(Param1 = Apply){
		DllCall("LoadLibrary", str, DLL)
		DllCall(DLL . "\USkinInit", Int,0, Int,0, AStr, SkinName)
	}else if(Param1 = 0){
		DllCall(DLL . "\USkinExit")
		}
}


Gui:
	Gui, add, button,xm w100 h40 gweiter, Style ändern
	Gui, add, edit, xm y+20 w100 h20, Edit
	Gui, add, listbox,xm y+20, ListBox
	Gui, add, checkbox,xm y+20, checkbox
	Gui, add, DDL, xm y+20, DropDownList
	Gui, Show, w300, %derzeitstyle%
	GuiOpen := 1
Return

GuiClose:
Weiter:
	Gui, Destroy
	GuiOpen := 0
Return
Here's a time-based method. I don't much time at the moment. sorry for the lack of a better solution, event-based would be much better
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

15 Mar 2017, 02:56

ok thanks. I thougt there would be a better way like just a return or so instead of waiting until the dialog closes.
But I think perhaps there isnt one.
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

15 Mar 2017, 03:36

Here you can preview both, she and msstyles:

Code: Select all

#NoEnv
#SingleInstance force

OnExit, GetOut

stylearray:=Object()
Loop,%A_ScriptDir%\styles\*.msstyles
	stylearray.insert(A_LoopFilename)
Loop,%A_ScriptDir%\styles_she\*.she
	stylearray.insert(A_LoopFilename)
for key, value in stylearray
{
		derzeitstyle:=value
		SkinForm(Apply, A_ScriptDir . "\styles\" . derzeitstyle)
		Gosub, Gui
		SkinForm("0", A_ScriptDir . "\styles\" . derzeitstyle)		
		
}


GetOut:
GuiClose:
Gui, Hide
SkinForm(0)
ExitApp
return

SkinForm(Param1 = "Apply", SkinName = ""){
	IfInstring,SkinName,`.she
	{
		Dll:=A_ScriptDir . "\SkinH_El.dll"
		if(Param1 = Apply){
			DllCall("LoadLibrary", str, DLL)
			DllCall(DLL . "\SkinH_AttachEx", AStr,SkinName, Str,"mhgd")
		}else if(Param1 = 0){
			DllCall(DLL . "\USkinExit")
			}
	}
	else
	{
		Dll:=A_ScriptDir . "\USkin.dll"
		if(Param1 = Apply){
			DllCall("LoadLibrary", str, DLL)
			DllCall(DLL . "\USkinInit", Int,0, Int,0, AStr, SkinName)
		}else if(Param1 = 0){
			DllCall(DLL . "\USkinExit")
			}
	}
}



Gui:
Gui, add, button,xm w100 h40 gweiter, Style ändern
Gui, add, edit, xm y+20 w100 h20, Edit
Gui, add, listbox,xm y+20, ListBox
Gui, add, checkbox,xm y+20, checkbox
Gui, add, DDL, xm y+20, DropDownList
Gui, Show, w300, %derzeitstyle%
WinWaitClose,%derzeitstyle%
Return

Weiter:
Gui, Destroy
Return
All .she and msstyles have to be in A_Scriptdir\styles.
Both dlls Uskin.dll and SkinH_El.dll have to be in A_Scriptdir.
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

15 Mar 2017, 07:31

Seems nice :+1:
Do both USkin and SkinSharp work for you?
It doesn't always work for me... Are you using ahk 32bit?
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
aaffe
Posts: 192
Joined: 16 Jan 2014, 04:23

Re: GUI Skinning Methods

15 Mar 2017, 08:20

Youre right. They dont always both work. When I change the order of inserting into the array then the first one works, the second doesnt always. Dont know why....
User avatar
joedf
Posts: 8937
Joined: 29 Sep 2013, 17:08
Location: Canada
Contact:

Re: GUI Skinning Methods

16 Mar 2017, 06:50

That's weird... :think:
Image Image Image Image Image
Windows 10 x64 Professional, Intel i5-8500, NVIDIA GTX 1060 6GB, 2x16GB Kingston FURY Beast - DDR4 3200 MHz | [About Me] | [About the AHK Foundation] | [Courses on AutoHotkey]
[ASPDM - StdLib Distribution] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library]
jmj1650
Posts: 1
Joined: 08 Jul 2017, 08:43

Re: GUI Skinning Methods

08 Jul 2017, 08:49

Image

실행할 때 이렇게 뜨긴하는데
저기 파란색 옷은 못없애나요 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅠㅠ
Guess

Re: GUI Skinning Methods

08 Jul 2017, 17:28

I was wondering if one could combine DLL-injection and skinning as to skin an app that is using older window forms ?
You can always manage to skin those by aplying a windows theme but then the whole operating system changes...
Has anyone tried this already ?
HakitoJin
Posts: 17
Joined: 02 Oct 2016, 17:20

Re: GUI Skinning Methods

20 Aug 2018, 13:45

Neither of those seem to work after I've upgraded from 1.1.24.5 to 1.1.29.01 (not sure which version broke them), anyone knows what's wrong?
burque505
Posts: 1731
Joined: 22 Jan 2017, 19:37

Re: GUI Skinning Methods

20 Aug 2018, 16:50

@HakitoJin, I'm running Win7 64-bit, and usually run 64-bit AHK_L 1.1.29.01. That doesn't work for me, but at least for USkin, the 32-bit AHK_L (1.1.29.01) works.
Edit: SkinSharp works too.
Here's a GIFs:
MilikyMc.PNG
(9.47 KiB) Downloaded 107 times
SkinSharp.PNG
(6.78 KiB) Downloaded 102 times
Regards,
burque505
HakitoJin
Posts: 17
Joined: 02 Oct 2016, 17:20

Re: GUI Skinning Methods

20 Aug 2018, 18:45

Oh, it seems I accidentally used the 32bit version of 1.1.24.5 and the 64bit of the newer one, ha, haha, ahaha... ^—^``
Thanks mate!

Return to “Scripts and Functions (v1)”

Who is online

Users browsing this forum: KnIfER and 88 guests