Jump to content

Recommended Posts

Posted (edited)

GUICtrlCreateAvi(@SystemDir & "\shell32.dll", 165,  is no longer there ( welcome to the future ). But we can use the one we have:

#include <GUIConstantsEx.au3>

Example()

Func Example()
    ; Create a GUI with various controls.
    Local $hGUI = GUICreate("Example", 300, 200)

    ; Create an animation control.
;~     Local $idAvi_Animation = GUICtrlCreateAvi(@SystemDir & "\shell32.dll", 165, 15, 0, 300)
    Local $idAvi_Animation = GUICtrlCreateAvi(StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1) & "\Examples\GUI\sampleAVI.avi", 0, 20, 20, 300, 300)
    Local $idBtn_Start = GUICtrlCreateButton("Start", 60, 150, 85, 25)
    Local $idBtn_Stop = GUICtrlCreateButton("Stop", 160, 150, 85, 25)

    ; Display the GUI.
    GUISetState(@SW_SHOW, $hGUI)

    ; Loop until the user exits.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $idBtn_Start ; Start the animation.
                GUICtrlSetState($idAvi_Animation, $GUI_AVISTART)

            Case $idBtn_Stop ; Stop the animation.
                GUICtrlSetState($idAvi_Animation, $GUI_AVISTOP)

        EndSwitch
    WEnd

    ; Delete the previous GUI and all controls.
    GUIDelete($hGUI)
EndFunc   ;==>Example

so that the example will show something in Win11

..another option:

Spoiler
#include <GUIConstantsEx.au3>

Example()

