Page 3 of 4

Re: GUI Skinning Methods

Posted: 19 Feb 2015, 09:43
by ruespe
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).

Re: GUI Skinning Methods

Posted: 13 Mar 2017, 14:35
by User ahk new
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

Re: GUI Skinning Methods

Posted: 13 Mar 2017, 19:58
by joedf
I have 32bit here. I don't know if 64bit is available.
https://autohotkey.com/joe_df/autohotke ... e-joedf.7z

Re: GUI Skinning Methods

Posted: 13 Mar 2017, 22:25
by hot hot 85
Hi Joedf

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


Thanks A lot
Hot

Re: GUI Skinning Methods

Posted: 13 Mar 2017, 23:31
by joedf
I do not :(
Maybe try the 32bit? or download one from here? http://www.skinsharp.com/htdocs/en/products.htm#

Re: GUI Skinning Methods

Posted: 14 Mar 2017, 04:12
by aaffe
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

Re: GUI Skinning Methods

Posted: 14 Mar 2017, 04:52
by aaffe
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.....

Re: GUI Skinning Methods

Posted: 14 Mar 2017, 10:24
by joedf
I don't know... It doesn't seem to be always working :/

Re: GUI Skinning Methods

Posted: 14 Mar 2017, 10:27
by aaffe
Ok, and how about the WinWaitClose,%derzeitstyle%?
Do you know how to do it better so I dont need it?

Re: GUI Skinning Methods

Posted: 14 Mar 2017, 20:27
by joedf

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

Re: GUI Skinning Methods

Posted: 15 Mar 2017, 02:56
by aaffe
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.

Re: GUI Skinning Methods

Posted: 15 Mar 2017, 03:36
by aaffe
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.

Re: GUI Skinning Methods

Posted: 15 Mar 2017, 07:31
by joedf
Seems nice :+1:
Do both USkin and SkinSharp work for you?
It doesn't always work for me... Are you using ahk 32bit?

Re: GUI Skinning Methods

Posted: 15 Mar 2017, 08:20
by aaffe
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....

Re: GUI Skinning Methods

Posted: 16 Mar 2017, 06:50
by joedf
That's weird... :think:

Re: GUI Skinning Methods

Posted: 08 Jul 2017, 08:49
by jmj1650
Image

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

Re: GUI Skinning Methods

Posted: 08 Jul 2017, 17:28
by Guess
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 ?

Re: GUI Skinning Methods

Posted: 20 Aug 2018, 13:45
by HakitoJin
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?

Re: GUI Skinning Methods

Posted: 20 Aug 2018, 16:50
by burque505
@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

Re: GUI Skinning Methods

Posted: 20 Aug 2018, 18:45
by HakitoJin
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!