Jump to content

Search the Community

Showing results for tags 'auto'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum
  • AutoIt

Calendars

  • Community Calendar

Found 10 results

  1. I am sure you guys know of a simple solution but I am still kind of new to AutoIt and its special functions. I want my code to be able to know how to encrypt and decrypt "A" and "a" as two different chars. my code is very long so here is just a snippet/example of it. ;Encode== Global $charAA = "" ; ( Capital letter A ) = Global 184 = ¸ ( Cedilla ) $charAA = $charAA & Chr(65) Global $chara = "" ; ( Lowercase letter a ) = Global 251 = û ( û Latin Small Letter U With Circumflex ) $chara = $chara & Chr(97) ;Decode== Global $ch184 = "" ;( Copyright symbol ) = $charAA $ch184 = $ch184 & Chr(184) Global $ch251 = "" ;( û Latin Small Letter U With Circumflex ) = $chara $ch251 = $ch251 & Chr(251) ;Encode== stringreplace($test_String, $charAA, $ch184) stringreplace($test_String, $chara, $ch251) ;Decode== stringreplace($$new_String, $ch184, $charAA) stringreplace($$new_String, $ch251, $chara) ( NOTE: my stringreplace function is nested in my actual code. I only separated them here for readability. ) I know there are better ways to Encrypt and Decrypt a message but I'm doing this as a fun side project for me and a select group of friends to enjoy. Again My code is not encrypting or decrypting capitals and lower case properly even though I use their ANSI codes. Example: Input "A a B b" Encrypt: ". . $ $" Decrypt: "A A B B" Any and all help will be greatly appreciated.
  2. Hi, I require a script that does automatic installation of software after selecting the department and softwares in the GUI. I apologize for creating a similar thread earlier since i didn't mention the complete requirement by not being precise. Below are the steps on how the process should be Section 1: Choosing the Department Step 1: A GUI box should appear containing the multiple-choice option (Radio Button) containing all the departments. Step 2: After clicking next, it has to move to next section Section 2: Selecting the softwares to be installed. Note: Each Department have their own list of softwares, so the softwares list varies depending on the department that is selected. Step 1: The second GUI box should contain the list of softwares with checkboxes that are meant to be installed. Step 2: The Softwares could include different versions. So if the software is check marked, only the version that is selected should be installed. (Screenshot for reference below) Section 3: Installation Step: The Softwares should install automatically as per the list. (Which will done by me using AU3info) If anyone could help me with, and if it works as expected, i will be buying him a beer. Thanks
  3. Hello guys. I totaly reworked a script to get less problem(Melba23) and i used a topic to copy an existing script and modified it. Since my last post it was bad evaluated as a spam bot but by my fault since i have not explained the purpose of it corectly. (Yes i got ugly english) Then FIRST OF ALL the purpose of this script is to allow a call center to complet multiple fields in internet explorer and optionnaly; i am gonna see that after the principal code to configure multiple email that can be send. I know there is some UDF for outlook etc... but i want a single script to do all. this is the way i want to do that. Ok this is my complete code for the moment. #cs ---------------------------------------------------------------------------- AutoIt Version: 3.3.14.2 Author: myName Script Function: Template AutoIt script. #ce ---------------------------------------------------------------------------- ; Script Start - Add your code below here #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <Misc.au3> $dll = DllOpen("user32.dll") Global $EnvoyerMess1Sub1 Global $EnvoyerMess2Sub1 Global $EnvoyerMess3Sub1 Global $EnvoyerMess4Sub1 Global $EnvoyerMess5Sub1 Global $EnvoyerMess1Sub2 Global $EnvoyerMess2Sub2 Global $EnvoyerMess3Sub2 Global $EnvoyerMess4Sub2 Global $EnvoyerMess5Sub2 Global $EnvoyerMess1Sub3 Global $EnvoyerMess2Sub3 Global $EnvoyerMess3Sub3 Global $EnvoyerMess4Sub3 Global $EnvoyerMess5Sub3 Global $EnvoyerMess1Sub4 Global $EnvoyerMess2Sub4 Global $EnvoyerMess3Sub4 Global $EnvoyerMess4Sub4 Global $EnvoyerMess5Sub4 Global Const $SettingsFile = @SCRIPTDIR & '\Settings.ini' $Setting1 = IniRead ($SettingsFile, 'Stats', 'Utilisation', "ERROR") IniWrite ($SettingsFile, 'Stats', 'Utilisation',$Setting1+1) $Valeur1 = IniRead ($SettingsFile, 'NomMenu', 'Menu1', "ERROR") $Valeur2 = IniRead ($SettingsFile, 'NomMenu', 'Menu2', "ERROR") $Valeur3 = IniRead ($SettingsFile, 'NomMenu', 'Menu3', "ERROR") $Valeur4 = IniRead ($SettingsFile, 'NomMenu', 'Menu4', "ERROR") $Valeur11 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu1.1', "ERROR") $Valeur12 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu1.2', "ERROR") $Valeur13 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu1.3', "ERROR") $Valeur14 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu1.4', "ERROR") $Valeur15 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu1.5', "ERROR") $Valeur21 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu2.1', "ERROR") $Valeur22 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu2.2', "ERROR") $Valeur23 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu2.3', "ERROR") $Valeur24 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu2.4', "ERROR") $Valeur25 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu2.5', "ERROR") $Valeur31 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu3.1', "ERROR") $Valeur32 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu3.2', "ERROR") $Valeur33 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu3.3', "ERROR") $Valeur34 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu3.4', "ERROR") $Valeur35 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu3.5', "ERROR") $Valeur41 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu4.1', "ERROR") $Valeur42 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu4.2', "ERROR") $Valeur43 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu4.3', "ERROR") $Valeur44 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu4.4', "ERROR") $Valeur45 = IniRead ($SettingsFile, 'NomMenu', 'SousMenu4.5', "ERROR") $Message11 = IniRead ($SettingsFile, 'Messages', 'Message11', "ERROR") $Message12 = IniRead ($SettingsFile, 'Messages', 'Message11', "ERROR") $Message13 = IniRead ($SettingsFile, 'Messages', 'Message11', "ERROR") $Message14 = IniRead ($SettingsFile, 'Messages', 'Message11', "ERROR") $Message15 = IniRead ($SettingsFile, 'Messages', 'Message11', "ERROR") $Message21 = IniRead ($SettingsFile, 'Messages', 'Message21', "ERROR") $Message22 = IniRead ($SettingsFile, 'Messages', 'Message22', "ERROR") $Message23 = IniRead ($SettingsFile, 'Messages', 'Message23', "ERROR") $Message24 = IniRead ($SettingsFile, 'Messages', 'Message24', "ERROR") $Message25 = IniRead ($SettingsFile, 'Messages', 'Message25', "ERROR") $Message31 = IniRead ($SettingsFile, 'Messages', 'Message31', "ERROR") $Message32 = IniRead ($SettingsFile, 'Messages', 'Message32', "ERROR") $Message33 = IniRead ($SettingsFile, 'Messages', 'Message33', "ERROR") $Message34 = IniRead ($SettingsFile, 'Messages', 'Message34', "ERROR") $Message35 = IniRead ($SettingsFile, 'Messages', 'Message35', "ERROR") $Message41 = IniRead ($SettingsFile, 'Messages', 'Message41', "ERROR") $Message42 = IniRead ($SettingsFile, 'Messages', 'Message42', "ERROR") $Message43 = IniRead ($SettingsFile, 'Messages', 'Message43', "ERROR") $Message44 = IniRead ($SettingsFile, 'Messages', 'Message44', "ERROR") $Message45 = IniRead ($SettingsFile, 'Messages', 'Message45', "ERROR") BuildHiddenGUI() While 1 Sleep ( 10 ) If _IsPressed("04", $dll) Then CallCustomContextMenu() $msg = GUIGetMsg() Switch $msg ;~ ===================================================== Case $EnvoyerMess1Sub1 ;~ MouseClick("left") Send(""&$Message11) Case $EnvoyerMess2Sub1 Send(""&$Message12) Case $EnvoyerMess3Sub1 Send(""&$Message13) Case $EnvoyerMess4Sub1 Send(""&$Message14) Case $EnvoyerMess5Sub1 Send(""&$Message15) ;~ ====================================================== Case $EnvoyerMess1Sub2 Case $EnvoyerMess2Sub2 Case $EnvoyerMess3Sub2 Case $EnvoyerMess4Sub2 Case $EnvoyerMess5Sub2 ;~ ====================================================== Case $EnvoyerMess1Sub3 Case $EnvoyerMess2Sub3 Case $EnvoyerMess3Sub3 Case $EnvoyerMess4Sub3 Case $EnvoyerMess5Sub3 ;~ ======================================================= Case $EnvoyerMess1Sub4 Case $EnvoyerMess2Sub4 Case $EnvoyerMess3Sub4 Case $EnvoyerMess4Sub4 Case $EnvoyerMess5Sub4 ;~ ====================================================== Case $ConfigITEM EndSwitch WEnd DllClose($dll) Func BuildHiddenGUI() Global $Contextmenu, $msg, $GUI, $aTSR Global $SubMenu1, $folderitem, $programitem, $fileitem, $ConfigITEM, $otheritem Global $folderitem1, $folderitem2, $programitem1, $programitem2 $aTSR = _GetTotalScreenResolution() $GUI = GuiCreate("GUI Context Menu",1,1, $aTSR[0], 1,BitOR($WS_POPUP,$WS_BORDER),BitOr($WS_EX_TOPMOST,$WS_EX_TOOLWINDOW)) WinSetTrans( $GUI, '', 1) GUISetState() $Contextmenu = GUICtrlCreateContextMenu() $SubMenu1 = GUICtrlCreateMenu(""&$Valeur1, $Contextmenu) $EnvoyerMess1Sub1 = GUICtrlCreateMenuItem(""&$Valeur11, $SubMenu1) $EnvoyerMess2Sub1 = GUICtrlCreateMenuItem(""&$Valeur12, $SubMenu1) $EnvoyerMess3Sub1 = GUICtrlCreateMenuItem(""&$Valeur13, $SubMenu1) $EnvoyerMess4Sub1 = GUICtrlCreateMenuItem(""&$Valeur14, $SubMenu1) $EnvoyerMess5Sub1 = GUICtrlCreateMenuItem(""&$Valeur15, $SubMenu1) $SubMenu2 = GUICtrlCreateMenu(""&$Valeur2, $Contextmenu) $EnvoyerMess1Sub2 = GUICtrlCreateMenuItem(""&$Valeur21, $SubMenu2) $EnvoyerMess2Sub2 = GUICtrlCreateMenuItem(""&$Valeur22, $SubMenu2) $EnvoyerMess3Sub2 = GUICtrlCreateMenuItem(""&$Valeur23, $SubMenu2) $EnvoyerMess4Sub2 = GUICtrlCreateMenuItem(""&$Valeur24, $SubMenu2) $EnvoyerMess5Sub2 = GUICtrlCreateMenuItem(""&$Valeur25, $SubMenu2) $SubMenu3 = GUICtrlCreateMenu(""&$Valeur3, $Contextmenu) $EnvoyerMess1Sub3 = GUICtrlCreateMenuItem(""&$Valeur31, $SubMenu3) $EnvoyerMess2Sub3 = GUICtrlCreateMenuItem(""&$Valeur32, $SubMenu3) $EnvoyerMess3Sub3 = GUICtrlCreateMenuItem(""&$Valeur33, $SubMenu3) $EnvoyerMess4Sub3 = GUICtrlCreateMenuItem(""&$Valeur34, $SubMenu3) $EnvoyerMess5Sub3 = GUICtrlCreateMenuItem(""&$Valeur35, $SubMenu3) $SubMenu4 = GUICtrlCreateMenu(""&$Valeur4, $Contextmenu) $EnvoyerMess1Sub4 = GUICtrlCreateMenuItem(""&$Valeur41, $SubMenu4) $EnvoyerMess2Sub4 = GUICtrlCreateMenuItem(""&$Valeur42, $SubMenu4) $EnvoyerMess3Sub4 = GUICtrlCreateMenuItem(""&$Valeur43, $SubMenu4) $EnvoyerMess4Sub4 = GUICtrlCreateMenuItem(""&$Valeur44, $SubMenu4) $EnvoyerMess5Sub4 = GUICtrlCreateMenuItem(""&$Valeur45, $SubMenu4) GUICtrlCreateMenuItem("", $contextmenu) ; separator $ConfigITEM = GUICtrlCreateMenuItem("Configuration", $contextmenu) EndFunc Func CallCustomContextMenu() Local $contextmenu, $msg Global $newsubmenu, $folderitem, $programitem, $fileitem, $otheritem Global $folderitem1, $folderitem2, $programitem1, $programitem2 Local $pos Global $GUI, $aTSR WinActivate ($GUI) ControlClick ( $GUI, "", "", "right", 1, $aTSR[0], 1) EndFunc Func _GetTotalScreenResolution() Local $aRet[2], $VirtualDesktopWidth, $VirtualDesktopHeight Global Const $SM_VIRTUALWIDTH = 78 Global Const $SM_VIRTUALHEIGHT = 79 $VirtualDesktopWidth = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALWIDTH) $aRet[0] = $VirtualDesktopWidth[0] $VirtualDesktopHeight = DllCall("user32.dll", "int", "GetSystemMetrics", "int", $SM_VIRTUALHEIGHT) $aRet[1] = $VirtualDesktopHeight[0] Return $aRet EndFunc Func WinGroupActive() AutoItSetOption("WinTitleMatchMode", 4) If WinActive("classname=ExploreWClass") _ Or WinActive("classname=CabinetWClass") _ Or WinActive("classname=#32770") _ Or WinActive("classname=DV2ControlHost") _ Or WinActive("classname=MMCMainFrame") _ Or WinActive("[CLASS:Progman; Title:Program Manager]") Then Return True Else Return False EndIf EndFunc By this way the script is very more clear about the purpose. When i use middle mouse click i got a context menu that apear. Then i can send the preconfigured message in the ini file that will alow me to send particular message without spending much time on it. First question : When i push middle click on a particular windows how to get back focus on it ?? plz dont make attention on the declared fonction that are unused i am gonna clean that at the end.
  4. Who could help me to convert this vbs to AuoIT? on error resume next dim oCPAppletMgr 'Control Applet manager object. dim oClientAction 'Individual client action. dim oClientActions 'A collection of client actions. 'Get the Control Panel manager object. set oCPAppletMgr=CreateObject("CPApplet.CPAppletMgr") if err.number <> 0 then Wscript.echo "Couldn't create control panel application manager" WScript.Quit end if 'Get a collection of actions. set oClientActions=oCPAppletMgr.GetClientActions if err.number<>0 then wscript.echo "Couldn't get the client actions" set oCPAppletMgr=nothing WScript.Quit end if 'Display each client action name and perform it. For Each oClientAction In oClientActions if oClientAction.Name = "Request & Evaluate Machine Policy" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Software Metering Usage Report Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Updates Source Scan Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Request & Evaluate User Policy" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Hardware Inventory Collection Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Software Inventory Collection Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Application Global Evaluation Task" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Software Updates Assignments Evaluation Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Discovery Data Collection Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "MSI Product Source Update Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if if oClientAction.Name = "Standard File Collection Cycle" then wscript.echo "Performing action " + oClientAction.Name oClientAction.PerformAction end if next set oClientActions=nothing set oCPAppletMgr=nothing
  5. Hi guys, After i use that, all of thing is good and perfect, Local $dData = InetRead("http://example.com/my.html",1) $my = BinaryToString(StringReplace($dData, "0A", "0D0A"), 4)but now how can i reload that after x time ?! by this ( top script ) , i need to relunch the script to see modified, now! how can i update data after X time !? for example : in "my.html" we have number "3" , i try to change it to "5", now we need to relunch script to see "3" => "5", how we can use that without relunch script. thanks alot and sorry for my bad english & too long question.
  6. Hi again, i have one question ! , how we can use a "inetread" without any changes in doc, it's meant : for example in this address we have this source : (Address : http://example.com) <!doctype html> <!-- i have <br/> ( Enter ) --> <html> <!-- i have enter too --> <head> <!-- i have too --> <title>i am in autoit :) </title> <meta charset="utf-8"> </head> <body> <p> i want to go in autoit :( </p> <a href="http://autoitscript.com">autoit</a> </body> </html>in this source you see many "Enter", now how we can have this (source) by "inetread" or "inetget" or something like that, i try to use that with "inetread" but it have not any "enter"! thanks alot *sorry for my many questions,
  7. Auto-SignIn

    Version 0.9.7

    275 downloads

    Usage: Create a shortcut pointing to this file and pass arguments username and password to it in target location. Auto-SignIn: When it is running in background it will pass credentials automatically to Windows Security Windows.Please check the forum mentioned for more details. It will pass data to below type of window.
  8. µAuToBar Alpha v0.1

    This is my latest project! I wanted to run utorrent as a service but still have status information without visiting the WebUI so I created µAuToBar which automatically displays uTorrent's status bars. they are almost exact duplicates of the download bar accessible via uTorrent's advanced context menu. There are plenty of reasons why you would want to check this out but instead of listing all of the current and planned features, I'll cut it short and just say theres support for proxies. If you use uTorrent then don't miss out on this gadget! uTorrent's WebUI must be enabled! I'd love feedback from my hardwork and will definitely add reasonable features but keep the topic strictly on uTorrent and not persay what one actually does with it. Some experimental features present in this version will become optional in later versions. #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=Oxygen-Icons.org-Oxygen-Status-user-invisible.ico #AutoIt3Wrapper_Compile_Both=y #endregion ;**** Directives created by AutoIt3Wrapper_GUI **** ;http://www.iconarchive.com/show/oxygen-icons-by-oxygen-icons.org/Status-user-invisible-icon.html #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <ProgressConstants.au3> #include <GUIConstantsEx.au3> #include <EditConstants.au3> #include <UpdownConstants.au3> #include <Constants.au3> Global Const $uT_GUILimit = 10 Global $uT_oHTTP = ObjCreate("WinHttp.WinHttpRequest.5.1"), $uT_oERROR = ObjEvent("AutoIt.Error", "__uT_Error") Opt("GUIOnEventMode", 1) Global Const $uT_HTTPREQUEST_SETCREDENTIALS_FOR_SERVER = 0, $uT_HTTPREQUEST_SETCREDENTIALS_FOR_PROXY = 1, _ $uT_HTTPREQUEST_PROXYSETTING_DEFAULT = 0, $uT_HTTPREQUEST_PROXYSETTING_PRECONFIG = 0, _ $uT_HTTPREQUEST_PROXYSETTING_DIRECT = 1, $uT_HTTPREQUEST_PROXYSETTING_PROXY = 2 Global $uT_Password = Default, $uT_Settings, $bValidSettings = False, $uT_Started = False, $uT_RM = Default Global $uT_LastBar = Default, $uT_CM = Default, $uT_Paused = False, $uT_PM = Default, $uT_DM = Default Global $uT_SID = "~", $uT_SIDc = StringLen($uT_SID), $uT_StatusColors = True, $uT_TrayState[10][3] Global $sINI = @ScriptDir & "\µAuToBar.ini" ; Tray Icon/Menu Configuration Opt("TrayOnEventMode", 1) Opt("TrayAutoPause", 0) Opt("TrayMenuMode", 15) Opt("TrayIconDebug", 0) TraySetToolTip("µAuToBar") ; Tray Icon Menu Creation TrayItemSetOnEvent(TrayCreateItem("Config"), "__uT_Configure") $uT_DM = TrayCreateMenu("Display") $uT_PM = TrayCreateItem("Pause") TrayItemSetOnEvent($uT_PM, "__uT_Suspend") $uT_EX = TrayCreateItem("Exit") TrayItemSetOnEvent($uT_EX, "__uT_Exit") __uT_Startup() ; Read settings from an INI file or prompt the user for server login information. Settings will be validated to an extent. Do Sleep(100) ; I've noticed on windows 7 that if there isn't some sort of sleep then the CPU usage will report extremely high during an empty loop's execution Until $bValidSettings ; Either $bValidSettings will become true VIA onevent functions or those functions will cause the program to exit If UBound($uT_Settings) = 16 Then ; Settings integrity check If $uT_Settings[5] Then ; If the utorrent password index of the settings array isn't blank then give the global variable $uT_Password its value $uT_Password = $uT_Settings[5] ElseIf $uT_Password = Default Or $uT_Password = "" Or $uT_Settings[4] = "" Then ; Ensure we have a password MsgBox(262144, "µAuToBar", "Invalid username/password configuration! µAuToBar will now close.", 10) FileDelete(@ScriptDir & "\µAuToBar.ini") ; Delete the configuration file to allow for reconfiguration Exit Else $uT_Settings[5] = $uT_Password ; Index #5 of the settings array may be blank if the user didn't choose to have their password stored. If $uT_Password isn't default then we'll use its value instead EndIf Else MsgBox(262144, "µAuToBar", "Invalid configuration! µAuToBar cannot continue.", 10) ; The integrity check failed. FileDelete(@ScriptDir & "\µAuToBar.ini") ; Delete the configuration file to allow for reconfiguration Exit EndIf $uT_Started = True ; Settings have been validated __uT_Auth($uT_Settings[4], $uT_Settings[5], $uT_Settings[2], $uT_Settings[3]) ; Set IP, Port, User, and Pass If Int($uT_Settings[13]) = $GUI_CHECKED Then ; If the Proxy setting is enabled then check for credentials If $uT_Settings[11] <> "" And $uT_Settings[12] <> "" Then ; If both proxy user and pass are not blank then set proxy with credentials __uT_SetProxy($uT_Settings[9], $uT_Settings[10], $uT_Settings[11], $uT_Settings[12]) Else ; Set proxy IP and Port without authentication __uT_SetProxy($uT_Settings[9], $uT_Settings[10]) EndIf EndIf Global $aTorrent = __uT_GetList(), $aLast = $aTorrent, $aTemp[1][1], $iDefaultSleep = 1000, $iDelay = 10000, $iUbound, $uT_BarUpdate = 0, $iBarCount = 0 Global $uT_Limit = 11 While 1 $iUbound = UBound($aTorrent, 2) If (UBound($aTorrent, 1) < 11) Or ($iUbound < 1) Then $aTorrent = $aTemp $iUbound = 1 $iSleep = $iDelay Else $iSleep = $iDefaultSleep EndIf For $i = 0 To UBound($aLast, 2) - 1 Step 1 For $n = 0 To $iUbound - 1 Step 1 If $aTorrent[0][$n] = $aLast[0][$i] Then ExitLoop If $n = $iUbound - 1 Then __uT_Bar($aLast[0][$i], False) EndIf Next Next $aLast = $aTorrent $bSleep = True __uT_StateList() For $i = 0 To $iUbound - 1 Step 1 If $i = 0 And UBound($aTorrent, 1) < 2 Then ExitLoop If $aTorrent[1][$i] And __uT_TrayStateMatch($i) Then $iBarCount = __uT_Bar($aTorrent[0][$i], $aTorrent[2][$i], Int($aTorrent[4][$i] / 10), __uT_GetSpeed($aTorrent[9][$i]), _ __uT_GetSpeed($aTorrent[8][$i]), __uT_GetETA($aTorrent[10][$i]), $aTorrent[21][$i]) If $iBarCount = 1 Then $uT_BarUpdate += 1 $bSleep = False EndIf If $uT_BarUpdate >= $uT_Limit - 1 Then ExitLoop Next $uT_BarUpdate = 0 If $bSleep Then $iSleep = $iDelay Sleep($iSleep) While $uT_Paused Sleep(100) WEnd $aTorrent = __uT_GetList() WEnd Func __uT_TrayStateMatch($iT) If Not UBound($aTorrent, 2) Or UBound($aTorrent, 1) < 22 Then Return SetError(1, 0, False) For $i = 0 To UBound($uT_TrayState, 1) - 1 Step 1 If $uT_TrayState[$i][0] = "" Then ContinueLoop If $uT_TrayState[$i][2] And $aTorrent[21][$iT] == $uT_TrayState[$i][0] Then Return True Next EndFunc Func __uT_StateList() Local $iUbound = UBound($aTorrent, 2) If Not $iUbound Or UBound($aTorrent, 1) < 22 Then Return SetError(1, 0, "") For $i = 0 To $iUbound - 1 Step 1 If Not __uT_TrayHasState($aTorrent[21][$i]) Then __uT_TrayCreateState($aTorrent[21][$i]) Next __uT_CheckStateList() EndFunc Func __uT_ToggleTrayState(ByRef $iState, $iTrayID) If Not IsDeclared("aLast") Or Not UBound($aLast) Then Return If $uT_TrayState[$iState][2] = True Then $uT_TrayState[$iState][2] = False TrayItemSetState($iTrayID, $TRAY_UNCHECKED) IniWrite($sINI, "µTrayState", $uT_TrayState[$iState][0], $TRAY_UNCHECKED) Else $uT_TrayState[$iState][2] = True TrayItemSetState($iTrayID, $TRAY_CHECKED) IniWrite($sINI, "µTrayState", $uT_TrayState[$iState][0], $TRAY_CHECKED) EndIf For $i = 0 To UBound($aLast, 2) - 1 Step 1 __uT_Bar($aLast[0][$i], False) Next EndFunc Func __uT_CheckStateList() Local $iUbound = UBound($aTorrent, 2), $bStateExist = False If Not $iUbound Or UBound($aTorrent, 1) < 22 Then Return SetError(1, 0, "") For $i = 0 To UBound($uT_TrayState, 1) - 1 Step 1 If $uT_TrayState[$i][0] = "" Then ExitLoop $bStateExist = False For $n = 0 To $iUbound - 1 Step 1 If $uT_TrayState[$i][0] == $aTorrent[21][$n] Then $bStateExist = True ExitLoop EndIf Next If Not $bStateExist Then __uT_TrayDeleteState($i) Next EndFunc Func __uT_TrayDeleteState($iState) TrayItemDelete($uT_TrayState[$iState][1]) $uT_TrayState[$iState][0] = "" Local $nIndex = 0, $aTemp[UBound($uT_TrayState, 1) - 1][3] For $n = 0 To UBound($uT_TrayState, 1) - 1 Step 1 If $uT_TrayState[$n][0] <> "" Then For $i = 0 To 2 Step 1 $aTemp[$nIndex][$i] = $uT_TrayState[$n][$i] Next $nIndex += 1 EndIf Next EndFunc Func __uT_TrayItemState() Local $iTrayID = @TRAY_ID For $i = 0 To UBound($uT_TrayState, 1) - 1 Step 1 If $uT_TrayState[$i][1] = $iTrayID Then __uT_ToggleTrayState($i, $iTrayID) ExitLoop EndIf Next EndFunc Func __uT_TrayCreateState($sState) If Not $sState Then Return Static Local $iState = 0, $iStateuBound = UBound($uT_TrayState, 1), $bRedim = False If $iState > $iStateuBound - 1 Then $bRedim = True Local $aTemp[$iStateuBound+10][3] EndIf $uT_TrayState[$iState][0] = $sState $uT_TrayState[$iState][1] = TrayCreateItem($sState, $uT_DM) TrayItemSetOnEvent($uT_TrayState[$iState][1], "__uT_TrayItemState") Local $nTrayState = Int(IniRead($sINI, "µTrayState", $sState, $TRAY_CHECKED)) TrayItemSetState($uT_TrayState[$iState][1], $nTrayState) $uT_TrayState[$iState][2] = ($nTrayState = $TRAY_CHECKED) If $bRedim Then For $i = 0 To $iState Step 1 For $p = 0 To 2 Step 1 $aTemp[$i][$p] = $uT_TrayState[$i][$p] Next Next $uT_TrayState = $aTemp EndIf $iState += 1 EndFunc Func __uT_TrayHasState($sState) For $n = 0 To UBound($uT_TrayState, 1) - 1 Step 1 If $sState == $uT_TrayState[$n][0] Then Return True Next Return False EndFunc Func __uT_GetETA($iSeconds) Static Local $iMin = 60, $iHour = $iMin * 60, $iDay = $iHour * 24 If $iSeconds >= $iDay Then Return Int($iSeconds / $iDay) & "d" If $iSeconds >= $iHour Then Return Int($iSeconds / $iHour) & "h" If $iSeconds >= $iMin Then Return Int($iSeconds / $iMin) & "m" Return $iSeconds & "s" EndFunc ;==>__uT_GetETA Func __uT_GetSpeed($iBytes) Static Local $iKB = 1024, $iMB = 1024 * 1024 If $iBytes >= $iMB Then Return Round($iBytes / $iMB, 1) & " MB/s" $iBytes = Round($iBytes / $iKB, 1) If Not $iBytes Then Return "0.0 KB/s" Return $iBytes & " KB/s" EndFunc ;==>__uT_GetSpeed Func __uT_GetStateColor($sState) Select Case StringInStr($sState, "Error", 2) Return "0xE63549" Case $sState == "Finished" Return "0x54A85F" Case $sState == "Seeding" Return "0xE9F76D" Case $sState == "[F] Seeding" Return "0xFCB25D" Case $sState == "Downloading metadata" Return "0x5D98FC" Case $sState == "[F] Downloading" Return "0x19D19A" Case $sState == "Downloading" Return "0x2BD119" EndSelect Return "0xE3E3E3" EndFunc Func __uT_Bar($sHash, $sName, $iPercent = 0, $iDownload = 0, $iUpload = 0, $iETA = "~", $sState = "", $iGuiX = Default, $iGuiY = Default) Local $iGuiWidth = 600, $iGuiHeight = 17, $aPos, $bDelete = False If IsBool($sName) Then $bDelete = True Local Enum $iLeft, $iTop, $iWidth, $iHeight Static Local $iBarOrder = 0 Local Enum $iHash, $hBar, $hLabel, $hProg, $hDown, $hUp, $hETA, $iLastY, $iOrder, $iColor Static Local $iGuiX_Default = Int(((@DesktopWidth / 2) - ($iGuiWidth / 2)) + 200) Static Local $iGuiY_Default = Int(((@DesktopHeight / 2) - ($iGuiHeight / 2)) + 200) If $iGuiX = Default Then $iGuiX = $iGuiX_Default If $iGuiY = Default Then $iGuiY = $iGuiY_Default Local $uT_GUI[15] = [$sHash, 0, 0, 0, 0, 0, 0, $iGuiY, $iBarOrder, "", $sName, $iPercent, $iDownload, $iUpload, $iETA], $aBar, $vColor = "0xE3E3E3" Static Local $uT_Bar[$uT_Limit], $uT_Count = 0 If $uT_Count Then For $i = 0 To $uT_Count Step 1 $aBar = $uT_Bar[$i] If Not UBound($aBar) Then ContinueLoop If $aBar[$iHash] = $sHash Then If $bDelete Then GUIDelete($aBar[$hBar]) $uT_Bar[$i] = "" Local $aTemp[$uT_Limit], $iTemp = 0 For $i = 0 To $uT_Count Step 1 $aBar = $uT_Bar[$i] If UBound($aBar) Then $aTemp[$iTemp] = $aBar $iTemp += 1 EndIf Next $uT_Count = Int($uT_Count - 1) $uT_Bar = $aTemp Return True EndIf If Not WinExists($aBar[$hBar]) Then Return __uT_Bar($aBar[$iHash], False) If $sName And $sName <> $aBar[10] Then GUICtrlSetData($aBar[$hLabel], $sName) If $uT_StatusColors And $sState Then Local $vColor = __uT_GetStateColor($sState) If $aBar[$iColor] <> $vColor Then GUISetBkColor($vColor, $aBar[$hBar]) EndIf If $aBar[11] <> $iPercent Then GUICtrlSetData($aBar[$hProg], $iPercent) If $aBar[12] <> $iDownload Then GUICtrlSetData($aBar[$hDown], $iDownload) If $aBar[13] <> $iUpload Then GUICtrlSetData($aBar[$hUp], $iUpload) If $aBar[14] <> $iETA Then GUICtrlSetData($aBar[$hETA], $iETA) Return 1 EndIf Next EndIf If IsBool($sName) Then Return If $uT_Count + 1 > $uT_Limit - 1 Then Return SetError(1, 0, "") $uT_Count += 1 If $uT_Count Then Local $iMinY = $iGuiY_Default - $iGuiHeight, $bClear Do $bClear = True For $i = 0 To $uT_Count Step 1 $aBar = $uT_Bar[$i] If UBound($aBar) Then If $aBar[$iLastY] = $iMinY Then $iMinY = $aBar[$iLastY] - $iGuiHeight $bClear = False EndIf EndIf Next Until $bClear $iGuiY = $iMinY $uT_GUI[$iLastY] = $iMinY EndIf $aPos = __uT_ControlPos($iGuiX, $iGuiY, $iGuiWidth - 2, $iGuiHeight - 2) $uT_GUI[$hBar] = GUICreate("", $aPos[$iWidth], $aPos[$iHeight], $aPos[$iLeft], $aPos[$iTop], BitOR($WS_POPUP, $WS_BORDER), BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)) If $uT_StatusColors And $sState Then $vColor = __uT_GetStateColor($sState) GUISetBkColor($vColor, $uT_GUI[$hBar]) $uT_GUI[$iColor] = $vColor If $vColor <> "0xE3E3E3" Then $vColor = "0x000000" Else $vColor = "0x696566" EndIf $aPos = __uT_ControlPos(0, 0, $aPos[$iWidth], $aPos[$iHeight]) GUICtrlCreateLabel("", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], -1, BitOR($WS_EX_TRANSPARENT, $GUI_WS_EX_PARENTDRAG, $WS_EX_TOPMOST)) GUICtrlSetBkColor(-1, -2) $aPos = __uT_ControlPos(1, 1, 3, $aPos[$iHeight] - 2) GUICtrlCreateLabel("", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], -1) GUICtrlSetBkColor(-1, $vColor) $aPos = __uT_ControlPos($aPos[$iLeft] + 4, $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight]) GUICtrlCreateLabel("", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], -1) GUICtrlSetBkColor(-1, $vColor) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 5, 0, ($iGuiWidth / 3) + 8, $aPos[$iHeight]) $uT_GUI[$hLabel] = GUICtrlCreateLabel($sName, $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight]) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth], $aPos[$iTop] + 1, 100, $aPos[$iHeight]) $uT_GUI[$hProg] = GUICtrlCreateProgress($aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], $PBS_SMOOTH) GUICtrlSetData($uT_GUI[$hProg], $iPercent) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 9, $aPos[$iTop] - 1, 10, $aPos[$iHeight]) GUICtrlCreateLabel("D:", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], -1) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 6, $aPos[$iTop], 60, $aPos[$iHeight]) $uT_GUI[$hDown] = GUICtrlCreateLabel($iDownload, $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], $SS_LEFT) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 6, $aPos[$iTop], 10, $aPos[$iHeight]) GUICtrlCreateLabel("U:", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight]) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 6, $aPos[$iTop], 60, $aPos[$iHeight]) $uT_GUI[$hUp] = GUICtrlCreateLabel($iUpload, $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], $SS_LEFT) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 6, $aPos[$iTop], 22, $aPos[$iHeight]) GUICtrlCreateLabel("ETA:", $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight]) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) $aPos = __uT_ControlPos($aPos[$iLeft] + $aPos[$iWidth] + 6, $aPos[$iTop], 60, $aPos[$iHeight]) $uT_GUI[$hETA] = GUICtrlCreateLabel($iETA, $aPos[$iLeft], $aPos[$iTop], $aPos[$iWidth], $aPos[$iHeight], $SS_LEFT) GUICtrlSetFont(-1, 8.5, 400, 0, "Tahoma") GUICtrlSetColor(-1, 0x000000) GUISetOnEvent($GUI_EVENT_SECONDARYDOWN, "__uT_ContextMenu", $uT_GUI[$hBar]) GUISetState(@SW_SHOW, $uT_GUI[$hBar]) $uT_Bar[$uT_Count] = $uT_GUI $iBarOrder += 1 Return 1 EndFunc ;==>__uT_Bar Func __uT_ContextMenu($bPersist = True) If Not IsDeclared("bPersist") Then Assign("bPersist", True, 1) $uT_LastBar = @GUI_WinHandle If Not $bPersist Then If $uT_CM <> Default Then GUIDelete($uT_CM) $uT_CM = Default EndIf Return AdlibUnRegister("__uT_CMHandler") EndIf If $uT_CM <> Default Then Return Local $aPos = WinGetPos($uT_LastBar), $iWidth = 70, $iHeight = 15, $vMsg If Not UBound($aPos) Then Return Local $iX = (MouseGetPos(0) - ($iWidth / 2)) If $iX < $aPos[0] Then $iX = ($aPos[0] + 1) If ($iX + $iWidth) > ($aPos[0] + $aPos[2]) Then $iX = (($aPos[0] + $aPos[2]) - ($iWidth + 1)) $uT_CM = GUICreate("", $iWidth, $iHeight, $iX, $aPos[1] + 1, $WS_POPUP, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)) GUICtrlCreateLabel("&Close", 0, 0, $iWidth, 12, $SS_CENTER) GUICtrlSetOnEvent(-1, "__uT_CloseBar") GUISetState(@SW_SHOW, $uT_CM) AdlibRegister("__uT_CMHandler", 250) EndFunc ;==>__uT_ContextMenu Func __uT_CMHandler() If Not WinActive($uT_CM) Then __uT_ContextMenu(False) EndFunc ;==>__uT_CMHandler Func __uT_CloseBar() GUIDelete($uT_LastBar) $uT_LastBar = Default __uT_ContextMenu(False) EndFunc ;==>__uT_CloseBar Func __uT_ControlPos($iLeft = 0, $iTop = 0, $iWidth = 0, $iHeight = 0) Local $aPos[4] = [$iLeft, $iTop, $iWidth, $iHeight] Return $aPos EndFunc ;==>__uT_ControlPos Func __uT_Auth($uT_User = Default, $uT_Pass = Default, $uT_IP = @IPAddress1, $uT_Port = 8080) Static Local $aInfo[4] If $uT_User <> Default And $uT_User And $uT_Pass <> Default And $uT_Pass Then $aInfo[0] = $uT_User $aInfo[1] = $uT_Pass $aInfo[2] = $uT_IP $aInfo[3] = $uT_Port ElseIf Not $aInfo[0] Or Not $aInfo[1] Then Return SetError(1, 0, "") EndIf Return $aInfo EndFunc ;==>__uT_Auth Func __uT_ActionRequest($sAction, $bGetToken = True) Local $sURL = $sAction If $bGetToken Then $sURL = __uT_Token() If @error Then Return SetError(@error, __uT_ServerState(@extended), -1) $sURL &= $sAction EndIf __uT_Open("GET", $sURL, False) If @error Then Return SetError(@error, __uT_ServerState(@extended), -3) __uT_SetProxy(True) If @error Then Return SetError(@error, __uT_ServerState(@extended), -2) __uT_SetCredentials() If @error Then Return SetError(@error, __uT_ServerState(@extended), -4) __uT_SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") If @error Then Return SetError(@error, __uT_ServerState(@extended), -5) __uT_Send() If @error Then Return SetError(@error, __uT_ServerState(@extended), -6) Local $sResp = __uT_ResponseText() ConsoleWrite($sResp & @CRLF) If @error Then Return SetError(@error, __uT_ServerState(@extended), -7) Else Return SetError(0, 0, $sResp) EndIf EndFunc ;==>__uT_ActionRequest Func __uT_SetRequestHeader($sHeader, $sValue = "") If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") $uT_oHTTP.SetRequestHeader($sHeader, $sValue) If @error Then Return SetError(3, @error, "") Else Return SetError(0, 0, True) EndIf EndFunc ;==>__uT_SetRequestHeader Func __uT_Open($sMethod, $sURL, $bAsync = False) If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") $uT_oHTTP.Open($sMethod, $sURL, $bAsync) If @error Then Return SetError(3, @error, "") Else Return SetError(0, 0, True) EndIf EndFunc ;==>__uT_Open Func __uT_Send($vBody = "") If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") $uT_oHTTP.Send($vBody) If @error Then Return SetError(3, @error, "") Else Return SetError(0, 0, True) EndIf EndFunc ;==>__uT_Send Func __uT_SetCredentials($nFlags = $uT_HTTPREQUEST_SETCREDENTIALS_FOR_SERVER) If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") Local $uT_Auth = __uT_Auth() If @error Or UBound($uT_Auth, 1) <> 4 Then Return SetError(3, 0, "") $uT_oHTTP.SetCredentials($uT_Auth[0], $uT_Auth[1], $nFlags) If @error Then Return SetError(4, @error, "") Else Return SetError(0, 0, True) EndIf EndFunc ;==>__uT_SetCredentials Func __uT_CacheString(Const ByRef $sResp) Local $uT_CacheString = StringRegExp($sResp, '"torrentc":(?:.*?)(\d+)"\v', 3) If @error Then Return SetError(1, 0, "") Return $uT_CacheString[0] EndFunc ;==>__uT_CacheString Func __uT_ResponseText() If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") Local $vReturn = $uT_oHTTP.ResponseText() If @error Then Return SetError(3, @error, "") Else Return SetError(0, 0, $vReturn) EndIf EndFunc ;==>__uT_ResponseText Func __uT_Error($oError) ConsoleWrite("!>ScriptLine: " & $oError.scriptline & @CRLF & "!>Description: " & $oError.description & @CRLF) EndFunc ;==>__uT_Error Func __uT_Token() Local $uT_Auth = __uT_Auth() If @error Or UBound($uT_Auth, 1) <> 4 Then Return SetError(1, 0, "") If Not $uT_Settings[1] Then $uT_Settings[1] = "http://" Local $sToken = __uT_ActionRequest($uT_Settings[1] & $uT_Auth[2] & ":" & $uT_Auth[3] & "/gui/token.html", False) If @error Then Return SetError(@error, @extended, "") Else $sToken = StringMid($sToken, 45, 64) If Not $sToken Then Return SetError(255, 0, "") Return $uT_Settings[1] & $uT_Auth[2] & ":" & $uT_Auth[3] & "/gui/?token=" & $sToken EndIf EndFunc ;==>__uT_Token Func __uT_ParseList($sResp, $sPrefixRE) $sResp = StringRegExpReplace(StringReplace($sResp, "\\", "\", 0, 2), '(\\"|\\,)', "") $sResp = StringReplace($sResp, " ", $uT_SID, 0, 2) ConsoleWrite($sResp & @CRLF) Local $aResp = StringRegExp(StringStripWS($sResp, 8), $sPrefixRE & "\[\[(.*?)\]\]", 3) If @error Then Return SetError(1, 0, "") Local $aTemp = $aResp $aResp = StringSplit($aResp[0], "],[", 3) If @error Then $aResp = $aTemp Local $aTorrent[1] For $i = 0 To UBound($aResp, 1) Step 1 $aTemp = StringRegExp($aResp[$i], '(?:\A[^,][a-zA-Z0-9]{40}[^,])[^"]\d+[^"](".*?")?', 3) If @error Then ContinueLoop $aResp[$i] = StringReplace(StringReplace($aResp[$i], $aTemp[0], StringReplace($aTemp[0], ",", "", 0, 2), 1, 2), '"', "", 0, 2) $aTemp = StringSplit($aResp[$i], ",", 3) If @error Or UBound($aTemp) < 1 Then ContinueLoop If $i = 0 Then ReDim $aTorrent[UBound($aTemp, 1)][UBound($aResp, 1)] For $n = 0 To UBound($aTemp, 1) - 1 Step 1 $aTorrent[$n][$i] = StringReplace($aTemp[$n], $uT_SID, " ", 0, 1) If UBound($aTorrent, 1) - 1 <= $n Then ExitLoop Next If UBound($aTorrent, 2) - 1 <= $i Then ExitLoop Next Return $aTorrent EndFunc ;==>__uT_ParseList Func __uT_SetProxy($sProxy = Default, $vPort = Default, $sUser = Default, $sPass = Default) If Not IsDeclared("uT_oHTTP") Then Return SetError(1, 0, "") If Not IsObj($uT_oHTTP) Then Return SetError(2, 0, "") Static Local $uT_Proxy, $uT_User, $uT_Pass If $sProxy <> Default And $vPort <> Default Then $uT_Proxy = $sProxy & ":" & String($vPort) ElseIf $uT_Proxy <> "" Then $uT_oHTTP.SetProxy($uT_HTTPREQUEST_PROXYSETTING_PROXY, $uT_Proxy) If @error Then Return SetError(3, @error, "") Else $uT_oHTTP.SetProxy($uT_HTTPREQUEST_PROXYSETTING_DEFAULT) If @error Then Return SetError(3, @error, "") EndIf If $sUser <> Default And $sPass <> Default Then $uT_User = $sUser $uT_User = $sPass If IsBool($sProxy) And $sProxy Then $uT_oHTTP.SetCredentials($uT_User, $uT_User, $uT_HTTPREQUEST_SETCREDENTIALS_FOR_PROXY) If @error Then Return SetError(4, @error, "") EndIf ElseIf $uT_User <> "" Then $uT_oHTTP.SetCredentials($uT_User, $uT_User, $uT_HTTPREQUEST_SETCREDENTIALS_FOR_PROXY) If @error Then Return SetError(4, @error, "") EndIf Return SetError(0, 0, True) EndFunc ;==>__uT_SetProxy Func __uT_ServerState($nError = Default) Static Local $uT_ServerState = 0 If $nError <> Default Then $uT_ServerState = $nError Return $uT_ServerState EndFunc ;==>__uT_ServerState ; #FUNCTION# ==================================================================================================================== ; Name ..........: __uT_GetList ; Description ...: Returns a list of torrent jobs and their properties. ; Syntax ........: __uT_GetList([$bReset = False]) ; Optional param is for internal use only! ; Parameters ....: $bReset - [optional] A boolean value. Default is False. ; Return values .: Success - 2 Dimensional array, where the colums represent the torrent jobs and rows are the properties. ; ; [0][0] = HASH (string), ; [1][0] = STATUS* (integer), ; [2][0] = NAME (string), ; [3][0] = SIZE (integer in bytes), ; [4][0] = PERCENT PROGRESS (integer in per mils 1000 = 100.0 complete), ; [5][0] = DOWNLOADED (integer in bytes), ; [6][0] = UPLOADED (integer in bytes), ; [7][0] = RATIO (integer in per mils), ; [8][0] = UPLOAD SPEED (integer in bytes per second), ; [9][0] = DOWNLOAD SPEED (integer in bytes per second), ; [10][0] = ETA (integer in seconds), ; [11][0] = LABEL (string), ; [12][0] = PEERS CONNECTED (integer), ; [13][0] = PEERS IN SWARM (integer), ; [14][0] = SEEDS CONNECTED (integer), ; [15][0] = SEEDS IN SWARM (integer), ; [16][0] = AVAILABILITY (integer in 1/65536ths), ; [17][0] = TORRENT QUEUE ORDER (integer), ; [18][0] = REMAINING (integer in bytes) ; ; [.....] ; ; Failure........: @error is nonzero ; Author ........: Decipher ; Remarks .......: Original UDF Credit - JohnOne/Supagusti, This function now should return 28 properties ; Related .......: __uT_ParseList, __uT_CacheString, __uT_GetProps, __uT_GetFiles, __uT_GetStats ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func __uT_GetList($bReset = False) Static Local $aTorrent, $uT_CacheString If $bReset Then $uT_CacheString = "" $aTorrent = "" EndIf Local $sResp = __uT_ActionRequest("&list=1&cid=" & $uT_CacheString) If @error Or Not $sResp Then Return SetError(1, 0, "") If $uT_CacheString Then Local $aTemp If @error Then Return SetError(2, 0, "") $aTemp = __uT_ParseList($sResp, 'torrentp[^\[]{' & (2 + $uT_SIDc) & '}') If Not @error Then Local $iUbound = UBound($aTemp, 1), $iLimit = 20, $aNew[$iUbound][$iLimit], $iNew = 0, $aNewTemp For $i = 0 To UBound($aTemp, 2) - 1 Step 1 For $n = 0 To UBound($aTorrent, 2) - 1 Step 1 If $aTorrent[0][$n] = $aTemp[0][$i] Then For $p = 1 To UBound($aTorrent, 1) - 1 Step 1 $aTorrent[$p][$n] = $aTemp[$p][$i] If UBound($aTemp, 1) - 1 <= $p Then ExitLoop Next ExitLoop ElseIf $n = (UBound($aTorrent, 2) - 1) Then ; Create an array contain torrent entries that haven't been cached. $iNew += 1 If $iNew > $iLimit Then $aNewTemp = $aNew $iLimit += 20 ReDim $aNew[$iUbound][$iLimit] For $new = 0 To UBound($aNewTemp, 2) - 1 Step 1 For $p = 0 To $iUbound - 1 Step 1 $aNew[$p][$new] = $aNewTemp[$p][$new] Next Next $aNewTemp = "" Else For $p = 0 To $iUbound - 1 $aNew[$p][$iNew - 1] = $aTemp[$p][$i] Next EndIf EndIf Next Next If $iNew <> 0 Then Local $iProps = UBound($aTorrent, 1), $iUbound = UBound($aTorrent, 2), $aNewArray[$iProps][$iUbound + $iNew] For $i = 0 To $iUbound - 1 Step 1 For $p = 0 To $iProps - 1 Step 1 $aNewArray[$p][$i] = $aTorrent[$p][$i] Next Next Local $n = 0 For $i = $i To ($iUbound + $iNew) - 1 Step 1 For $p = 0 To $iProps - 1 Step 1 $aNewArray[$p][$i] = $aNew[$p][$n] Next $n += 1 Next $aNew = "" $aTorrent = $aNewArray EndIf $aTemp = "" EndIf $aTemp = StringRegExp(StringStripWS($sResp, 8), '"torrentm":.{' & $uT_SIDc & '}\[(.*?)\]', 3) If Not @error And UBound($aTemp) And $aTemp[0] Then $aTemp = StringSplit(StringReplace($aTemp[0], '"', "", 0, 2), ",", 3) If UBound($aTemp) Then Local $avArray[UBound($aTorrent, 1)][UBound($aTorrent, 2) - UBound($aTemp, 1)], $bSkip, $d = 0 For $i = 0 To UBound($aTorrent, 2) - 1 Step 1 $bSkip = False For $n = 0 To UBound($aTemp, 1) - 1 Step 1 If $aTorrent[0][$i] = $aTemp[$n] Then $bSkip = True ExitLoop EndIf Next If Not $bSkip Then For $p = 0 To UBound($aTorrent, 1) - 1 Step 1 $avArray[$p][$d] = $aTorrent[$p][$i] Next If $d >= UBound($avArray, 2) - 1 Then ExitLoop $d += 1 EndIf Next $aTorrent = $avArray EndIf EndIf Else $aTorrent = __uT_ParseList($sResp, 'torrents[^\[]{' & (2 + $uT_SIDc) & '}') If @error Then Return SetError(5, 0, "") EndIf $uT_CacheString = __uT_CacheString($sResp) If @error Then Return SetError(6, 0, "") Return $aTorrent EndFunc ;==>__uT_GetList ; GUI function for getting user's configuration information Func __uT_LoginGUI($uT_Value) ; Define Intial Coords Local $iWidth = 380, $iHeight = 170, $iLeft = 10, $iTop = 10, $iSpace = 8, $iEnd = 0 ; Control & Value Variable Index Enumeration Local $uT_Control[16] Local Enum $hGUI, $hScheme, $hIP, $hPort, $hUser, $hPass, $hStart, $hRem, $hProScheme, $hProIP, $hProPort, $hProUser, $hProPass, $hProState, _ $hValidate, $hCancel ; Intial GUI Creation $uT_Control[$hGUI] = GUICreate(" µAuToBar v1.0", $iWidth, $iHeight, -1, -1, -1, BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)) ; Logo GUICtrlCreateLabel("Decipher Systems", $iWidth - 195, 8, 150, 15, $SS_LEFT) GUICtrlSetColor(-1, 0x000000) GUICtrlSetFont(-1, 8.5, 400, 6, "Verdana") GUICtrlCreateTab($iLeft, $iTop, $iWidth - 23, $iHeight - 40, -1, -1) ; Tab -1 GUICtrlCreateTabItem("WebUI") GUICtrlCreateLabel("Server Address:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, 45), _Coord($iWidth, 75), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hScheme] = GUICtrlCreateCombo($uT_Value[$hScheme], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 3), _Coord($iWidth, 65), _Coord($iHeight)) Local $sData = "https://" If $uT_Value[$hScheme] = $sData Then $sData = "http://" GUICtrlSetData(-1, $sData) $uT_Control[$hIP] = GUICtrlCreateInput($uT_Value[$hIP], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop + 1), _Coord($iWidth, 93), _Coord($iHeight, $iHeight + 3)) GUICtrlCreateLabel("Port:", _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop + 2), _Coord($iWidth, 21), _Coord($iHeight, $iHeight - 3), $SS_LEFT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hPort] = GUICtrlCreateInput($uT_Value[$hPort], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 2), _Coord($iWidth, 50), _Coord($iHeight, $iHeight + 3), $ES_NUMBER) GUICtrlCreateUpdown(-1, BitOR($UDS_ARROWKEYS, $UDS_NOTHOUSANDS)) _Coord($iEnd, $iLeft + $iWidth) ; New Row GUICtrlCreateLabel("Username:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, 43 + $iHeight + $iSpace), _Coord($iWidth, 51), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hUser] = GUICtrlCreateInput($uT_Value[$hUser], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 1), _Coord($iWidth, $iEnd - $iLeft), _Coord($iHeight, $iHeight + 2)) ; New Row GUICtrlCreateLabel("Password:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, $iTop + $iHeight + $iSpace), _Coord($iWidth, 51), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hPass] = GUICtrlCreateInput($uT_Value[$hPass], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 1), _Coord($iWidth, $iEnd - $iLeft), _Coord($iHeight, $iHeight + 2), $ES_PASSWORD) ; New Row $uT_Control[$hStart] = GUICtrlCreateCheckbox("Start after validation", _Coord($iLeft, $iSpace + 12), _Coord($iTop, $iTop + $iHeight + $iSpace), _Coord($iWidth, 115), _Coord($iHeight, 17), $SS_LEFT) GUICtrlSetState(-1, $uT_Value[$hStart]) GUICtrlSetFont(-1, 8.5, 400, -1, "Tahoma") $uT_Control[$hRem] = GUICtrlCreateCheckbox("Remember Password(s) - UNSAFE", _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop), _Coord($iWidth, 180), _Coord($iHeight)) GUICtrlSetState(-1, $uT_Value[$hRem]) GUICtrlSetFont(-1, 8.5, 400, -1, "Tahoma") ; Tab -2 GUICtrlCreateTabItem("Proxy") GUICtrlCreateLabel("Server Address:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, 45), _Coord($iWidth, 75), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hProScheme] = GUICtrlCreateCombo($uT_Value[$hProScheme], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 3), _Coord($iWidth, 65), _Coord($iHeight)) $sData = "https://" If $uT_Value[$hProScheme] = $sData Then $sData = "http://" GUICtrlSetData(-1, $sData) $uT_Control[$hProIP] = GUICtrlCreateInput($uT_Value[$hProIP], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop + 1), _Coord($iWidth, 93), _Coord($iHeight, $iHeight + 3)) GUICtrlCreateLabel("Port:", _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop + 2), +_Coord($iWidth, 21), _Coord($iHeight, $iHeight - 3), $SS_LEFT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hProPort] = GUICtrlCreateInput($uT_Value[$hProPort], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 2), _Coord($iWidth, 50), _Coord($iHeight, $iHeight + 3), $ES_NUMBER) GUICtrlCreateUpdown(-1, BitOR($UDS_ARROWKEYS, $UDS_NOTHOUSANDS)) _Coord($iEnd, $iLeft + $iWidth) ; New Row GUICtrlCreateLabel("Username:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, 43 + $iHeight + $iSpace), _Coord($iWidth, 51), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hProUser] = GUICtrlCreateInput($uT_Value[$hProUser], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 1), _Coord($iWidth, $iEnd - $iLeft), _Coord($iHeight, $iHeight + 2)) ; New Row GUICtrlCreateLabel("Password:", _Coord($iLeft, $iSpace + 12), _Coord($iTop, $iTop + $iHeight + $iSpace), _Coord($iWidth, 51), _Coord($iHeight, 15), $SS_RIGHT) GUICtrlSetColor(-1, 0x000000) $uT_Control[$hProPass] = GUICtrlCreateInput($uT_Value[$hProPass], _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop, $iTop - 1), _Coord($iWidth, $iEnd - $iLeft), _Coord($iHeight, $iHeight + 2), $ES_PASSWORD) ; New Row GUICtrlCreateLabel("*Use blank credentials to connect without auth.", _Coord($iLeft, $iSpace + 12), _Coord($iTop, $iTop + $iHeight + $iSpace), _Coord($iWidth, 245), _Coord($iHeight, 15), $SS_LEFT) GUICtrlSetColor(-1, 0x000000) GUICtrlSetFont(-1, 8.5, 400, 2, "Tahoma") $uT_Control[$hProState] = GUICtrlCreateCheckbox("Use Proxy", _Coord($iLeft, $iLeft + $iWidth + $iSpace), _Coord($iTop), _Coord($iWidth, 65), _Coord($iHeight, $iHeight + 2)) GUICtrlSetState(-1, $uT_Value[$hProState]) ; Tab Termination GUICtrlCreateTabItem("") ; Outside of tab controls $uT_Control[$hValidate] = GUICtrlCreateButton("&Validate", 215 - $iSpace, 151 - $iSpace, 75, 20) GUICtrlSetOnEvent(-1, "__uT_Validate") $uT_Control[$hCancel] = GUICtrlCreateButton("&Cancel", 290, 151 - $iSpace, 75, 20) GUICtrlSetOnEvent(-1, "__uT_Abort") ; Register GUI close special event handler GUISetOnEvent($GUI_EVENT_CLOSE, "__uT_Abort") ; Return a one dimensional array of controls Return $uT_Control EndFunc ;==>__uT_LoginGUI ; Helper Function - Helps the programmer and makes the GUI creation sorta dynamic if updating positions. Without wasted space! Func _Coord(ByRef $iCoord, $iNewCoord = Default) If $iNewCoord <> Default Then $iCoord = $iNewCoord Return $iCoord EndFunc ;==>_Coord Func __uT_Manage($sAction) ; Define settings file and array variables Static Local $uT_Control Switch ($sAction) Case "Configure" TrayItemSetState($uT_PM, $TRAY_CHECKED) TrayItemSetState($uT_PM, $TRAY_DISABLE) $uT_Paused = True Local $aTemp ; Check for settings, Create default values array if neccessary, array bounds check, read stored settings to array if available If FileExists($sINI) Then $aTemp = IniReadSection($sINI, "µSettings") If @error Or UBound($aTemp, 1) <> 17 Then Local $uT_Value[16] = [15, "http://", @IPAddress1, 8080, "", "", $GUI_CHECKED, $GUI_UNCHECKED, "http://", "127.0.0.1", 8118, "", "", $GUI_UNCHECKED] Else Local $uT_Value[16] $uT_Value[0] = 15 For $i = 1 To $aTemp[0][0] Step 1 If IsInt($aTemp[$i][1]) Then $aTemp[$i][1] = Int($aTemp[$i][1]) $uT_Value[$i - 1] = $aTemp[$i][1] Next EndIf ; Pass stored or default settings array to the gui creation function, returns gui controls array $uT_Control = __uT_LoginGUI($uT_Value) ; Show the Login Interface GUISetState(@SW_SHOW, $uT_Control[0]) Case "Save" $uT_Paused = False TrayItemSetState($uT_PM, $TRAY_UNCHECKED) TrayItemSetState($uT_PM, $TRAY_ENABLE) If $uT_RM <> Default Then TrayItemDelete($uT_RM) $uT_RM = Default ; create the array for compliance with Autoit's IniWriteSection function Local $uT_Value[16][2], $vData = "Undefined" ; Read all the settings from the control array For $i = 0 To 15 Step 1 ; Weed out unneccessary function calls If $i > 0 And $i < 14 Then $vData = GUICtrlRead($uT_Control[$i]) If $i = 7 And $vData = $GUI_UNCHECKED Then If $uT_Value[5][1] Then $uT_Password = $uT_Value[5][1] $uT_Value[5][1] = "" EndIf $uT_Value[$i][0] = "µOpt-" & $i $uT_Value[$i][1] = $vData $vData = "Undefined" Next ; Destroy the GUI GUIDelete($uT_Control[0]) ; Save configuration IniWriteSection($sINI, "µSettings", $uT_Value, 0) If $uT_Started Then TrayTip("µAuToBar", "Restarting...", 5, 1) Run(@ScriptFullPath) Sleep(5000) Exit (0) EndIf Case "Startup" If Not FileExists($sINI) Then Return False Local $aTemp = IniReadSection($sINI, "µSettings") If @error Or UBound($aTemp, 1) <> 17 Then Return SetError(1, 0, "") For $i = 2 To 6 Step 1 If Not $aTemp[$i][1] Then If $i = 6 And $uT_Password <> Default Then ExitLoop Return False EndIf Next If Int($aTemp[8][1]) <> $GUI_CHECKED Then Return False If Int($aTemp[14][1]) = $GUI_CHECKED Then For $i = 9 To 11 Step 1 If Not $aTemp[$i][1] Then Return SetError(2, 0, "") Next EndIf Local $aSettings[16] For $i = 1 To 16 Step 1 $aSettings[$i - 1] = $aTemp[$i][1] Next Return $aSettings Case "Validate" $uT_Paused = False TrayItemSetState($uT_PM, $TRAY_UNCHECKED) TrayItemSetState($uT_PM, $TRAY_ENABLE) If $uT_RM <> Default Then TrayItemDelete($uT_RM) $uT_RM = Default ; create the array for compliance with Autoit's IniWriteSection function Local $uT_Value[16][2], $vData = "Undefined" ; Read all the settings from the control array For $i = 0 To 15 Step 1 ; Weed out unneccessary function calls If $i > 0 And $i < 14 Then $vData = GUICtrlRead($uT_Control[$i]) $uT_Value[$i][0] = "µOpt-" & $i $uT_Value[$i][1] = $vData $vData = "Undefined" Next For $i = 1 To 5 Step 1 If Not $uT_Value[$i][1] And $i <> 6 Then Return SetError(4, 0, "") Next If $uT_Value[7][1] = $GUI_UNCHECKED Then $uT_Password = $uT_Value[5][1] $uT_Value[5][1] = "" Else $uT_Password = Default EndIf If Int($uT_Value[13][1]) = $GUI_CHECKED Then For $i = 8 To 10 Step 1 If Not $uT_Value[$i][1] Then Return SetError(2, 0, "") Next EndIf Local $aSettings[16] For $i = 0 To 15 Step 1 $aSettings[$i] = $uT_Value[$i][1] Next Return $aSettings Case "Quit" GUIDelete($uT_Control[0]) Exit EndSwitch EndFunc ;==>__uT_Manage Func __uT_Configure() __uT_Manage("Configure") EndFunc ;==>__uT_Configure Func __uT_Startup() $uT_Settings = __uT_Manage("Startup") If @error = 2 Then MsgBox(262144, "µAuToBar", "There appears to be an error with the current proxy configuration!") If Not UBound($uT_Settings) Then __uT_Manage("Configure") Else $bValidSettings = True EndIf EndFunc ;==>__uT_Startup Func __uT_Validate() $uT_Settings = __uT_Manage("Validate") If @error = 2 Then MsgBox(262144, "µAuToBar", "There appears to be an error with the current proxy configuration!") ElseIf @error = 4 Then MsgBox(262144, "µAuToBar", "The current µTorrent server information failed validation! Please the check WebUI tab.") ElseIf UBound($uT_Settings) Then __uT_Manage("Save") ; Connection Failure Check should be done here! $bValidSettings = True If $uT_Settings[6] <> $GUI_CHECKED Then Exit Else MsgBox(262144, "µAuToBar", "The current µTorrent server information failed validation! An Unknown error occurred!") EndIf EndFunc ;==>__uT_Validate Func __uT_Abort() MsgBox(262144, "µAuToBar", "User canceled configuration changes. µAuToBar will now close.", 15) __uT_Manage("Quit") EndFunc ;==>__uT_Abort Func __uT_Exit() Exit (0) EndFunc ;==>__uT_Exit Func __uT_Suspend() If $uT_Paused Then $uT_Paused = False TrayItemSetState($uT_PM, $TRAY_UNCHECKED) TrayItemSetState($uT_PM, $TRAY_ENABLE) TrayItemDelete($uT_RM) $uT_RM = Default Else $uT_Paused = True TrayItemSetState($uT_PM, $TRAY_CHECKED) TrayItemSetState($uT_PM, $TRAY_DISABLE) If $uT_RM = Default Then TrayItemDelete($uT_EX) $uT_RM = TrayCreateItem("Resume") TrayItemSetOnEvent($uT_RM, "__uT_Suspend") $uT_EX = TrayCreateItem("Exit") TrayItemSetOnEvent($uT_EX, "__uT_Exit") EndIf EndIf EndFunc ;==>__uT_Suspend -- Script: µAuToBar.au3 +14 Binary: µAuToBar.zip Icon: Oxygen-Icons.org-Oxygen-Status-user-invisible.ico Don't Forget To Seed!!!!
  9. Rich-Edit Predict Text UDF Working It sub classes the rich-edit control and matches the current word through the Database & sets selection in accordance. For Edit Controls look Functions Predicts Text from an User-Defined Database.Sets the Predicted Text when Enter is pressed.Pressing Backspace deletes the previously typed character.Support Editing, Overwriting, Updating, Deleting the Database.Has the Feature to add New words the user types in the control, to the Database.Supports Sensitive and In-Sensitive Prediction.Currently Supports Auto-completion only.Rich Edit Controls only supportedFuture Updates​Support Auto-suggestion.Note That if you set a Password Char for the Edit Box the Prediction will automatically get Unregistered.This UDF requires Beta Release 3.3.9.4++ [beta-Oct-2012] Index ; #CURRENT# ===================================================================================================================== ;_RegisterPrediction ;_UpdatePredictList ;_UnRegisterPrediction ;_RegisterListingSpaceWords ;_RegisterListingNewWords ;_GetSelectedText ;_GetListCount ;_GetCurrentWord ;_GetCaretOffset ; =============================================================================================================================== ; #INTERNAL_USE_ONLY# =========================================================================================================== ;_New_WndProc ; AddToArray ; MakeArray ;_RichEdit_SubClass ;_AutoExit ;_PredictText ;_PredictSpaceText ;_SetSelection ;_MatchString ;_CtrlSetStyle ;_CtrlGetStyle ;_RemoveBit ; =============================================================================================================================== Please Notify for any other Updates and Bugs. Change-log v1.0 - First Release v1.1 - Fixed a bug. RichEditPredictText [uDF] v1.1 v1.1 RichEditPredictText UDF.7z Previous Downloads : 80 Regards Phoenix XL
  10. hello, i made a script to show a traytip every "10 SECs" and timeout is "2 SECs", but i don't know why it doesn't hide after 2 SECs or even 1000 sec,, i must click on it to hide check the script: While 1 $start = TimerInit() Sleep(10000) $End = TimerDiff($start) $rEND = Round($End / 1000, 0) If $rEND = "10" Then $x = TrayTip("test", "testtt", 2) Sleep(2000) EndIf WEndany help would be appreciated thanks.
×