rasim Posted May 26, 2008 Posted May 26, 2008 Hi All! Hope this UDF someday be useful for yours greats scripts UDF:expandcollapse popup#include-once #include <GuiConstantsEx.au3> #include <WindowsConstants.au3> Global Const $HH_DISPLAY_TEXT_POPUP = 0xE Global Const $HH_CLOSE_ALL = 0x12 Global $HH_POPUP Global $DllHandle = DllOpen("HHCtrl.ocx") Global $aControls[1] = [0] Global $aText[1] = [0] Global $aTextColor[1] = [0] Global $aBkColor[1] = [0] Global $aFontFormat[1] = [0] $HH_POPUP = DllStructCreate("int cbStruct;hwnd hinst;uint idString;ptr pszText;long pt[2];dword clrForeground;" & _ "dword clrBackground;long rcMargins[4];ptr pszFont") DllStructSetData($HH_POPUP, "cbStruct", DllStructGetSize($HH_POPUP)) DllStructSetData($HH_POPUP, "idString", 0) DllStructSetData($HH_POPUP, "rcMargins", -1, 1) DllStructSetData($HH_POPUP, "rcMargins", -1, 2) DllStructSetData($HH_POPUP, "rcMargins", -1, 3) DllStructSetData($HH_POPUP, "rcMargins", -1, 4) GUIRegisterMsg($WM_HELP, "WM_HELP") ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_SetText ; Description.....: Sets context help text for control ; Syntax..........: _ContextHelp_SetText($hControl, $sText) ; Parameter(s)....: $hControl - Handle or ID to the control ; $sText - Text which be showed ; Return value(s).: Success - None ; Failure - Sets @error to 1 ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Tested on Windows XP SP2 ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_SetText($hControl, $sText) If Not $hControl Then Return SetError(1, 0, 0) If Not IsHWnd($hControl) Then $hControl = GUICtrlGetHandle($hControl) Local $iElement = _CheckControl($hControl) $aText[$iElement] = $sText EndFunc ;==>_ContextHelp_SetText ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_SetTextColor ; Description.....: Sets color for context help text ; Syntax..........: _ContextHelp_SetTextColor($hControl, $sTextColor) ; Parameter(s)....: $hControl - Handle or ID to the control ; $sTextColor - Color in HEX value ; Return value(s).: Success - None ; Failure - Sets @error to 1 ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Tested on Windows XP SP2 ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_SetTextColor($hControl, $sTextColor) If Not $hControl Then Return SetError(1, 0, 0) If Not IsHWnd($hControl) Then $hControl = GUICtrlGetHandle($hControl) Local $iElement = _CheckControl($hControl) $aTextColor[$iElement] = RGB2BGR($sTextColor) EndFunc ;==>_ContextHelp_SetTextColor ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_SetBkColor ; Description.....: Sets the background color for a context help window ; Syntax..........: _ContextHelp_SetBkColor($hControl, $sBkColor) ; Parameter(s)....: $hControl - Handle or ID to the control ; $sBkColor - Color in HEX value ; Return value(s).: Success - None ; Failure - Sets @error to 1 ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Tested on Windows XP SP2 ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_SetBkColor($hControl, $sBkColor) If Not $hControl Then Return SetError(1, 0, 0) If Not IsHWnd($hControl) Then $hControl = GUICtrlGetHandle($hControl) Local $iElement = _CheckControl($hControl) $aBkColor[$iElement] = RGB2BGR($sBkColor) EndFunc ;==>_ContextHelp_SetBkColor ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_SetFont ; Description.....: Sets the font, font size and font attributes for a context help text ; Syntax..........: _ContextHelp_SetFont($hControl, $sFontName [, $sFontSize = 8.5 [, $sFontFormat = "NORMAL"]]]) ; Parameter(s)....: $hControl - Handle or ID to the control ; $sFontName - The name of the font ; $sFontSize - [optional] Font size (default is 8.5) ; $sFontFormat - [optional] Font attributes e.g.: BOLD, ITALIC, UNDERLINED ; +you can use a several font attributes, just indicate theirs via space ; Return value(s).: Success - None ; Failure - Sets @error to 1 ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Tested on Windows XP SP2 ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_SetFont($hControl, $sFontName, $sFontSize = 8.5, $sFontFormat = "NORMAL") If Not $hControl Then Return SetError(1, 0, 0) If Not IsHWnd($hControl) Then $hControl = GUICtrlGetHandle($hControl) Local $iElement = _CheckControl($hControl) $aFontFormat[$iElement] = $sFontName & ", " & $sFontSize & ", , " & $sFontFormat EndFunc ;==>_ContextHelp_SetFont ; #FUNCTION# ============================================================= ; Name............: _CheckControl ; Description.....: Finds the control handle in the array contains a controls handles ; Syntax..........: _CheckControl($hControl) ; Parameter(s)....: $hControl - Handle to the control ; Return value(s).: Last element number from the array contains a controls handles ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Only for internal use ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _CheckControl($hControl) Local $i If $aControls[0] = 0 Then Return _ContextHelp_Create($hControl) EndIf For $i = 1 To $aControls[0] If $hControl = $aControls[$i] Then Return $i EndIf Next Return _ContextHelp_Create($hControl) EndFunc ;==>_CheckControl ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_Create ; Description.....: Redims arrays with parameters and sets default parameters ; Syntax..........: _ContextHelp_Create($hControl) ; Parameter(s)....: $hControl - Handle to the control ; Return value(s).: Last element number from the array contains a controls handles ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Only for internal use ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_Create($hControl) $aControls[0] += 1 ReDim $aControls[$aControls[0] + 1] $aControls[$aControls[0]] = $hControl $aText[0] += 1 ReDim $aText[$aText[0] + 1] $aText[$aText[0]] = "What's that?" $aTextColor[0] += 1 ReDim $aTextColor[$aTextColor[0] + 1] $aTextColor[$aTextColor[0]] = -1 $aBkColor[0] += 1 ReDim $aBkColor[$aBkColor[0] + 1] $aBkColor[$aBkColor[0]] = -1 $aFontFormat[0] += 1 ReDim $aFontFormat[$aFontFormat[0] + 1] $aFontFormat[$aFontFormat[0]] = "MS Sans Serif, 8.5, , NORMAL" Return $aControls[0] EndFunc ;==>_ContextHelp_Create ; #FUNCTION# ============================================================= ; Name............: _ContextHelp_Popup ; Description.....: Displaying a context help for controls ; Syntax..........: _ContextHelp_Popup() ; Parameter(s)....: None ; Return value(s).: None ; Requirement(s)..: AutoIt 3.2.12.0 ; Note(s).........: Only for internal use ; Author(s).......: R.Gilman (a.k.a. rasim) ; ======================================================================== Func _ContextHelp_Popup() DllCall($DllHandle, "hwnd", "HtmlHelp", "hwnd", 0, "str", 0, _ "int", $HH_DISPLAY_TEXT_POPUP, "dword", DllStructGetPtr($HH_POPUP)) EndFunc ;==>_ContextHelp_Popup ; #FUNCTION# ============================================================= ; Name............: RGB2BGR ; Description.....: Convert a RGB color mode to a BGR color mode ; Syntax..........: RGB2BGR($sColor) ; Parameter(s)....: $sColor - The color in HEX value ; Return value(s).: Converted color in HEX value ; Requirement(s)..: ; Note(s).........: ; Author(s).......: Siao ; ======================================================================== Func RGB2BGR($sColor) Return BitAND(BitShift(String(Binary($sColor)), 8), 0xFFFFFF) EndFunc ;==>RGB2BGR Func WM_HELP($hWnd, $Msg, $wParam, $lParam) Local $HELPINFO, $hControl, $tFont, $tText, $i $HELPINFO = DllStructCreate("int cbSize;int iContextType;int iCtrlId;hwnd hItemHandle;" & _ "dword dwContextId;long MousePos[2]", $lParam) $hControl = DllStructGetData($HELPINFO, "hItemHandle") $tFont = DllStructCreate("char Font[256]") $tText = DllStructCreate("char Text[256]") For $i = 1 To $aControls[0] If $hControl = $aControls[$i] Then DllStructSetData($tText, "Text", $aText[$i]) DllStructSetData($tFont, "Font", $aFontFormat[$i]) DllStructSetData($HH_POPUP, "pszText", DllStructGetPtr($tText)) DllStructSetData($HH_POPUP, "pszFont", DllStructGetPtr($tFont)) DllStructSetData($HH_POPUP, "clrForeground", $aTextColor[$i]) DllStructSetData($HH_POPUP, "clrBackground", $aBkColor[$i]) DllStructSetData($HH_POPUP, "pt", DllStructGetData($HELPINFO, "MousePos", 1), 1) DllStructSetData($HH_POPUP, "pt", DllStructGetData($HELPINFO, "MousePos", 2), 2) _ContextHelp_Popup() EndIf Next Return $GUI_RUNDEFMSG EndFunc ;==>WM_HELP Func OnAutoitExit() DllCall($DllHandle, "hwnd", "HtmlHelp", "hwnd", 0, "str", 0, "uint", $HH_CLOSE_ALL, "dword", 0) $HH_POPUP = 0 DllClose($DllHandle) EndFunc ;==>OnAutoitExitoÝ÷ ÙÊ%¢ºç¬¥©ì·)^Note:Works correctly in the AutoIt latest version 3.2.12.0 mLipok 1
ptrex Posted May 26, 2008 Posted May 26, 2008 @rasim You are accessing a COM dll using DLLCall ? Mightbe going the long way. Try this. $Hh = ObjCreate("Internet.HHCtrl") $Hh.TextPopup ("Test it, working" & @CrLf & _ "AU3 is great ...", "Lucida Console,8", 1, 1, 1, 1) Sleep (3000) $Hh.TextPopup ("Hello Script-Coding!" & @CrLf & _ "HH Ctrl", "Courier New,36", 1, 1, 1, 1) Sleep (3000) $Hh = "" Regards, ptrex Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New
rasim Posted May 26, 2008 Author Posted May 26, 2008 I don`t know this. But what about text and background color?
rasim Posted May 26, 2008 Author Posted May 26, 2008 (edited) Ok, i found this.Edit: But i hope anyone be use my little UDF... Edited May 26, 2008 by rasim
ptrex Posted May 26, 2008 Posted May 26, 2008 @rasim OK. At least you learnt from it. regards, ptrex Contributions :Firewall Log Analyzer for XP - Creating COM objects without a need of DLL's - UPnP support in AU3Crystal Reports Viewer - PDFCreator in AutoIT - Duplicate File FinderSQLite3 Database functionality - USB Monitoring - Reading Excel using SQLRun Au3 as a Windows Service - File Monitor - Embedded Flash PlayerDynamic Functions - Control Panel Applets - Digital Signing Code - Excel Grid In AutoIT - Constants for Special Folders in WindowsRead data from Any Windows Edit Control - SOAP and Web Services in AutoIT - Barcode Printing Using PS - AU3 on LightTD WebserverMS LogParser SQL Engine in AutoIT - ImageMagick Image Processing - Converter @ Dec - Hex - Bin -Email Address Encoder - MSI Editor - SNMP - MIB ProtocolFinancial Functions UDF - Set ACL Permissions - Syntax HighLighter for AU3ADOR.RecordSet approach - Real OCR - HTTP Disk - PDF Reader Personal Worldclock - MS Indexing Engine - Printing ControlsGuiListView - Navigation (break the 4000 Limit barrier) - Registration Free COM DLL Distribution - Update - WinRM SMART Analysis - COM Object Browser - Excel PivotTable Object - VLC Media Player - Windows LogOnOff Gui -Extract Data from Outlook to Word & Excel - Analyze Event ID 4226 - DotNet Compiler Wrapper - Powershell_COM - New
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