islandspapand Posted November 25, 2013 Share Posted November 25, 2013 (edited) Hi i have some problemes in gettings my Lables and icons to be transperent, i can make my labels transperent with guictrlsetbgkcolor(-1,"-2") but then the texts look weird. As it is to thick i can't get my icons to be transpent either Plz Plz Plz some help me Ps. is there any way i can change the default push button to the currenly active button? expandcollapse popup#cs***************************************** Proxy_Switch.au3 by Krabbe Created with ISN AutoIt Studio v. 0.94 BETA Created with ISN Form Studio 2 for ISN AutoIt Studio Script Version: 1.0 Last Modified: 21-11-2013 Script Function: Enable and Disable proxy settings in IE as user don't normaly know the path #ce***************************************** #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GUIConstants.au3> #include <Constants.au3> #Include <GuiButton.au3> #include <GDIPlus.au3> #include <WinAPI.au3> #include <Array.au3> #include <IE.au3> Global $WlanInf[7] Global $LanInf[7] Global $PXYSVR = "proxy.intranet.ap" Global $PXYPRT = "80" Global $RegKeyLoc = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" Global $wbemFlagReturnImmediately = 0x10, $wbemFlagForwardOnly = 0x20 Global $objWMIService = ObjGet("winmgmts:\\localhost\root\CIMV2") Global $hImage = @Scriptdir& "\Images\hGUI1.png" Global $cImage = @Scriptdir& "\Images\cGUI.gif" Global $hGUI, $cGUI, $BtnEnableDisable, $BtnExit Global $LblCurrentConnect, $LblCurrentState, $LblSuggestSetting Global $RegGetProxyCurAdr, $RegGetProxyState #cs==========$WlanInf============ #cs==========$LanInf============= | [0] = Name | | [0] = Name | | [1] = MacAdress | | [1] = MacAdress | | [2] = Connect True/False | | [2] = Connect True/False | | [3] = Connected 2 Domain name | | [3] = Connected 2 Domain name | | [4] = Your Computer Domain | | [4] = Your Computer Domain | | [5] = IpAdress | | [5] = IpAdress | | [6] = Gateway | | [6] = Gateway | #ce============================== #ce============================== ;====================================== Start GDI Magic ================================ _GDIPlus_Startup() ; Initialize GDI+ library $hImage = _GDIPlus_ImageLoadFromFile($hImage) ; Main GUI Bckg Img $width = _GDIPlus_ImageGetWidth($hImage) ; Img Width | GUI Width $height = _GDIPlus_ImageGetHeight($hImage) ; Img Height | GUI Height _MainUI() Func _MainUI() Global $hGUI = GUICreate("MSI Recovery Image Finder", $width, $height, -1, -1, $WS_POPUP,$WS_EX_LAYERED) GUIRegisterMsg($WM_NCHITTEST, "WM_NCHITTEST") GUISetState(@SW_SHOW,$hGUI) For $i = 0 To 240 Step 10 SetBitmap($hGUI, $hImage, $i) Sleep(10) Next Global $cGUI = GUICreate('childgui', $width, $height, 4, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD,$GUI_WS_EX_PARENTDRAG), $hGUI) $ChildBckg = GUICtrlCreatePic($cImage, 0, 0, $width, $height) GUICtrlSetBkColor($ChildBckg, $GUI_BKCOLOR_TRANSPARENT) GUICtrlSetState($ChildBckg, $GUI_DISABLE) Global $BtnEnable = GUICtrlCreateButton("Enable",75,85,60,20,$BS_DEFPUSHBUTTON,-1) GUICtrlSetFont(-1,8,400,0,"Constantia") Global $BtnDisable = GUICtrlCreateButton("Disable",165,85,60,20,$BS_DEFPUSHBUTTON,-1) GUICtrlSetFont(-1,8,400,0,"Constantia") Global $LblCurrentSetting = GUICtrlCreateLabel("",226,35,42,15,-1,-1) GUICtrlSetFont($LblCurrentSetting,8,400,0,"Constantia") Global $LblSuggestSetting = GUICtrlCreateLabel("",226,50,42,15,-1,-1) GUICtrlSetFont($LblSuggestSetting,8,400,0,"Constantia") Global $LblCurrentConnect = GUICtrlCreateLabel("proxy.intranet.ap:80",173,65,95,15,-1,-1) GUICtrlSetFont($LblCurrentConnect,8,100,0,"Constantia") ;~ GUICtrlSetBkColor(-1,$GUI_BKCOLOR_TRANSPARENT) Global $IcnExit = GUICtrlCreateIcon("imageres.dll",98,267,10,16,16,-1,-1) GUICtrlSetBkColor($IcnExit,$GUI_BKCOLOR_TRANSPARENT) Global $IcnHelp = GUICtrlCreateIcon("imageres.dll",99,249,10,16,16,-1,-1) GUICtrlSetBkColor($IcnHelp,0x373737) _GetCurrentProxyState() _GetActiveSSID() GUISetState(@SW_SHOW,$cGUI) While 1 _ChkIfProxyStateChanged() $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE, $IcnExit Exit Case $IcnHelp MsgBox(16,"Help","Coming Soon") Case $BtnEnable $RegWriteProxyEnable = RegWrite($RegKeyLoc, "ProxyEnable", "REG_DWORD", "1") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer") If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") = Failed >Error code: ' & @error & @crlf) ;### Debug Console BitAND(GUICtrlSetState($BtnDisable,$GUI_ENABLE),GUICtrlSetState($BtnEnable,$GUI_DISABLE)) BitAND(GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr),GUICtrlSetData($LblCurrentSetting,"Enabled")) Case $BtnDisable $RegWriteProxyDisable = RegWrite($RegKeyLoc, "ProxyEnable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer") If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") = Failed >Error code: ' & @error & @crlf) ;### Debug Console BitAND(GUICtrlSetState($BtnDisable,$GUI_DISABLE),GUICtrlSetState($BtnEnable,$GUI_ENABLE)) BitAND(GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr),GUICtrlSetData($LblCurrentSetting,"Disabled")) EndSwitch WEnd EndFunc Func _GetCurrentProxyState() $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer") If BitOr($RegGetProxyCurAdr = -1,@error > 0,$RegGetProxyCurAdr = "") Then ConsoleWrite('RegRead($RegKeyLoc,"ProxyServer") = Failed >Error code: ' & @error & @crlf) ;### Debug Console ConsoleWrite('$RegGetProxyCurAdr = ' & $RegGetProxyCurAdr & ' >Error code: ' & @error & @crlf) ;### Debug Console ;~ If $RegGetProxyCurAdr <> "proxy.intranet.ap:80" Then ;~ $RegWriteProxyAdr = RegWrite($RegKeyLoc, "ProxyServer", "REG_SZ", $PXYSVR & ":" & $PXYPRT) ;~ DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) ;~ $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer") ;~ GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr) ;~ Else ;~ $RegGetProxyCurAdr = RegRead($RegKeyLoc,"ProxyServer") ;~ GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr) ;~ EndIf $RegGetProxyState = RegRead($RegKeyLoc,"ProxyEnable") ConsoleWrite('$RegGetProxyState = ' & $RegGetProxyState & ' >Error code: ' & @error & @crlf) ;### Debug Console If $RegGetProxyState = 0 Then BitAND(GUICtrlSetData($LblCurrentState,"Disabled"),GUICtrlSetState($BtnEnable,$GUI_ENABLE),GUICtrlSetState($BtnDisable,$GUI_DISABLE)) If $RegGetProxyState = 1 Then BitAND(GUICtrlSetData($LblCurrentState,"Enabled"),GUICtrlSetState($BtnEnable,$GUI_DISABLE),GUICtrlSetState($BtnDisable,$GUI_ENABLE)) EndFunc Func _ChkIfProxyStateChanged() $RegGetProxyState = RegRead($RegKeyLoc,"ProxyEnable") ConsoleWrite('Current Proxy State = ' & $RegGetProxyState & ' >Error code: ' & @error & @crlf) ; If user changes proxy manualy while the prg is running If GUICtrlRead($LblCurrentSetting)="Enabled" And $RegGetProxyState = 0 Then GUICtrlSetState($BtnDisable,$GUI_DISABLE) GUICtrlSetState($BtnEnable,$GUI_ENABLE) GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr) GUICtrlSetData($LblCurrentSetting,"Disabled") EndIf ; If user changes proxy manualy while the prg is running If GUICtrlRead($LblCurrentSetting)="Disabled" And $RegGetProxyState = 1 Then GUICtrlSetState($BtnDisable,$GUI_ENABLE) GUICtrlSetState($BtnEnable,$GUI_DISABLE) GUICtrlSetData($LblCurrentConnect,$RegGetProxyCurAdr) GUICtrlSetData($LblCurrentSetting,"Enabled") EndIf EndFunc Func _GetActiveSSID() Global $Output = "", $colItems = "", $colItems1 = "" $colItems = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapter", "WQL", $wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems) then For $objItem In $colItems If StringInStr($objItem.Caption,"Intel") Then If $objItem.NetConnectionID = "Wireless Network Connection" Then $WlanInf[0] = $objItem.Description $WlanInf[1] = $objItem.MACAddress $WlanInf[2] = $objItem.NetEnabled ElseIf $objItem.NetConnectionID = "Local Area Connection" Then $LanInf[0] = $objItem.Description $LanInf[1] = $objItem.MACAddress $LanInf[2] = $objItem.NetEnabled EndIf $Output="" EndIf Next Else Msgbox(0,"WMI Output ERROR","No WMI Objects Found for class: " & "Win32_NetworkAdapter",2) SetError(1,0,"Error in WMI Win32_NetworkAdapter") Endif $colItems1 = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration", "WQL",$wbemFlagReturnImmediately + $wbemFlagForwardOnly) If IsObj($colItems1) then For $objItem In $colItems1 If StringInStr($objItem.Caption,"Intel") <> 0 Then If BitAND($WlanInf[1] = $objItem.MACAddress, $WlanInf[0] = $objItem.Description) Then $WlanInf[3] = $objItem.DNSDomain $WlanInf[4] = $objItem.DNSDomainSuffixSearchOrder(0) $WlanInf[5] = $objItem.IPAddress(0) $WlanInf[6] = $objItem.DefaultIPGateway(0) ElseIf BitAND($LanInf[1] = $objItem.MACAddress, $LanInf[0] = $objItem.Description) Then $LanInf[3] = $objItem.DNSDomain $LanInf[4] = $objItem.DNSDomainSuffixSearchOrder(0) $LanInf[5] = $objItem.IPAddress(0) $LanInf[6] = $objItem.DefaultIPGateway(0) EndIf EndIf Next Else Msgbox(0,"WMI Output ERROR","No WMI Objects Found for class: " & "Win32_NetworkAdapterConfiguration",2) SetError(2,0,"Error in WMI Win32_NetworkAdapterConfiguration") Endif If $LanInf[3] <> "intranet.ap" Then GUICtrlSetData($LblSuggestSetting,"Disabled") Else GUICtrlSetData($LblSuggestSetting,"Enabled") EndIf EndFunc Func WM_NCHITTEST($hWnd, $iMsg, $iwParam, $ilParam) If ($hWnd = $hGUI) And ($iMsg = $WM_NCHITTEST) Then Return $HTCAPTION EndFunc Func SetBitmap($hGUI, $hImage, $iOpacity) Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend $hScrDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = DllStructCreate($tagSIZE) $pSize = DllStructGetPtr($tSize) DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage)) DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage)) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, "Alpha", $iOpacity) DllStructSetData($tBlend, "Format", 1) _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) EndFunc Edited November 25, 2013 by islandspapand Link to comment Share on other sites More sharing options...
PhoenixXL Posted November 25, 2013 Share Posted November 25, 2013 Ps. is there any way i can change the default push button to the currenly active button?  You can use the button style $BS_DEFPUSHBUTTON. Your main problem is the graphic part, that is how your GUI should look. Then can you provide an image of how your GUI should look ? Regards My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
islandspapand Posted November 25, 2013 Author Share Posted November 25, 2013 (edited) Thanks allot, IÂ was thinking that i want both Buttons to have $bs_defpushbutton, so the enabled button is the default push. What sould i do to change between the Buttons as i guess there ONLY can Be One default push. Picture of disired GUI add'ed (still with the grey around the icons and Labels that i wish to remove) Â Edited November 25, 2013 by islandspapand Link to comment Share on other sites More sharing options...
PhoenixXL Posted November 25, 2013 Share Posted November 25, 2013 (edited) Graphics part Here we go expandcollapse popup#include-once #include <GUIConstantsEx.au3> #include <ButtonConstants.au3> #include <WindowsConstants.au3> #include <StaticConstants.au3> #include <GDIPlus.au3> Global $hImage = @ScriptDir & "\Images\hGUI1.png" _GDIPlus_Startup() ; Initialize GDI+ library $hImage = _GDIPlus_ImageLoadFromFile($hImage) ; Main GUI Bckg Img $width = _GDIPlus_ImageGetWidth($hImage) ; Img Width | GUI Width $height = _GDIPlus_ImageGetHeight($hImage) ; Img Height | GUI Height _MainUI() Func _MainUI() Global $hGUI = GUICreate("MSI Recovery Image Finder", $width, $height, -1, -1, $WS_POPUP,$WS_EX_LAYERED) GUISetState(@SW_SHOW, $hGUI) Global $cGUI = GUICreate('childgui', $width, $height, 4, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $hGUI) GUISetBkColor(0xFFFFFF) _WinAPI_SetLayeredWindowAttributes($cGUI, 0xFFFFFF) Global $BtnDisable = GUICtrlCreateButton("Disable", 165, 85, 60, 20) GUICtrlSetFont(-1, 8, 400, 0, "Constantia") Global $BtnEnable = GUICtrlCreateButton("Enable", 75, 85, 60, 20) GUICtrlSetFont(-1, 8, 400, 0, "Constantia") GUICtrlSetDefBkColor($GUI_BKCOLOR_TRANSPARENT) Global $LblCurrentSetting = GUICtrlCreateLabel("Enabled", 226, 40, 42, 15, -1, -1) Global $LblSuggestSetting = GUICtrlCreateLabel("Enabled", 226, 52, 42, 15, -1, -1) Global $LblCurrentConnect = GUICtrlCreateLabel("proxy.intranet.ap:80", 173, 65, 95, 15) GUICtrlSetFont($LblCurrentConnect, 8, 100, 0, "Constantia") GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) Global $IcnExit = GUICtrlCreateIcon("imageres.dll", 98, 267, 10, 16, 16, BitOR($SS_ICON, $SS_NOTIFY)) Global $IcnHelp = GUICtrlCreateIcon("imageres.dll", 99, 249, 10, 16, 16, $BS_ICON) GUISetState(@SW_SHOW, $cGUI) For $i = 0 To 240 Step 10 SetBitmap($hGUI, $hImage, $i) Sleep(10) Next While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE ExitLoop Case $GUI_EVENT_PRIMARYDOWN _SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012 Case $BtnEnable GUICtrlSetState($BtnEnable, $GUI_DISABLE) GUICtrlSetState($BtnDisable, $GUI_ENABLE) GUICtrlSetState($BtnDisable, $GUI_FOCUS) Case $BtnDisable GUICtrlSetState($BtnDisable, $GUI_DISABLE) GUICtrlSetState($BtnEnable, $GUI_ENABLE) GUICtrlSetState($BtnEnable, $GUI_FOCUS) EndSwitch WEnd _GDIPlus_ImageDispose($hImage) _GDIPlus_Shutdown() EndFunc ;==>_MainUI Func SetBitmap($hGUI, $hImage, $iOpacity) Local $hScrDC, $hMemDC, $hBitmap, $hOld, $pSize, $tSize, $pSource, $tSource, $pBlend, $tBlend $hScrDC = _WinAPI_GetDC(0) $hMemDC = _WinAPI_CreateCompatibleDC($hScrDC) $hBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) $hOld = _WinAPI_SelectObject($hMemDC, $hBitmap) $tSize = DllStructCreate($tagSIZE) $pSize = DllStructGetPtr($tSize) DllStructSetData($tSize, "X", _GDIPlus_ImageGetWidth($hImage)) DllStructSetData($tSize, "Y", _GDIPlus_ImageGetHeight($hImage)) $tSource = DllStructCreate($tagPOINT) $pSource = DllStructGetPtr($tSource) $tBlend = DllStructCreate($tagBLENDFUNCTION) $pBlend = DllStructGetPtr($tBlend) DllStructSetData($tBlend, "Alpha", $iOpacity) DllStructSetData($tBlend, "Format", 1) _WinAPI_UpdateLayeredWindow($hGUI, $hScrDC, 0, $pSize, $hMemDC, $pSource, 0, $pBlend, $ULW_ALPHA) _WinAPI_ReleaseDC(0, $hScrDC) _WinAPI_SelectObject($hMemDC, $hOld) _WinAPI_DeleteObject($hBitmap) _WinAPI_DeleteDC($hMemDC) EndFunc ;==>SetBitmap Regards Phoenix XL Edited November 26, 2013 by PhoenixXL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
islandspapand Posted November 25, 2013 Author Share Posted November 25, 2013 (edited) Thank you sooooooooooooo much Phoenix XL i was playing around with the    GUISetBkColor(0xABCDEF)  _WinAPI_SetLayeredWindowAttributes($cGUI, 0xABCDEF) could just not get it to work Could you expaind this part to me?            Case $GUI_EVENT_PRIMARYDOWN                _SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012 if i want the blue around the labels to dissaper then i sould just change to the same color as my background? Edited November 25, 2013 by islandspapand Link to comment Share on other sites More sharing options...
PhoenixXL Posted November 26, 2013 Share Posted November 26, 2013 The painting occurs with respect to the bkcolor of the layered window. I have modified the code (the bkcolor and a bit cleanup), check it by yourself. _SendMessage($hGUI, $WM_SYSCOMMAND, 0xF012, 0) ;SC_DRAGMOVE = 0xF012  It is responsible to move the GUI whenever you drag the main GUI(instead of hittesting, this is preferred). Regards Phoenix XL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now