Func Example()
    ; Create a GUI with various controls.
    Local $idAvi_Animation, $hGUI = GUICreate("Example", 300, 200)

    ; Create an animation control.
    If _InspectAVIResource(@SystemDir & "\shell32.dll", 165) > 1 Then
        $idAvi_Animation = GUICtrlCreateAvi(@SystemDir & "\shell32.dll", 165, 15, 0, 300)
    Else
        $idAvi_Animation = GUICtrlCreateAvi(StringLeft(@AutoItExe, StringInStr(@AutoItExe, "\", 0, -1) - 1) & "\Examples\GUI\sampleAVI.avi", 0, 20, 20, 300, 300)
    EndIf
    Local $idBtn_Start = GUICtrlCreateButton("Start", 60, 150, 85, 25)
    Local $idBtn_Stop = GUICtrlCreateButton("Stop", 160, 150, 85, 25)

    ; Display the GUI.
    GUISetState(@SW_SHOW, $hGUI)

    ; Loop until the user exits.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop

            Case $idBtn_Start ; Start the animation.
                GUICtrlSetState($idAvi_Animation, $GUI_AVISTART)

            Case $idBtn_Stop ; Stop the animation.
                GUICtrlSetState($idAvi_Animation, $GUI_AVISTOP)

        EndSwitch
    WEnd

    ; Delete the previous GUI and all controls.
    GUIDelete($hGUI)
EndFunc   ;==>Example

Func _InspectAVIResource($sModulePath, $vResID)
    Local Const $LOAD_LIBRARY_AS_DATAFILE = 0x00000002

    ; Load module
    Local $aRet = DllCall("kernel32.dll", "handle", "LoadLibraryExW", "wstr", $sModulePath, "ptr", 0, "dword", $LOAD_LIBRARY_AS_DATAFILE)
    If @error Or Not $aRet[0] Then Return ConsoleWrite("Failed to load DLL" & @CRLF)
    Local $hModule = $aRet[0]

    ; Find resource
    Local $sTypeID = IsInt($vResID) ? Ptr($vResID) : $vResID
    $aRet = DllCall("kernel32.dll", "handle", "FindResourceW", "handle", $hModule, "ptr", $sTypeID, "wstr", "AVI")
    If @error Or Not $aRet[0] Then
        DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $hModule)
        Return SetError(1, 0, 0) ; ConsoleWrite("Resource handle not found." & @CRLF)
    EndIf
    Local $hResInfo = $aRet[0]

    ; Get total size in bytes
    $aRet = DllCall("kernel32.dll", "dword", "SizeofResource", "handle", $hModule, "handle", $hResInfo)
    Local $iTotalSize = $aRet[0]

    ; Lock memory buffer
    $aRet = DllCall("kernel32.dll", "handle", "LoadResource", "handle", $hModule, "handle", $hResInfo)
    Local $hResData = $aRet[0]
    $aRet = DllCall("kernel32.dll", "ptr", "LockResource", "handle", $hResData)
    Local $pBuffer = $aRet[0]

    ; Parse RIFF Container (Bytes 0..11)
    Local $tRIFF = DllStructCreate("char magic[4]; dword size; char type[4]", $pBuffer)
    Local $sMagic = DllStructGetData($tRIFF, "magic")
    Local $sType = DllStructGetData($tRIFF, "type")

    ; Parse Main AVI Header 'avih' (Bytes 24..51)
    Local $tAVIH = DllStructCreate("char chunkId[4]; dword chunkSize; dword uSecPerFrame; dword maxBytes; dword padding; dword flags; dword totalFrames", $pBuffer + 24)
    Local $sChunkID = DllStructGetData($tAVIH, "chunkId")
    Local $iFrames = DllStructGetData($tAVIH, "totalFrames")

;~  ConsoleWrite("Container Type: " & $sMagic & " / " & $sType & @CRLF)
;~  ConsoleWrite("Resource Size : " & $iTotalSize & " bytes" & @CRLF)
;~  ConsoleWrite("Header Chunk  : " & $sChunkID & @CRLF)
;~  ConsoleWrite("Frame Count   : " & $iFrames & @CRLF)

    DllCall("kernel32.dll", "bool", "FreeLibrary", "handle", $hModule)
    Return $iFrames
EndFunc   ;==>_InspectAVIResource

 

to keep it compatible with older systems but it needs more testing
Tested in Win7 and shows 31 frames vs. 1 frame in Win11

Spoiler
The deprecation and removal of system AVI resources from shell32.dll happened in two distinct phases:
 
1. The Feature Deprecation (Windows Vista)
Microsoft stopped using shell32.dll AVI animations inside Windows Explorer starting with Windows Vista. The OS shifted away from the legacy Win32 SysAnimate32 control to modern WPF, Direct2D, and UIFILE progress dialogs. However, the physical .avi data was kept inside shell32.dll through Windows Vista and Windows 7 so legacy 32-bit software could still load them.
 
2. The Resource Payload Stripping (Windows 8 & Windows 10)
During Windows 8 and early Windows 10 builds, Microsoft gutted the actual video data from shell32.dll to reduce system DLL file sizes:
 
  • Dummy Container Headers: Instead of deleting the resource entries outright (which would break legacy resource lookup calls), Microsoft replaced the video streams with 1-frame dummy RIFF headers.
  • Windows 10 v1903 (May 2019 Update): System resources were decoupled from System32\shell32.dll and moved into C:\Windows\SystemResources\shell32.dll.mun, rendering shell32.dll a shell wrapper with stubbed resources.

Timeline Overview

Windows Version AVI Status in shell32.dll Behavior in AutoIt / Win32
Windows XP Fully Functional AVI animations played natively in Explorer and custom scripts.
Windows Vista / 7 Deprecated by OS Explorer stopped using them, but third-party apps could still play the DLL resources.
Windows 8 / 10 Stripped to 1-Frame Stubs Resource IDs exist, but video frames are zeroed out or reduced to 1 static frame.
Windows 10 1903+ / 11 Moved to .mun / Empty Stubs GUICtrlCreateAvi fails to play because no playable video data exists.
For modern Windows support, bundle local uncompressed .avi files alongside your script or transition to animated GIFs using GDI+.

..and the why/when above

Edited by argumentum
more

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting  image.gif.922e3a93535f431de08b31ee669cc446.gif
autoit_scripter_blue_userbar.png

Posted
31 minutes ago, argumentum said:

GUICtrlCreateAvi(@SystemDir & "\shell32.dll", 165,  is no longer there ( welcome to the future ).

From the help file, the following standard UDF functions also use that missing resource and would therefore need updated example code:

_GUICtrlAVI_Create  Example 2
_GUICtrlAVI_OpenEx  Example 1
_GUICtrlAVI_Play    Example 1 and Example 2
_GUICtrlAVI_Seek    Example 1 and Example 2
_GUICtrlAVI_Show    Example 1 and Example 2
_GUICtrlAVI_Stop    Example 1 and Example 2

Although it's possible that it could be used in more examples as well but that is what I was able to find without a thorough search.

  • 3 weeks later...
Posted

Additions for ToolbarConstants.au3:

Global Const $TB_SETPRESSEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 104
Global Const $TB_GETPRESSEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 105

Additions for GuiToolbar.au3:

Func _GUICtrlToolbar_GetPressedImageList($hWnd)
    Return Ptr(_SendMessage($hWnd, $TB_GETPRESSEDIMAGELIST))
EndFunc   ;==>_GUICtrlToolbar_GetPressedImageList

Func _GUICtrlToolbar_SetPressedImageList($hWnd, $hImageList)
    Return _SendMessage($hWnd, $TB_SETPRESSEDIMAGELIST, 0, $hImageList, 0, "wparam", "handle", "handle")
EndFunc   ;==>_GUICtrlToolbar_SetPressedImageList

I have tested them and can confirm that they work well. :)

Posted

This is based on the existing ImageList examples for toolbar for consistency:

#include "Extras\HelpFileInternals.au3"

#include <GUIConstantsEx.au3>
#include <GuiImageList.au3>
#include <GuiToolbar.au3>
#include <WinAPIGdi.au3>
#include <WindowsStylesConstants.au3>

Global Const $TB_SETPRESSEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 104
Global Const $TB_GETPRESSEDIMAGELIST = $__TOOLBARCONSTANTS_WM_USER + 105

Example()

Func Example()
    ; Create GUI
    Local $hGUI = GUICreate("Toolbar Get/Set Disabled ImageList (v" & @AutoItVersion & ")", 420, 300)
    GUISetBkColor(0xffff00)
    Local $hToolbar = _GUICtrlToolbar_Create($hGUI)
    _MemoCreate(2, 36, 416, 262, $WS_VSCROLL)
    GUISetState(@SW_SHOW)

    ; Create normal image list
    Local $hNormal = _GUIImageList_Create(32, 24)
    _GUIImageList_Add($hNormal, _WinAPI_CreateSolidBitmap($hGUI, 0xFF0000, 32, 24))
    _GUIImageList_Add($hNormal, _WinAPI_CreateSolidBitmap($hGUI, 0x00FF00, 32, 24))
    _GUIImageList_Add($hNormal, _WinAPI_CreateSolidBitmap($hGUI, 0x0000FF, 32, 24))
    _GUICtrlToolbar_SetImageList($hToolbar, $hNormal)

    ; Create disabled image list
    Local $hDisabled = _GUIImageList_Create(32, 24)
    _GUIImageList_Add($hDisabled, _WinAPI_CreateSolidBitmap($hGUI, 0xCCCCCC, 32, 24))
    _GUIImageList_Add($hDisabled, _WinAPI_CreateSolidBitmap($hGUI, 0xCCCCCC, 32, 24))
    _GUIImageList_Add($hDisabled, _WinAPI_CreateSolidBitmap($hGUI, 0xCCCCCC, 32, 24))
    Local $hPrevImageList = _GUICtrlToolbar_SetDisabledImageList($hToolbar, $hDisabled)
    _MemoWrite("Previous Disabled list handle .: 0x" & Hex($hPrevImageList))
    _MemoWrite("IsPtr = " & IsPtr($hPrevImageList) & " IsHWnd = " & IsHWnd($hPrevImageList))

    ; Create hot image list
    Local $hHot = _GUIImageList_Create(32, 24)
    _GUIImageList_Add($hHot, _WinAPI_CreateSolidBitmap($hGUI, 0x111111, 32, 24))
    _GUIImageList_Add($hHot, _WinAPI_CreateSolidBitmap($hGUI, 0x888888, 32, 24))
    _GUIImageList_Add($hHot, _WinAPI_CreateSolidBitmap($hGUI, 0xAAAAAA, 32, 24))
    _GUICtrlToolbar_SetHotImageList($hToolbar, $hHot)

    ; Create pressed image list
    Local $hPressed = _GUIImageList_Create(32, 24)
    _GUIImageList_Add($hPressed, _WinAPI_CreateSolidBitmap($hGUI, 0xFF00FF, 32, 24))
    _GUIImageList_Add($hPressed, _WinAPI_CreateSolidBitmap($hGUI, 0xFF00FF, 32, 24))
    _GUIImageList_Add($hPressed, _WinAPI_CreateSolidBitmap($hGUI, 0xFF00FF, 32, 24))
    _GUICtrlToolbar_SetPressedImageList($hToolbar, $hPressed)

    ; Add buttons
    Local Enum $idRed = 1000, $idGreen, $idBlue
    _GUICtrlToolbar_AddButton($hToolbar, $idRed, 0)
    _GUICtrlToolbar_AddButton($hToolbar, $idGreen, 1)
    _GUICtrlToolbar_AddButton($hToolbar, $idBlue, 2)

    ; Disable Blue button
    _GUICtrlToolbar_EnableButton($hToolbar, $idBlue, False)

    ; Show image list handles
    _MemoWrite("Disabled list handle .: 0x" & Hex(_GUICtrlToolbar_GetDisabledImageList($hToolbar)))
    _MemoWrite("IsPtr = " & IsPtr(_GUICtrlToolbar_GetDisabledImageList($hToolbar)) & " IsHWnd = " & IsHWnd(_GUICtrlToolbar_GetDisabledImageList($hToolbar)))
    _MemoWrite("Hot list handle ......: 0x" & Hex(_GUICtrlToolbar_GetHotImageList($hToolbar)))
    _MemoWrite("Normal list handle ...: 0x" & Hex(_GUICtrlToolbar_GetImageList($hToolbar)))

    ; Loop until the user exits.
    Do
    Until GUIGetMsg() = $GUI_EVENT_CLOSE
EndFunc   ;==>Example

Func _GUICtrlToolbar_GetPressedImageList($hWnd)
    Return Ptr(_SendMessage($hWnd, $TB_GETPRESSEDIMAGELIST))
EndFunc   ;==>_GUICtrlToolbar_GetPressedImageList

Func _GUICtrlToolbar_SetPressedImageList($hWnd, $hImageList)
    Return _SendMessage($hWnd, $TB_SETPRESSEDIMAGELIST, 0, $hImageList, 0, "wparam", "handle", "handle")
EndFunc   ;==>_GUICtrlToolbar_SetPressedImageList

 

  • 2 months later...
Posted

docs for:

_GUICtrlTreeView_GetNextSibling()
_GUICtrlTreeView_GetNextChild()

are saying the same:

Quote

Returns the next item at the same level as the specified item

Could anybody propose some fix for their descriptions ?

 

 

Signature beginning:
* Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
* ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * 

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors  * HTML editor * 

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

  • Moderators
Posted

mLipok,

What is wrong with the descriptions at present - the statement is perfectly correct for both functions?

The difference is the level within the TreeView at which the search is conducted:

- _GUICtrlTreeView_GetNextSibling() - takes the handle of an item as a parameter and looks at that level

- _GUICtrlTreeView_GetNextChild() - takes the handle of a child as a parameter and looks at that level

Sibling in English means "brother/sister" (i.e. same generation) whereas Child is a generation lower.

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind

Open spoiler to see my UDFs:

Spoiler

ArrayMultiColSort ---- Sort arrays on multiple columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Posted (edited)

Thanks for your answer.

According to: 

44 minutes ago, Melba23 said:

_GUICtrlTreeView_GetNextSibling() - takes the handle of an item as a parameter and looks at that level

I agree that:

Quote

Returns the next item at the same level as the specified item

looks perfectly fine in my understanding.

  
But for this case:

44 minutes ago, Melba23 said:

_GUICtrlTreeView_GetNextChild() - takes the handle of a child as a parameter and looks at that level

This descripion

Quote

Returns the next item at the same level as the specified item

is for me a little misleading.

After your explanations I would rather expect a description like this

Quote

Returns the next item at sub level relative to the specified item


ps.

Perhaps it is a matter of a different way of thinking, shaped by the language we use every day—but that is precisely how I “perceive” the translation of this description in relation to these two distinct functions.

 

 

Edited by mLipok

Signature beginning:
* Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
* ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * 

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors  * HTML editor * 

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

Posted

btw
Reading the documentation, I couldn't grasp the difference at first—I had to run the example files and perform some tests.

Perhaps it’s because my English is still not very good, or maybe I’m just getting old and grumpy ;)

 

Signature beginning:
* Please remember: "AutoIt"..... *  Wondering who uses AutoIt and what it can be used for ? * Forum Rules *
* ADO.au3 UDF * POP3.au3 UDF * XML.au3 UDF * IE on Windows 11 * How to ask ChatGPT for AutoIt Code * for other useful stuff click the following button:

Spoiler

Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind. 

My contribution (my own projects): * Debenu Quick PDF Library - UDF * Debenu PDF Viewer SDK - UDF * Acrobat Reader - ActiveX Viewer * UDF for PDFCreator v1.x.x * XZip - UDF * AppCompatFlags UDF * CrowdinAPI UDF * _WinMergeCompare2Files() * _JavaExceptionAdd() * _IsBeta() * Writing DPI Awareness App - workaround * _AutoIt_RequiredVersion() * Chilkatsoft.au3 UDF * TeamViewer.au3 UDF * JavaManagement UDF * VIES over SOAP * WinSCP UDF * GHAPI UDF - modest begining - comunication with GitHub REST API * ErrorLog.au3 UDF - A logging Library * Include Dependency Tree (Tool for analyzing script relations) * Show_Macro_Values.au3 *

 

My contribution to others projects or UDF based on  others projects: * _sql.au3 UDF  * POP3.au3 UDF *  RTF Printer - UDF * XML.au3 UDF * ADO.au3 UDF * SMTP Mailer UDF * Dual Monitor resolution detection * * 2GUI on Dual Monitor System * _SciLexer.au3 UDF * SciTE - Lexer for console pane * 

Useful links: * Forum Rules * Forum etiquette *  Forum Information and FAQs * How to post code on the forum * AutoIt Online Documentation * AutoIt Online Beta Documentation * SciTE4AutoIt3 getting started * Convert text blocks to AutoIt code * Games made in Autoit * Programming related sites * Polish AutoIt Tutorial * DllCall Code Generator * 

Wiki: * Expand your knowledge - AutoIt Wiki * Collection of User Defined Functions * How to use HelpFile * Good coding practices in AutoIt * 

OpenOffice/LibreOffice/XLS Related: WriterDemo.au3 * XLS/MDB from scratch with ADOX

IE Related:  * How to use IE.au3  UDF with  AutoIt v3.3.14.x * Why isn't Autoit able to click a Javascript Dialog? * Clicking javascript button with no ID * IE document >> save as MHT file * IETab Switcher (by LarsJ ) * HTML Entities * _IEquerySelectorAll() (by uncommon) * IE in TaskScheduler * IE Embedded Control Versioning (use IE9+ and HTML5 in a GUI) * PDF Related: * How to get reference to PDF object embeded in IE * IE on Windows 11 * 

I encourage you to read: * Global Vars * Best Coding Practices * Please explain code used in Help file for several File functions * OOP-like approach in AutoIt * UDF-Spec Questions *  EXAMPLE: How To Catch ConsoleWrite() output to a file or to CMD *

I also encourage you to check awesome @trancexx code:  * Create COM objects from modules without any demand on user to register anything. * Another COM object registering stuff * OnHungApp handler * Avoid "AutoIt Error" message box in unknown errors  * HTML editor * 

winhttp.au3 related : * https://www.autoitscript.com/forum/topic/206771-winhttpau3-download-problem-youre-speaking-plain-http-to-an-ssl-enabled-server-port/

"Homo sum; humani nil a me alienum puto" - Publius Terentius Afer
"Program are meant to be read by humans and only incidentally for computers and execute" - Donald Knuth, "The Art of Computer Programming"
:naughty:  :ranting:, be  :) and       \\//_.

Anticipating Errors :  "Any program that accepts data from a user must include code to validate that data before sending it to the data store. You cannot rely on the data store, ...., or even your programming language to notify you of problems. You must check every byte entered by your users, making sure that data is the correct type for its field and that required fields are not empty."

Signature last update: 2023-04-24

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...