Celtic88 Posted March 5, 2013 Share Posted March 5, 2013 (edited) Hello World ! my first script i have a problem with listview When I put my information please help me! Edited March 8, 2013 by yacmacdc Added autoit tags Link to comment Share on other sites More sharing options...
BrewManNH Posted March 5, 2013 Share Posted March 5, 2013 What is the problem with your script? If you expect anyone to help you, you have to help us first by explaining what the issue is. I'm not going to run this script just to find out what that is, and looking through it line by line isn't going to do much without some idea of what to look for. Celtic88 1 If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
Celtic88 Posted March 5, 2013 Author Share Posted March 5, 2013 What is the problem with your script? If you expect anyone to help you, you have to help us first by explaining what the issue is.I'm not going to run this script just to find out what that is, and looking through it line by line isn't going to do much without some idea of what to look for.Thanks for the reply my problem is listeview Appear and then disappear Link to comment Share on other sites More sharing options...
Celtic88 Posted March 5, 2013 Author Share Posted March 5, 2013 look http://www.youtube.com/watch?v=m-zcbXvKUx8 Link to comment Share on other sites More sharing options...
BrewManNH Posted March 5, 2013 Share Posted March 5, 2013 (edited) It's going to do that because you're updating the listview quickly in the loop. Here's a way to hide the process, yet still let the user know it's working in the background. Here's your script modified with a function I created that will do that for you, the lines added have all been marked in the code. expandcollapse popup#NoTrayIcon #include <GUILIstview.au3> ; <<<<<<<<<<<< added Opt("GUIOnEventMode", 1) Global $Lister[9999][2] $COUNT = 0 ;~ $LVM_SETCOLUMNWIDTH = (4096 + 30) ; <<<<<<<<<< not needed now $Form1 = GUICreate("Hello " & @ComputerName, 609, 480, 302, 273) GUISetOnEvent(-3, "__Exit") $Tab1 = GUICtrlCreateTab(8, 49, 593, 393) $TabSheet1 = GUICtrlCreateTabItem(" Liste proxy ") $ListView1 = GUICtrlCreateListView("IP:PORT|TYPE|COUNTRY|TIME", 8, 75, 591, 366) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 150) $settings = GUICtrlCreateContextMenu($ListView1) $SENDS = GUICtrlCreateMenuItem("add to favoris", $settings) GUICtrlSetOnEvent(-1, "add") $Checkbox1 = GUICtrlCreateCheckbox("Use a proxy", 104, 8, 97, 17) GUICtrlSetOnEvent(-1, "Checkbox") $Checkbox2 = GUICtrlCreateCheckbox("Rendom proxy", 104, 24, 97, 17) GUICtrlSetState(-1, 129) $Checkbox3 = GUICtrlCreateCheckbox("Bypass proxy server for local addresses", 224, 8, 217, 17) GUICtrlSetState(-1, 129) $TabSheet2 = GUICtrlCreateTabItem(" favoris ") $ListView2 = GUICtrlCreateListView("IP:PORT|TYPE|COUNTRY|TIME", 8, 75, 591, 366) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 150) GUICtrlCreateTabItem("") $Button1 = GUICtrlCreateButton("Set proxy", 8, 8, 75, 33) GUICtrlSetOnEvent(-1, "SELECTED") $Label1 = GUICtrlCreateLabel("", 16, 453, 111, 17) $Label2 = GUICtrlCreateLabel("", 133, 453, 464, 17) $Group1 = GUICtrlCreateGroup("", 8, 440, 593, 33) GUISetState() GETPROXY() Do Sleep(10000) Until False Func __Exit() Exit EndFunc ;==>__Exit Func _DownloadProgress($FileURL, $FileSave) $FileSize = InetGetSize($FileURL) If $FileSize = 0 Then Return 404 $FileDownload = InetGet($FileURL, $FileSave, 0, 1) Do $Percentage = InetGetInfo($FileDownload, 0) * 100 / $FileSize GUICtrlSetData($Label1, "Please wait ... " & Round($Percentage, 0) & " % ") Sleep(200) Until InetGetInfo($FileDownload, 2) EndFunc ;==>_DownloadProgress Func _StringBetween($s_String, $s_Start, $s_End, $v_Case = -1) Local $s_case = "" If $v_Case = Default Or $v_Case = -1 Then $s_case = "(?i)" Local $s_pattern_escape = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)" $s_Start = StringRegExpReplace($s_Start, $s_pattern_escape, "\\$1") $s_End = StringRegExpReplace($s_End, $s_pattern_escape, "\\$1") If $s_Start = "" Then $s_Start = "\A" If $s_End = "" Then $s_End = "\z" Local $a_ret = StringRegExp($s_String, "(?s)" & $s_case & $s_Start & "(.*?)" & $s_End, 3) If @error Then Return SetError(1, 0, 0) Return $a_ret EndFunc ;==>_StringBetween Func add() $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf $StringSplit = StringSplit($selected, "|", 1) GUICtrlCreateListViewItem($StringSplit[1] & "|" & $StringSplit[2] & "|" & $StringSplit[3] & "|" & $StringSplit[4], $ListView2) EndFunc ;==>add Func Checkbox() If GUICtrlRead($Checkbox1) = 1 Then GUICtrlSetState($Checkbox2, 64) GUICtrlSetState($Checkbox3, 64) Else GUICtrlSetState($Checkbox2, 128) GUICtrlSetState($Checkbox3, 128) EndIf EndFunc ;==>Checkbox Func favo() $selected = GUICtrlRead(GUICtrlRead($ListView2)) If Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.!!!") Return EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[3] & " Ping: " & $ping) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "1") RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "proxyserver", "REG_SZ", $StringSplit[1]) DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) EndFunc ;==>favo Func GETPROXY() ;~ RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) GUICtrlSetData($Label1, "Please wait ...") $FileURL1 = "http://www.proxylists.net/proxylists.xml" $FileName1 = @TempDir & "\proxylists" $Down = _DownloadProgress($FileURL1, $FileName1) If $Down = 404 Then GUICtrlSetData($Label1, "Error: Connection lost..") Return EndIf $m = _StringBetween(FileRead($FileName1), "<prx:proxy><prx:ip>", "</prx:check_timestamp></prx:proxy>") _GUICtrlListView_BeginUpdate($ListView1) ; <<<<<<<<<<<<<<<<<< makes updating the ListView faster GUISetState(@SW_HIDE, $Form1) ; <<<<<<<<<<<<<<<<<<< Hide the main GUI while updating Local $ProgressGUI = _ProgressGUI("Processing, please wait", 1) For $i = 1 To UBound($m) - 1 Local $rep $rep = StringReplace($m[$i], "</prx:ip><prx:port>", "_") $rep = StringReplace($rep, "</prx:port><prx:type>", "_") $rep = StringReplace($rep, "</prx:type><prx:country>", "_") $rep = StringReplace($rep, "</prx:country><prx:check_timestamp>", "_") $FIN = StringSplit($rep, "_") If $FIN[3] = "Transparent" Then Sleep(1) $COUNT = $COUNT + 1 GUICtrlSetData($Label1, "Proxies N° " & $COUNT) GUICtrlSetData($ProgressGUI[2], "Processing, please wait" & @CRLF & "Proxies N° " & $COUNT) $Lister[$COUNT][1] = GUICtrlCreateListViewItem($FIN[1] & ":" & $FIN[2] & "|" & $FIN[3] & "|" & $FIN[4] & "|" & $FIN[5], $ListView1) EndIf ;~ GUICtrlSetData($ProgressGUI[1], ($i / (UBound($m) - 1)) * 100) ; <<<<<<<<< Progress bar fills up GUICtrlSetData($ProgressGUI[1], 100 - ($i / (UBound($m) - 1)) * 100) ; <<<<<<<<<< Progress bar moves down Next _GUICtrlListView_EndUpdate($ListView1) ; <<<<<<<<<<<<<< added GUIDelete($ProgressGUI[0]) ; <<<<<<<<<<<< deletes the Progress bar GUI GUISetState(@SW_SHOW, $Form1) ; <<<<<<<<<<< Shows your original GUI when it's all done. EndFunc ;==>GETPROXY Func SELECTED() If GUICtrlRead($Checkbox3) = 1 Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride", "REG_SZ", "<local>") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) Else RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) EndIf If GUICtrlRead($Tab1) Then Call("favo") Return EndIf If GUICtrlRead($Checkbox1) = 1 Then If GUICtrlRead($Checkbox2) = 1 Then GUICtrlSetData($Label2, "") $Random = Random(1, $COUNT, 1) $selected = GUICtrlRead($Lister[$Random][1]) If Not $selected <> "" Then Return GUICtrlSetBkColor($Lister[$Random][1], 0xCCFFCC) GUICtrlSendMsg($ListView1, 0x1013, $Random - 1, 1) Else $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[3] & " Ping: " & $ping) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "1") RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "proxyserver", "REG_SZ", $StringSplit[1]) DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) Else RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) GUICtrlSetData($Label2, " Your current proxy is Default !") EndIf EndFunc ;==>SELECTED ; #FUNCTION# ==================================================================================================================== ; Name...........: _ProgressGui ; Description ...: A small splash screen type GUI with a progress bar and a configurable label ; Syntax.........: _ProgressGUI($MsgText = "Text Message"[, $_MarqueeType = 0[, $_iFontsize = 14[, $_sFont = "Arial"[, $_iXSize = 290[, $_iYSize = 100[, $_GUIColor = 0x00080FF[, $_FontColor = 0x0FFFC19]]]]]]]) ; Parameters ....: $MsgText - Text to display on the GUI ; $_MarqueeType - [optional] Style of Progress Bar you want to use: ; |0 - Marquee style [default] ; |1 - Normal Progress Bar style ; $_iFontsize - [optional] The font size that you want to display the $MsgText at [default = 14] ; $_sFont - [optional] The font you want the message to use [default = "Arial"] ; $_iXSize - [optional] Width of the GUI [Default = 290] - Minimum size is 80 ; $_iYSize - [optional] Height of the GUI [Default = 100] ; $_GUIColor - [optional] Background color of the GUI [default = 0x00080FF = Blue] ; $_sFontColor - [optional] Color of the text message [default = 0x0FFFC19 = Yellow] ; Return values .: Success - Returns an array of the Control IDs created in the format: ; |array[0] = The handle of the GUI ; |array[1] = The handle of the Progress bar ; |array[2] = The handle of the label ; Failure - 0 and @error to 1 if the GUI couldn't be created ; Author ........: Bob Marotte (BrewManNH) ; Modified.......: ; Remarks .......: This will create a customizable GUI with a progress bar. The default style of the progress bar ; using this function is the Marquee style of progress bar. If you call this function with any ; positive, non-zero number it will use the normal progress bar style. All optional parameters ; will accept the Default keyword, an empty string "", or -1 if passed to the function, except ; the color parameters which will not accept the Default keyword. ; Use the array[0] return value to delete the GUI when you're done using it (ex. GUIDelete($Returnvalue[0]) ; Related .......: None ; Link ..........: ; Example .......: No ; =============================================================================================================================== Func _ProgressGUI($MsgText = "Text Message", $_MarqueeType = 0, $_iFontsize = 14, $_sFont = "Arial", $_iXSize = 290, $_iYSize = 100, $_GUIColor = 0x00080FF, $_FontColor = 0x0FFFC19) Local $PBMarquee[3] ; bounds checking/correcting If $_iFontsize = "" Or $_iFontsize = "Default" Or $_iFontsize = "-1" Then $_iFontsize = 14 If $_iFontsize < 1 Then $_iFontsize = 1 If $_iXSize = "" Or $_iXSize = "-1" Or $_iXSize = Default Then $_iXSize = 290 If $_iXSize < 80 Then $_iXSize = 80 If $_iXSize > @DesktopWidth - 50 Then $_iXSize = @DesktopWidth - 50 If $_iYSize = "" Or $_iYSize = "-1" Or $_iYSize = Default Then $_iYSize = 100 If $_iYSize > @DesktopHeight - 50 Then $_iYSize = @DesktopHeight - 50 If $_GUIColor = "" Or $_GUIColor = "-1" Then $_GUIColor = 0x00080FF If $_sFont = "" Or $_sFont = "-1" Or $_sFont = "Default" Then $_sFont = "Arial" ;create the GUI $PBMarquee[0] = GUICreate("", $_iXSize, $_iYSize, -1, -1, BitOR(0x00400000, 0x80000000)) If @error Then Return SetError(@error, 0, 0) ; if there's any error with creating the GUI, return the error code GUISetBkColor($_GUIColor, $PBMarquee[0]) ; Create the progressbar If $_MarqueeType < 1 Then ; if $_MarqueeType < 1 then use the Marquee style progress bar $PBMarquee[1] = GUICtrlCreateProgress(20, $_iYSize - 20, $_iXSize - 40, 15, 9) ; uses the $PBS_SMOOTH and $PBS_MARQUEE style GUICtrlSendMsg($PBMarquee[1], 1034, True, 20) Else ; If $_MarqueeType > 0 then use the normal style progress bar $PBMarquee[1] = GUICtrlCreateProgress(20, $_iYSize - 20, $_iXSize - 40, 15, 1) ; Use the $PBS_SMOOTH style EndIf $PBMarquee[2] = GUICtrlCreateLabel($MsgText, 20, 20, $_iXSize - 40, $_iYSize - 45) ; create the label for the GUI GUICtrlSetFont(-1, $_iFontsize, 400, Default, $_sFont) GUICtrlSetColor(-1, $_FontColor) GUISetState() Return SetError(0, 0, $PBMarquee) ;Return the ControlIDs of the GUI and the Progress bar EndFunc ;==>_ProgressGUI Edited March 5, 2013 by BrewManNH Celtic88 1 If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
Celtic88 Posted March 5, 2013 Author Share Posted March 5, 2013 AA I understand BrewManNH Thank you very much Link to comment Share on other sites More sharing options...
Nessie Posted March 5, 2013 Share Posted March 5, 2013 (edited) Try this, much more faster than your original code: expandcollapse popup#NoTrayIcon #include <GUILIstview.au3> ; <<<<<<<<<<<< added Opt("GUIOnEventMode", 1) Global $Lister[9999][2] $COUNT = 0 ;~ $LVM_SETCOLUMNWIDTH = (4096 + 30) ; <<<<<<<<<< not needed now $Form1 = GUICreate("Hello " & @ComputerName, 609, 480, 302, 273) GUISetOnEvent(-3, "__Exit") $Tab1 = GUICtrlCreateTab(8, 49, 593, 393) $TabSheet1 = GUICtrlCreateTabItem(" Liste proxy ") $ListView1 = GUICtrlCreateListView("IP:PORT|TYPE|COUNTRY|TIME", 8, 75, 591, 366) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 150) $settings = GUICtrlCreateContextMenu($ListView1) $SENDS = GUICtrlCreateMenuItem("add to favoris", $settings) GUICtrlSetOnEvent(-1, "add") $Checkbox1 = GUICtrlCreateCheckbox("Use a proxy", 104, 8, 97, 17) GUICtrlSetOnEvent(-1, "Checkbox") $Checkbox2 = GUICtrlCreateCheckbox("Rendom proxy", 104, 24, 97, 17) GUICtrlSetState(-1, 129) $Checkbox3 = GUICtrlCreateCheckbox("Bypass proxy server for local addresses", 224, 8, 217, 17) GUICtrlSetState(-1, 129) $TabSheet2 = GUICtrlCreateTabItem(" favoris ") $ListView2 = GUICtrlCreateListView("IP:PORT|TYPE|COUNTRY|TIME", 8, 75, 591, 366) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 3, 150) GUICtrlCreateTabItem("") $Button1 = GUICtrlCreateButton("Set proxy", 8, 8, 75, 33) GUICtrlSetOnEvent(-1, "SELECTED") $Label1 = GUICtrlCreateLabel("", 16, 453, 111, 17) $Label2 = GUICtrlCreateLabel("", 133, 453, 464, 17) $Group1 = GUICtrlCreateGroup("", 8, 440, 593, 33) GUISetState() GETPROXY() Do Sleep(10000) Until False Func __Exit() Exit EndFunc ;==>__Exit Func _DownloadProgress($FileURL, $FileSave) $FileSize = InetGetSize($FileURL) If $FileSize = 0 Then Return 404 $FileDownload = InetGet($FileURL, $FileSave, 0, 1) Do $Percentage = InetGetInfo($FileDownload, 0) * 100 / $FileSize GUICtrlSetData($Label1, "Please wait ... " & Round($Percentage, 0) & " % ") Sleep(200) Until InetGetInfo($FileDownload, 2) EndFunc ;==>_DownloadProgress Func _StringBetween($s_String, $s_Start, $s_End, $v_Case = -1) Local $s_case = "" If $v_Case = Default Or $v_Case = -1 Then $s_case = "(?i)" Local $s_pattern_escape = "(\.|\||\*|\?|\+|\(|\)|\{|\}|\[|\]|\^|\$|\\)" $s_Start = StringRegExpReplace($s_Start, $s_pattern_escape, "\\$1") $s_End = StringRegExpReplace($s_End, $s_pattern_escape, "\\$1") If $s_Start = "" Then $s_Start = "\A" If $s_End = "" Then $s_End = "\z" Local $a_ret = StringRegExp($s_String, "(?s)" & $s_case & $s_Start & "(.*?)" & $s_End, 3) If @error Then Return SetError(1, 0, 0) Return $a_ret EndFunc ;==>_StringBetween Func add() $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf $StringSplit = StringSplit($selected, "|", 1) GUICtrlCreateListViewItem($StringSplit[1] & "|" & $StringSplit[2] & "|" & $StringSplit[3] & "|" & $StringSplit[4], $ListView2) EndFunc ;==>add Func Checkbox() If GUICtrlRead($Checkbox1) = 1 Then GUICtrlSetState($Checkbox2, 64) GUICtrlSetState($Checkbox3, 64) Else GUICtrlSetState($Checkbox2, 128) GUICtrlSetState($Checkbox3, 128) EndIf EndFunc ;==>Checkbox Func favo() $selected = GUICtrlRead(GUICtrlRead($ListView2)) If Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.!!!") Return EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[3] & " Ping: " & $ping) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "1") RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "proxyserver", "REG_SZ", $StringSplit[1]) DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) EndFunc ;==>favo Func GETPROXY() ;~ RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) GUICtrlSetData($Label1, "Please wait ...") $FileURL1 = "http://www.proxylists.net/proxylists.xml" $FileName1 = @TempDir & "\proxylists" $Down = _DownloadProgress($FileURL1, $FileName1) If $Down = 404 Then GUICtrlSetData($Label1, "Error: Connection lost..") Return EndIf $File_Open = FileOpen($FileName1, 0) $File_Read = FileRead($File_Open) FileClose($File_Open) $Regex_IP = StringRegExp($File_Read, "<prx:ip>(.*?)</prx:ip>", 3) $Regex_Port = StringRegExp($File_Read, "<prx:port>(.*?)</prx:port>", 3) $Regex_Type = StringRegExp($File_Read, "<prx:type>(.*?)</prx:type>", 3) $Regex_Country = StringRegExp($File_Read, "<prx:country>(.*?)</prx:country>", 3) $Regex_Time = StringRegExp($File_Read, "<prx:check_timestamp>(.*?)</prx:check_timestamp>", 3) $n_IP = UBound($Regex_IP) $n_Port = UBound($Regex_Port) $n_Type = UBound($Regex_Type) $n_Country = UBound($Regex_Country) $n_Time = UBound($Regex_Time) If $n_IP <> $n_Port Or $n_Port <> $n_Type Or $n_Type <> $n_Country Or $n_Country <> $n_Time Then MsgBox(0,"Error", "Something goes wrong") EndIf Dim $aResult[$n_IP][4] For $i = 0 To $n_IP - 1 $aResult[$i][0] = $Regex_IP[$i] & ":" & $Regex_Port[$i] $aResult[$i][1] = $Regex_Type[$i] $aResult[$i][2] = $Regex_Country[$i] $aResult[$i][3] = $Regex_Time[$i] Next _GUICtrlListView_AddArray($ListView1, $aResult) GUISetState(@SW_SHOW, $Form1) ; <<<<<<<<<<< Shows your original GUI when it's all done. EndFunc ;==>GETPROXY Func SELECTED() If GUICtrlRead($Checkbox3) = 1 Then RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride", "REG_SZ", "<local>") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) Else RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "ProxyOverride") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) EndIf If GUICtrlRead($Tab1) Then Call("favo") Return EndIf If GUICtrlRead($Checkbox1) = 1 Then If GUICtrlRead($Checkbox2) = 1 Then GUICtrlSetData($Label2, "") $Random = Random(1, $COUNT, 1) $selected = GUICtrlRead($Lister[$Random][1]) If Not $selected <> "" Then Return GUICtrlSetBkColor($Lister[$Random][1], 0xCCFFCC) GUICtrlSendMsg($ListView1, 0x1013, $Random - 1, 1) Else $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[3] & " Ping: " & $ping) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "1") RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "proxyserver", "REG_SZ", $StringSplit[1]) DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) Else RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings", "Proxyenable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) GUICtrlSetData($Label2, " Your current proxy is Default !") EndIf EndFunc ;==>SELECTED When you have a lot of item use _GUICtrlListView_AddArray insted of add one item to time, as you can see you will populate your listview much faster. Hi! Edited March 5, 2013 by Nessie My UDF: NetInfo UDF Play with your network, check your download/upload speed and much more! YTAPI Easy to use YouTube API, now you can easy retrive all needed info from a video. NavInfo Check if a specific browser is installed and retrive other usefull information. YWeather Easy to use Yahoo Weather API, now you can easily retrive details about the weather in a specific region. No-IP UDF Easily update your no-ip hostname(s). My Script: Wallpaper Changer Change you wallpaper dinamically, you can also download your wallpaper from your website and share it with all! My Snippet: _ImageSaveToBMPConvert an image to bmp format. _SciteGOTO Open a file in SciTE at specific fileline. _FileToHex Show the hex code of a specified file Link to comment Share on other sites More sharing options...
BrewManNH Posted March 5, 2013 Share Posted March 5, 2013 _GUICtrlListView_AddArray isn't any faster, it's just doing the same thing, splitting the array up, inside the function. Plus, if he ever decides to add sortting of the listview, that function will not allow the ListView items to be sortable. If I posted any code, assume that code was written using the latest release version unless stated otherwise. Also, if it doesn't work on XP I can't help with that because I don't have access to XP, and I'm not going to.Give a programmer the correct code and he can do his work for a day. Teach a programmer to debug and he can do his work for a lifetime - by Chirag GudeHow to ask questions the smart way! I hereby grant any person the right to use any code I post, that I am the original author of, on the autoitscript.com forums, unless I've specifically stated otherwise in the code or the thread post. If you do use my code all I ask, as a courtesy, is to make note of where you got it from. Back up and restore Windows user files _Array.au3 - Modified array functions that include support for 2D arrays. - ColorChooser - An add-on for SciTE that pops up a color dialog so you can select and paste a color code into a script. - Customizable Splashscreen GUI w/Progress Bar - Create a custom "splash screen" GUI with a progress bar and custom label. - _FileGetProperty - Retrieve the properties of a file - SciTE Toolbar - A toolbar demo for use with the SciTE editor - GUIRegisterMsg demo - Demo script to show how to use the Windows messages to interact with controls and your GUI. - Latin Square password generator Link to comment Share on other sites More sharing options...
Celtic88 Posted March 6, 2013 Author Share Posted March 6, 2013 (edited) I have found the solution Thank you for your help expandcollapse popup#NoTrayIcon Opt("GUIOnEventMode", 1) Global $COUNT Global $REG = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings" GUICreate("Hello " & @ComputerName, 509, 480, 302, 273) GUISetOnEvent(-3, "__Exit") $Checkbox1 = GUICtrlCreateCheckbox("Use a proxy", 104, 9, 97, 17) GUICtrlSetOnEvent(-1, "Checkbox") GUICtrlSetState(-1, 1) $ListView1 = GUICtrlCreateListView("IP:PORT|COUNTRY|TIME", 6, 75, 497, 366) GUICtrlSendMsg(-1, 4096 + 30, 0, 160) GUICtrlSendMsg(-1, 4096 + 30, 1, 160) GUICtrlSendMsg(-1, 4096 + 30, 2, 150) $Tab1 = GUICtrlCreateTab(6, 47, 499, 25) GUICtrlSetOnEvent(-1, "_On_Tab") GUICtrlCreateTabItem(" Liste proxy ") $settings = GUICtrlCreateContextMenu($ListView1) $SENDS = GUICtrlCreateMenuItem("add to favorites", $settings) GUICtrlSetOnEvent(-1, "add") $Checkbox2 = GUICtrlCreateCheckbox("Rendom proxy", 104, 25, 97, 17) $Checkbox3 = GUICtrlCreateCheckbox("Bypass proxy server for local addresses", 224, 9, 217, 17) GUICtrlSetState(-1, 1) GUICtrlCreateTabItem(" Favorites ") $ListView2 = GUICtrlCreateListView("IP:PORT|COUNTRY|TIME", 6, 75, 497, 366) GUICtrlSendMsg(-1, 4096 + 30, 0, 160) GUICtrlSendMsg(-1, 4096 + 30, 1, 160) GUICtrlSendMsg(-1, 4096 + 30, 2, 150) GUICtrlCreateTabItem("") GUICtrlCreateButton("Set proxy", 8, 7, 75, 33) GUICtrlSetOnEvent(-1, "SELECTED") $Label1 = GUICtrlCreateLabel("", 13, 453, 111, 17) $Label2 = GUICtrlCreateLabel("", 128, 453, 464, 17) GUICtrlCreateGroup("", 8, 440, 493, 33) GUISetState() GETPROXY() Do Sleep(10000) Until False Func GETPROXY() RegWrite($REG, "Proxyenable", "REG_DWORD", "0") DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) GUICtrlSetData($Label1, "Please wait ...") Local $file = FileOpen(@ScriptDir & "\FAV") If $file <> -1 Then While 1 Local $line = FileReadLine($file) If @error = -1 Then ExitLoop GUICtrlCreateListViewItem($line, $ListView2) WEnd FileClose($file) EndIf $FileURL1 = "http://www.proxylists.net/proxylists.xml" $FileName1 = @TempDir & "\proxylists" $Down = _DownloadProgress($FileURL1, $FileName1) If $Down = 404 Then GUICtrlSetData($Label1, "Error: Connection lost..") Return EndIf Local $Proxy = FileOpen($FileName1) If $Proxy = -1 Then GUICtrlSetData($Label1, "Error: ¨Proxy list..") Return EndIf Local $ReadProxy = FileRead($Proxy) FileClose($Proxy) $m = StringRegExp($ReadProxy, "<prx:proxy>(.*?)</prx:proxy>", 3) Global $Lister[UBound($m)][2] $COUNT = 0 Dim $rep For $i = 0 To UBound($m) - 1 $array = StringRegExp($m[$i], '>(.*?)<', 3) If $array[4] = "Transparent" Then $COUNT = $COUNT + 1 GUICtrlSetData($Label1, "Proxies N° " & $COUNT) $Lister[$COUNT][1] = GUICtrlCreateListViewItem($array[0] & ":" & $array[2] & "|" & $array[6] & "|" & $array[8], $ListView1) EndIf Next EndFunc ;==>GETPROXY Func SELECTED() If GUICtrlRead($Checkbox3) = 1 Then RegWrite($REG, "ProxyOverride", "REG_SZ", "<local>") InternetSetOption() Else RegDelete($REG, "ProxyOverride") InternetSetOption() EndIf If GUICtrlRead($Checkbox1) = 1 Then If GUICtrlRead($Tab1) Then favo() Return EndIf If GUICtrlRead($Checkbox2) = 1 Then GUICtrlSetData($Label2, "") $Random = Random(1, $COUNT, 1) $selected = GUICtrlRead($Lister[$Random][1]) If Not $selected <> "" Then Return GUICtrlSetBkColor($Lister[$Random][1], 0xCCFFCC) GUICtrlSendMsg($ListView1, 0x1013, $Random - 1, 1) Else $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[2] & " Ping: " & $ping) RegWrite($REG, "Proxyenable", "REG_DWORD", "1") RegWrite($REG, "proxyserver", "REG_SZ", $StringSplit[1]) InternetSetOption() EndIf EndFunc ;==>SELECTED Func Checkbox() If GUICtrlRead($Checkbox1) = 1 Then GUICtrlSetState($Checkbox2, 64) GUICtrlSetState($Checkbox3, 64) Else RegWrite($REG, "Proxyenable", "REG_DWORD", "0") InternetSetOption() GUICtrlSetData($Label2, " Your current proxy is Default !") GUICtrlSetState($Checkbox2, 128) GUICtrlSetState($Checkbox3, 128) EndIf EndFunc ;==>Checkbox Func _DownloadProgress($FileURL, $FileSave) $FileSize = InetGetSize($FileURL) If $FileSize = 0 Then Return 404 If FileGetSize($FileSave) = $FileSize Then Return $FileDownload = InetGet($FileURL, $FileSave, 1, 1) Do $Percentage = InetGetInfo($FileDownload, 0) * 100 / $FileSize GUICtrlSetData($Label1, "Please wait ... " & Round($Percentage, 0) & " % ") Sleep(200) Until InetGetInfo($FileDownload, 2) EndFunc ;==>_DownloadProgress Func __Exit() Exit EndFunc ;==>__Exit Func favo() $selected = GUICtrlRead(GUICtrlRead($ListView2)) If Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.!!!") Return EndIf $StringSplit = StringSplit($selected, "|", 1) $IP = StringLeft($StringSplit[1], StringInStr($StringSplit[1], ":") - 1) $ping = Ping($IP, 9999) GUICtrlSetData($Label2, " Your current ip " & $IP & " from " & $StringSplit[2] & " Ping: " & $ping) RegWrite($REG, "Proxyenable", "REG_DWORD", "1") RegWrite($REG, "proxyserver", "REG_SZ", $StringSplit[1]) InternetSetOption() EndFunc ;==>favo Func add() $selected = GUICtrlRead(GUICtrlRead($ListView1)) If Not $selected <> "" And StringInStr(GUICtrlRead($Label1), "Please wait ... ") > 0 Or StringInStr(GUICtrlRead($Label1), "Error: Connection lost..") > 0 Then GUICtrlSetData($Label2, "") Return ElseIf Not $selected <> "" Then GUICtrlSetData($Label2, "Please select proxy first.") Return EndIf $StringSplit = StringSplit($selected, "|", 1) GUICtrlCreateListViewItem($StringSplit[1] & "|" & $StringSplit[2] & "|" & $StringSplit[3], $ListView2) Local $fav = FileOpen(@ScriptDir & "\FAV", 1) If $fav = -1 Then GUICtrlSetData($Label1, "Error: ¨favorites file..") Return EndIf Local $Writefav = FileWrite($fav, $StringSplit[1] & "|" & $StringSplit[2] & "|" & $StringSplit[3] & @CRLF) FileClose($fav) EndFunc ;==>add Func InternetSetOption() DllCall('WININET.DLL', 'long', 'InternetSetOption', 'int', 0, 'long', 39, 'str', 0, 'long', 0) EndFunc ;==>InternetSetOption Func _On_Tab() Switch GUICtrlRead($Tab1) Case 0 GUICtrlSetState($ListView1, 16) Case 1 GUICtrlSetState($ListView1, 32) EndSwitch EndFunc ;==>_On_Tab Edited March 8, 2013 by yacmacdc Added tags Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted March 6, 2013 Moderators Share Posted March 6, 2013 yacmacdc,When you post code please use Code tags - put [autoit] before and [/autoit] after your posted code. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. M23 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 columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Celtic88 Posted March 6, 2013 Author Share Posted March 6, 2013 yacmacdc, When you post code please use Code tags - put before and after your posted code. Then you get a scrolling box and syntax colouring as you can see above now I have added the tags. M23 aa oky Melba23 Thank you for helping us Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now