Search the Community
Showing results for tags 'library'.
-
This topic give you access to an AutoIt functions library I maintain which is called PAL, Peter's AutoIt Library. The latest version 1.29 contains 231 functions divided into these topics: window, desktop and monitor GUI, mouse and color GUI controls including graphical buttons (jpg, png) GUI numberbox controls for integer, real, binary and hexadecimal input logics and mathematics include constants string, xml string and file string dialogues and progress bars data lists: lists, stacks, shift registers and key maps (a.ka. dictionaries) miscellaneous: logging/debugging, process and system info Change log and files section on the PAL website (SourceForge). A lot of these functions were created in the development of Peace, Peter's Equalizer APO Configuration Extension which is a user interface for the system-wide audio driver called Equalizer APO.
-
I updated the UDF by Patric Pendelin to use the MemoryDLL UDF. There are only two new functions: _SevenZip_Load & _SevenZip_Free The first function must be called before using any other functions included in the UDF and the other should be called to free memory when the UDF is no longer needed! The size of binary from the module was excessive so I used the ZLMA UDF to compress it. It will be decompressed at run time before its loaded into memory. The only advantage of using this UDF is that it removes the need to included any DLLs in your script. A lot of functions haven't been added yet! For those that dare: The API for the 7-Zip32.dll module is included in the attachment. These functions work in the same way you would you use the standalone 7za.exe executable so the Help.chm file applies to these functions aswell. Thats it, Enjoy! The code below is a sneak peak at the actually UDF, meaning it dosen't work without the other includes and the embed binary. - Download the attachment. #include-once #include "MemoryDLL.au3" #include "LZMA.au3" Global $__7ZIPDLL = Default, $__7ZIPINIT = False #cs =============================================================================== Name: 7-Zip.au3 Version: 1.0 Datum: 08.07.2008 Author: Patric Pendelin eMail: <patric.pendelin (a) gmx.de> Modified By: Decipher Script Function: _SevenZip_Load() _SevenZip_Extract($s_Archive, $s_Out="", $s_Pass="", $szCmdLine="", $s_Overwrite="", $hwnd=0, $szOutput="NULL", $dwSize=0) Extracts files from an archive _SevenZip_Add($s_Archive, $s_Out = "", $s_Typ = "7z32", $i_Comp = 5, $s_Pass = "", $szCmdLine = "", $hwnd = 0, $szOutput = "NULL", $dwSize = 0) Add files to an archive _SevenZip_GetVersion() Get 7_zip32.dll Version _SevenZip_GetRunning() _SevenZip_CheckArchive($s_Archive, $i_iMode = 0) _SevenZip_GetArchiveType($s_Archive) _SevenZip_GetFileCount($s_Archive) _SevenZip_GetUDFVersion() Returns UDF version number _SevenZip_Free() #ce =============================================================================== Func _SevenZip_Load() If Not $__7ZIPINIT Then $__7ZIPDLL = MemoryDllOpen(__7ZIPBIN()) $__7ZIPINIT = True EndIf EndFunc Func _SevenZip_Free() If $__7ZIPINIT Then MemoryDllClose($__7ZIPDLL) $__7ZIPINIT = False $__7ZIPDLL = Default EndIf EndFunc ;=============================================================================== ; Function Name: _SevenZip_Extract ; Description: Extracts files from an archive ; ; Parameter(s): $s_Archive: Fullpath to Archive-File ; $s_Out: Specifies a destination directory where files are to be extracted. (Def. "") ; $s_Pass: Specifies password. (Def. "") ; $szCmdLine: Command Line Commands. (Def. "") ; $s_Overwrite: Specifies the overwrite mode during extraction, to overwrite files already present on disk. (Def. "") ; -1: Overwrite All existing files without prompt. ; -2: Skip extracting of existing files. ; -3: aUto rename extracting file (for example, name.txt will be renamed to name_1.txt). ; -4: auto rename existing file (for example, name.txt will be renamed to name_1.txt). ; $hwnd: The window handle of the application which calls 7-zip32.dll. (Def. 0) ; $szOutput: The buffer because 7-zip32.dll returns the result. (Def. "NULL") ; $dwSize: Größe des Puffers. When the result exceeds designated size, it is economized in this size. ; If size is 1 or more, always NULL letter is added lastly. (Def. 0) ; ; Syntax: _SevenZip_Extract($s_Archive, $s_Out="", $s_Pass="", $szCmdLine="", $s_Overwrite="", $hwnd=0, $szOutput="NULL", $dwSize=0) ; Return Value(s): On Success -Return 1 ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_Extract($s_Archive, $s_Out = "", $s_Pass = "", $szCmdLine = "", $s_Overwrite = "", $hwnd = 0, $szOutput = "NULL", $dwSize = 0) ; Set Output directory If $s_Out = "" Then Local $as_Res = StringSplit($s_Archive, "\") For $i = 1 To $as_Res[0] - 1 $s_Out &= $as_Res[$i] & "\" Next EndIf ; (Overwrite mode) switch: If $s_Overwrite = 1 Then $s_Overwrite = "-aoa"; Overwrite All existing files without prompt. ElseIf $s_Overwrite = 2 Then $s_Overwrite = "-aos"; Skip extracting of existing files. ElseIf $s_Overwrite = 3 Then $s_Overwrite = "-aou"; Auto rename extracting file (for example, name.txt will be renamed to name_1.txt). ElseIf $s_Overwrite = 4 Then $s_Overwrite = "-aot"; Auto rename existing file (for example, name.txt will be renamed to name_1.txt). EndIf If $szCmdLine = "" Then $szCmdLine = ' x "' & $s_Archive & '" ' & $s_Overwrite & ' -o"' & $s_Out & '" -p"' & $s_Pass & '"' Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZip", "hwnd", $hwnd, "str", $szCmdLine, "str", $szOutput, "int", $dwSize) Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_Extract ;=============================================================================== ; Function Name: _SevenZip_Add ; Description: Extracts files from an archive ; ; Parameter(s): $s_Archive: Fullpath to Archive-File ; $s_Out: Specifies a destination directory where files are to be extracted. (Def. "") ; $s_Typ: Specifies the type of archive. ; $i_Comp: Sets level of compression. [0 | 1 | 3 | 5 | 7 | 9 ] ; $s_Pass: Specifies password. (Def. "") ; $szCmdLine: Command Line Commands. (Def. "") ; $hwnd: The window handle of the application which calls 7-zip32.dll. (Def. 0) ; $szOutput: The buffer because 7-zip32.dll returns the result. (Def. "NULL") ; $dwSize: Größe des Puffers. When the result exceeds designated size, it is economized in this size. ; If size is 1 or more, always NULL letter is added lastly. (Def. 0) ; ; Syntax: _SevenZip_Add($s_Archive, $s_Out = "", $s_Typ = "7z32", $i_Comp = 5, $s_Pass = "", $szCmdLine = "", $hwnd = 0, $szOutput = "NULL", $dwSize = 0) ; Return Value(s): On Success -Return 1 ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_Add($s_Archive, $s_Out = "", $s_Typ = "7z32", $i_Comp = 5, $s_Pass = "", $szCmdLine = "", $hwnd = 0, $szOutput = "NULL", $dwSize = 0) If $szCmdLine = "" Then If $s_Pass = "" Then $szCmdLine = '-t' & $s_Typ & ' a "' & $s_Archive & '" "' & $s_Out & '" -mx=' & $i_Comp Else $szCmdLine = '-t' & $s_Typ & ' a "' & $s_Archive & '" "' & $s_Out & '" -p"' & $s_Pass & '" -mhe=on -mx=' & $i_Comp EndIf EndIf Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZip", "hwnd", $hwnd, "str", $szCmdLine, "str", $szOutput, "int", $dwSize) Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_Add ;=============================================================================== ; Function Name: _SevenZip_GetVersion ; Description: The version of 7-zip32.dll is returned. ; ; Parameter(s): None. ; ; Syntax: _SevenZip_GetVersion() ; Return Value(s): On Success -Return File Version ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_GetVersion() Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZipGetVersion") Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_GetVersion ;=============================================================================== ; Function Name: _SevenZip_GetRunning ; Description: Whether or not presently 7-zip32.dll while operating, you obtain. ; Application side before executing API which by all means accompanies file access such as compressing/thawing, ; it is necessary to check whether because of this feasibility. ; ; Parameter(s): None. ; ; Syntax: _SevenZip_GetRunning() ; Return Value(s): On Success -Return 1(It is in the midst of executing.) ; Return 0(Is not in the midst of executing, (feasibility).) ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_GetRunning() Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZipGetRunning") Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_GetRunning ;=============================================================================== ; Function Name: _SevenZip_CheckArchive ; Description: Whether or not presently 7-zip32.dll while operating, you obtain. ; As the archive file which the designated file supports ; It returns whether or not it is correct. ; ; Parameter(s): $s_Archive: Fullpath to Archive file ; ; Syntax: _SevenZip_CheckArchive($s_Archive) ; Return Value(s): On Success -Return 1 (At the time of correct archive file.) ; Return 0 (When the file is illegitimate.) ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_CheckArchive($s_Archive, $i_iMode = 0) Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZipCheckArchive", "str", $s_Archive, "int", $i_iMode) Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_CheckArchive ;=============================================================================== ; Function Name: _SevenZip_GetArchiveType ; Description: Type of the archive file ; ; Parameter(s): $s_Archive: Fullpath to Archive file ; ; Syntax: _SevenZip_GetArchiveType($s_Archive) ; Return Value(s): On Success -Return 1 (ZIP type) ; Return 2 (7z32 type) ; On Failure -@error ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_GetArchiveType($s_Archive) Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZipGetArchiveType", "str", $s_Archive) Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_GetArchiveType ;=============================================================================== ; Function Name: _SevenZip_GetFileCount ; Description: Type of the archive file ; ; Parameter(s): $s_Archive: The number of files in the Archive file. ; ; Syntax: _SevenZip_GetFileCount($s_Archive) ; Return Value(s): On Success -Return Numer of files ; On Failure -@error 1: Can´t opens a DLL file for use in MemoryDllCall. ; @error 2: Error in MemoryDllCall ; ; Author(s): Patric Pendelin <patric.pendelin (a) gmx.de> ;=============================================================================== Func _SevenZip_GetFileCount($s_Archive) Local $aRet = MemoryDllCall($__7ZIPDLL, "int", "SevenZipGetFileCount", "str", $s_Archive) Return SetError(@error, "", $aRet[0]) EndFunc ;==> _SevenZip_GetFileCount #region ### BINARY ### Func __7ZIPBIN() #cs Name: 7-ZIP32 BINARY Version 9.20.00.02 Requirements: Windows9x/Me/NT/200x/XP/Vista/7 Author: Akita Minoru ( Http://Akky.Xrea.Jp/support.Html ) Download the Library: 7-Zip-Library.7z Basic Usage: #include "7-Zip.au3" _SevenZip_Load() Dim $sCommandLine = "Accepts Switches and etc" _SevenZip_Exec($sCommandLine) ; See the included 7-Zip.chm documentation _SevenZip_Free() Exit
-
here's some PHP code to access AutoIt functions from php: https://github.com/divinity76/autoit_php - as of writing, only 5 functions are added: MouseMove and MouseClick and _ScreenCapture_Capture and WinWaitActive and Send, it also has support for running in Cygwin (which is where i've developed it, but it *should*, in theory, run on normal php-cli for windows as well.), is there any community interest for this? example usage <?php require_once("autoit.class.php"); $au = new AutoIt(); $au->MouseMove(10, 10, 5); $au->MouseClick("left"); echo "waiting up to 5 seconds for notepad window.."; if($au->WinWaitActive("[CLASS:Notepad]","",5)){ echo "found notepad!\n"; $au->Send("hello from autoit_php"); }else{ echo "timed out while waiting for notepad.\n"; } $imageBinary = $au->_ScreenCapture_Capture(); var_dump(strlen($imageBinary), imagecreatefromstring($imageBinary)); (i wanted to use some autoit functions from php-cli, and google wasn't of much help this time..)
-
I was wondering if there was a library or something which provides the capability to Send() to inactive windows, and I know what you're thinking, I could just use ControlSend(); the reason I can't use that in this situation is because I need to hold down keys for specific prolonged periods of time. Also activating the window, Send()ing then de-activating the window isn't really an option here, I need the target window to always be in the background. I've looked around the forums for an adequate amount of time and didn't find anything useful, perhaps because the threads were all 10 years old, nevertheless, if anyone has any suggestions they would be greatly appreciated. Thanks!
-
Skype UDF v1.2 Introduction :Skype4COM represents the Skype API as objects, with :methodspropertieseventscollectionscachingSkype4COM provides an ActiveX interface to the Skype API. Develop for Skype in a familiar programming environment, such as Visual Studio or Delphi, using preferred scripting languages such as VBScript, PHP, or Javascript. Requirements : Skype 3.0+ must be installedWindows 2000, XP+ Update : Version 1.2 Fixed _Skype_ProfileGetHandle function Version 1.1 Fixed _Skype_ChatGetBookmarked function Added missing _Skype_ChatGetTopic function Version 1.0 Fixed _Skype_ChatGetAll function Version 0.9 Fixed Mute value returned by the _Skype_OnEventMute callback function Version 0.8 Error ObjEvent is set if none already set Version 0.7 Changed _Skype_GetChatActive to _Skype_GetChatAllActive Version 0.6 Added _Skype_GetCache Added _Skype_SetCache Changed Skype_Error function Minor bugs fixed Version 0.5 Fixed _Skype_ChatCreate Version 0.4 Fixed _Skype_ChatGetMessages Fixed "Skype - SciTE.au3" script Version 0.3 Minor changes Updated Skype in AutoIt example Version 0.2 Fixed _Skype_ChatAddMembers Various bugs fixed _Functions list : (346) Example GUI : Notes : Skype's access control must be accepted manually :After running the example script, click on the "Allow access" button of SkypeThis version is NOT complete If you are running on a 64 bits OS, add this line to your script : #AutoIt3Wrapper_UseX64=n Attachments :Pack (UDF + ExampleGUI)Version 1.2 : Skype-UDF_1.0.0.2.zip Examples : (put them into the "Example folder")-Answers to incomming calls even if you are already in a call : Auto Answer.au3-Shows how to use the OnMute event : Mute Event.au3 Happy coding
-
Hi all, I am making a program in which I use Bass audio library (with the wrapper for autoit that I found here on forums I think) because of its support for dx effects. My problem, though, is that when effects as reverb or echo/delay are added, the channel length is not extended as to fit the tail of the effect, so if the file was really short, you wouldn't even hear the reverb at all. I've tried setting the buffer parameter even to 60k ms, updating the channel length to 60k ms, but nothing makes it so that the effects aren't being cut off. I've heard that I could add silence manually to wave files by adding the chr(0) characters, but haven't had any luck doing that, either. What I'm doing: initialize bass use streamCreateFile to load the wave file with the fx flag and length parameter set to 60000 set the config buffer to 60000 use channel set fx to add dx8 reverb use channel play to play the sound use bass update to update the length to 60000 I even tried having only silence in one wave file and tried joining two wave files together, but that didn't work either. Any help would be very much appreciated.
-
Is there any way to skip the execution of a particular block of code like any condition or expression, if the au3 file is included as library.? Like, in my code I wrote all the functionality as functions and called them in 4 lines. Now I have another requirement where I need to use the same code but different.So I am importing this code so that I can use these functions. But the code block which is outside the functions (main code) is being executed when I import the au3 file.Is there any condition to check whether the file is running directly or included in another au3 file as library, so that I can keep the same here. Please suggest if any ideas.
-
Hi, First , I don't know nothing about COM and I saw this script : #include <MsgBoxConstants.au3> Example() Func Example() ; Error monitoring. This will trap all COM errors while alive. ; This particular object is declared as local, meaning after the function returns it will not exist. Local $oErrorHandler = ObjEvent("AutoIt.Error", "_ErrFunc") ; Create Internet Explorer object Local $oIE = ObjCreate("InternetExplorer.Application") ; Check for errors If @error Then Return $oIE.Visible = True ; set visibility ; Custom sink object Local $oIEEvents = ObjEvent($oIE, "_IEEvent_", "DWebBrowserEvents2") ; Navigate somewhere $oIE.navigate("http://www.google.com/") ; Check for errors while loading If @error Then $oIE.Quit() Return EndIf ; Wait for page to load While 1 If $oIE.readyState = "complete" Or $oIE.readyState = 4 Then ExitLoop Sleep(10) WEnd EndFunc ... Now I want to know how can I find & list ALL those possible "functions" of a specific COM object ( those .Visible, .navigate, .readyState ... ), since I can't find those things nowhere listed
- 6 replies
-
- COM
- COM object
- (and 4 more)
-
Version 1.08
10,311 downloads
Opera Browser Automation UDF Library! 32 (and more to go) adapted functions to manipulate the most common routines for Opera Browser! Note: This UDF Library tested on Opera versions: 8.54-9.5, 10.63.3516, few critical functions tested also on 11.x-12.x. Change Log: v1.08 [21.Jun.2013] Fixed issue with getting opera profile path (mostly related to _OperaGetMailDir). v1.07 [04.Jun.2013] + Added _OperaGetDownloadsDir function. + Added _OperaGetSessionFiles function. + Added global $i_Opera_SearchAllDrives variable to allow profile dir detection on other drives. Usefull when installed more than one OS. + Added global $s_Opera_ProfileDir variable to specify custom profile dir (this variable should be empty if you need to use _OperaGetProfileDir). Fixed few functions to work better with new Opera versions. Fixed internal __Opera_GetOperaPageHandle function (used in public _OperaScreenCapture function). v1.06 [12.Jul.2012] Fixed _OperaGetDir function: - To be compatible with x64 system. - Changed/expanded parameters, now used $iFlag to determine the function behavior, see function header for more details. _OperaIsRuning function renamed to _OperaIsRunning. Old function name still supported. Renamed internal functions to __Opera_*. v1.05 [08.Jul.2012] Fixed _OperaGetTitle function, the title was incorrect if $sOpDir was specified and $iRet <> 2. Fixed __Correct_Opera_Path internal function to replace back slashes (/). v1.04 [26.Jun.2011] Fixed following functions to be more compatible with Opera 11.x: _OperaGetProfileDir _OperaMultiUserModeIsOn _OperaGetUserJSDir __Correct_Opera_Path Fixed major bugs with recognizing Opera Dir (if $sOpDir parameter is passed as wrong Opera dir path). Fixed _OperaGetUserJSDir function (now working better with relative pathes). Renamed and changed _Opera_Integration_Example function. Now it's considered active function and named _Opera_Integration_Module. Changed _OperaSelectFolder function. Added new optional parameter $hParent. Changed _OperaAddMenuItem and _OperaRemoveMenuItem functions. Added new optional parameter $iBackup. Fixed _OperaAddMenuItem function. Encoding issues. + Added _OperaGetCacheDir function. + Added optional $iGetLastInstallPath parameter to _OperaGetDir function. If this parameter is 1, then function will try to detect the last installed Opera path, instead of the path that Opera.exe was last time launched from. v1.03 [16.May.2011] UDF renamed to Opera.au3. Fixed _OperaScreenCapture function (now compatible with Opera 10.6, but still having an issue with capturing panels). Fixed few major issues with getting preference file's pathes. Fixed _OperaGetDir() function. Fixed _OperaGetProfileDir() function (errors when getting profile dir on multiuser mode). Changed _OperaFindDir function. - Now the $sInitPath parameter can accept pathes (delimited with "|"). - Now -1 as second parameter ($iRetCount) tels to the function to return all found Opera dirs. - Also the function now works faster. + Opera 10.6 support. + Added _OperaToggleMenuItemState function. + Added optional $sStandard_Name parameter to _OperaSetConfigFile function: If this parameter is a string (default is -1), then it's used as standard file name (instead of "standard_" & $sConfig_Prefix & ".ini"). v1.02 [03.Jul.2009] Now compatible with AutoIt 3.3.0.0. + Opera 10 support. + Added _OperaGetBookmarksFile() function. + Added _OperaScreenCapture() function... ATTENTION: supported only for v3.2.10.0 or higher, due to (lack of) callback support. + Added _OperaAddMenuItem()/_OperaRemoveMenuItem() function. Fixed few function to read relative paths in opera prefs file. v1.01 [5.Jan.2008] Now compatible with AutoIt 3.2.10.0. Variable names and spell corrections. + Added 2 more UDFs: _OperaRestart() _OperaMultiUserModeIsOn() v1.0 [28.Dec.2007] First Release.. -
Hello community, SAP offers different connectors to develop ABAP compatible components and applications. JCo for Java environments, NCo for dotNET languages and the NetWeaver RFC SDK for C++. But what's up if you work neither with Java or dotNET environments nor with C++? Here is another alternative, CCo - the COM Connector for SAP. CCo is a COM library and offers wrappers around all functions of the SAP NetWeaver RFC library. So it is possible to use all functionalities of the SAP NetWeaver RFC library inside any language which is COM-enabled, like AutoIt. With CCo it is easily possible to use the SAP NetWeaver RFC functions inside AutoIt. Hint: CCo has at the moment experimental character. Don't use it in production environments. Hint: CCo needs SAP RFC SDK, you find it here, SAP passport required. You find CCo here: cco.stschnell.de You find a few examples how to use CCo here, in particular three examples in AutoIt Script how to call BAPI functions - here BAPI_USER_ * functions. Cheers Stefan
-
NOTICE: As Yahoo has terminated Yahoo Chat, I am no longer maintaining this code. Thanks. This particular script provides many, many functions and definitions for working with Yahoo Cookies, Pager, Chat, CAPTCHA, etc. Current Version: YMSGLib 3.4 NOTE: Do not ask me for help with "Booters", Flooders, Bots, or anything to abuse other users. License: YMSGLib.au3 and the small include file for WinHTTP, WinHTTP_COM.au3, are licensed under WTFPL version 2 (alternative link), a GPL-compatible and FSF-approved license. The entire license can be viewed in either source file. If the 'wording' is not acceptable to this forum, I will gladly write a license just for this purpose. Downloads: YMSGLib.au3 WinHTTP_COM.au3 Optional Downloads: YMSGLib_INI.zip YMSGLib_Examples.zip Currently included Examples: Cookie Decoder (some results need verification) Simple Login and Console output for buddylist/packet data. Simple Chat Client (Pager Login/PM/Captcha/Chat/Roomlist support) *Simple Login/PM Pager Client (and HTTP Proxy example copy) *Simple Roomlist example Account Existence checker (* = Requested Script) Technical Requirements: Base64 Support: Base64.au3 (Author: Ward) (Needed for: Cookies, Auth16) (or alternatively _Base64.au3 by Mikeytown2/blindwig) MD5 Support: Crypt.au3 (Author: monoceres) (or alternatively MD5.au3 by Ward) (Needed for: Auth16) (or alternatively Hash#[DLL].au3 by Ward) (or alternatively MD5.au3 by SvenP/Frez Systems Ltd.) WinHTTP Support: WinHTTPRequest Object (Needed for: Token Login/ValidateFields Support) (WinHTTP_COM.au3 as supplied above) Data Object Support: ADODB.Stream Object (Needed for: Reading of WinHTTP Data) YMSGLib Updates: 2.1 - Validation/Status Check functions; LibRequire edit 2.2 - fixed a bug in _ValidateID 2.3 - moved textual information to YMSGLib.ini, Changed Calls to Executes, added (Packet|Status|Field|List)GetName functions. 2.4 - Added Visibility and Away State packet functions, added some documentation 2.5 - VerifyContact fixed; applicable pager packets updated with the destination-network parameter. ($iService) N/A - Small Include Filename Switcheroo. (Minorly Breaking) 2.6 - Information about the two bytes following the "ver" has been revealed - some ability has been added here, but this is also a script-breaking change. 2.7 - Many functions requiring HTTP now do not rely on WinHTTP; added some replacements to _YMSG_StripFormatting. 2.8 - Fixed a bug in HTTP transfers concerning binary data 2.9 - Added 3 types of ping packets 3.0 - Base32-int conversions and internal int-string functions (usable for Y64-ints) 3.1 - Mobile / SMS functions (thanks to Lost_Protocol, WickedCoder for information) 3.2 - URL arguments for PwToken and ValidateFields functions are now properly escaped. 3.3 - Additions and changes from observation of Yahoo Messenger 10 (see post) 3.4 - Captcha modifications Works Cited: Yahoo SMS Specification LibYahoo2 - YMSG9 The YahELite chat client. (through observation and analysis of activity) Observation and review of the source code for various chat clients (Gaim [now Pidgin], etc.) In-Depth Analysis of .... 6 Jan 2008. XSSed.com (Cookie Info) A Post-mortem of Yahoo! Account Security. (Cookie Info etc.) (More official source citations not available as YMSG is not an officially published protocol; some sources posted in subsequent replies) To Do: N - Rewrite MD5 and B64 functions to look decent (perhaps array/loop) T - Update the AuthResponse functions to allow status' other than 12 (Invisible) H - Update example scripts for compatibility H - Document all YMSGLib function return values H - Add Away-State and Visibility support to the Chat-Client example E - Verify the timestamp integer values in the cookie decoder H - Add full hierarchy processing for the buddylist structure. H - Change out the Chat Client Example's buddylist with something decent. E - Add BuddyIcon/Avatar upload support to YMSGLib B - Make all functions work perfectly with the new HTTP transfer functions (B; some functions require HTTPS) P - Add accept/deny buddy responses to YMSGLib and processing to the Chat Client P - Add cross-service support to VerifyContact, BuddyAdded, etc. * (B=Blocked by an issue/not possible, P=Pending testing, H=potential Headaches, T=subject to Time constraints, E=needs a working Example/documentation, N=None) /me falls asleep on keyboard Edit: Corrected written version number in post Edit: Corrected unterminated strikeout text