Sign in to follow this  
Followers 0
dynamitemedia

Strange Behavior of Listview in all Tabs

5 posts in this topic

I have a List view i loaded into a Tab...

once loaded its showing in all Tabs...

here is my full code :

#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GUIListBox.au3>
#include <GuiListView.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#include <Array.au3>
#include <Process.au3>
#include <Constants.au3>
#include <String.au3>
#include <Array.au3>


$Form1 = GUICreate("0", 601, 401, 186, 114)


Global $favoritesPath = @ScriptDir & "\listings\favorites.ini"
; Set flag to indicate double click in ListView




; --------------   Channel Guide Tab --------------


$plugins = GUICtrlCreateTab(8, 8, 580, 336)
$Guide = GUICtrlCreateTabItem("Channel Guide ")




; Need to open XML to display
$Button10 = GUICtrlCreateButton("Open XML", 32, 56, 75, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")


; Refreshes the XML opened up 
$Button12 = GUICtrlCreateButton("Refresh", 120, 56, 75, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")


; add the XML from above 
$List1 = GUICtrlCreateListView("ID|Name", 31, 89, 529, 230)


; ----------------    Favorites Tab    --------------
$TabSheet2 = GUICtrlCreateTabItem("Favorites")


; Adds dialog 
GUICtrlCreateLabel("Add Video feed To Your Favorites", 144, 64, 287, 26)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")


; Add video Name
$Label1 = GUICtrlCreateLabel(" Name :", 72, 112, 67, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")
$Input1 = GUICtrlCreateInput("", 144, 112, 361, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")


; Add quality
$Label2 = GUICtrlCreateLabel("URL :", 88, 152, 43, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")
$Input2 = GUICtrlCreateInput("", 144, 152, 361, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")


; Add quality
$Label3 = GUICtrlCreateLabel("Quality :", 72, 192, 59, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")
$Input3 = GUICtrlCreateInput("", 144, 192, 361, 22)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")


; Adds dialog
$Label4 = GUICtrlCreateLabel("NOTE:  and is set to 'High'", 56, 280, 483, 19)
GUICtrlSetFont(-1, 9, 400, 0, "Arial")


; Now lets save to favorites XML  
$Button9 = GUICtrlCreateButton("Save", 432, 224, 75, 25)
GUICtrlSetFont(-1, 9, 400, 0, "Arial")


; clear 
$Button14 = GUICtrlCreateButton("Clear", 346, 224, 75, 25)
GUICtrlSetFont(-1, 9, 400, 0, "Arial")




; ------------    Plugins Tab --------------------
$TabSheet3 = GUICtrlCreateTabItem("Plugins")


; gets Listing of files in plugin folder BY  extension 
$Label11 = GUICtrlCreateLabel("Available Plugins", 32, 68, 185, 18)
GUICtrlSetFont(-1, 12, 400, 0, "Arial") 


$List2 = GUICtrlCreateList("", 32, 88, 521, 174)
GUICtrlSetFont(-1, 12, 400, 0, "Arial")


Local $FileList = _FileListToArray("plugins", "*.bat*")


For $i = 1 To $FileList[0]
        GUICtrlSetData($List2, RemoveExt(GetFileName($FileList[$i])))
    Next


; Gets updates all Plugins in plugins folder 
$Button11 = GUICtrlCreateButton("Refresh Plugins", 456, 288, 90, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")


; Launc website 
$Button13 = GUICtrlCreateButton("Get More Plugins", 360, 288, 90, 25)
GUICtrlSetFont(-1, 8, 400, 0, "Arial")


; Settings page
$TabSheet1 = GUICtrlCreateTabItem("Settings")
GUICtrlCreateGroup(" Program Settings ", 24, 64, 545, 115)


; add your token here
GUICtrlCreateLabel("Token", 32, 80, 35, 17)
GUICtrlCreateInput("", 32, 96, 505, 21)


; add IP Port for streamer
$Labe20 = GUICtrlCreateLabel("Port # ( Default is 8080)", 32, 128, 116, 17)
GUICtrlCreateInput("8080", 32, 144, 121, 21)


; streaming preference
Local $idStream = GUICtrlCreateCombo("Protocol", 184, 144, 145, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label10 = GUICtrlCreateLabel("Preferred Streaming Protocol", 184, 128, 139, 17)
GUICtrlSetData($idStream , "RTMP|HLS", "RTMP")


; Now Lets save to programSettings.ini
$Button7 = GUICtrlCreateButton("Save", 456, 140, 75, 25)


; create Group Video Settings


GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup(" Video Settings ", 24, 216, 545, 115)


; FPS 
Local $idFPS = GUICtrlCreateCombo("", 32, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label5 = GUICtrlCreateLabel("FPS", 32, 240, 24, 17)
GUICtrlSetData($idFPS, "15|24.97|25|29.97|30", "15")


; Width
Local $idWidth = GUICtrlCreateCombo("", 136, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label6 = GUICtrlCreateLabel("Width", 136, 240, 32, 17)
GUICtrlSetData($idWidth, "320|640|720|1080", "320")


; Height
Local $idHeight = GUICtrlCreateCombo("", 240, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label7 = GUICtrlCreateLabel("Height", 240, 240, 35, 17)
GUICtrlSetData($idHeight, "240|480|1080|1920", "240")


; Video Bit Rate
Local $idVBR = GUICtrlCreateCombo("", 344, 256, 100, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label8 = GUICtrlCreateLabel("Video Bit Rate", 344, 240, 72, 17)
GUICtrlSetData($idVBR, "300|600|800|1000|1500|2000", "300")


; Audio Bit Rate
Local $idABR = GUICtrlCreateCombo("", 456, 256, 95, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$Label9 = GUICtrlCreateLabel("Audio Bit Rate", 456, 240, 72, 17)
GUICtrlSetData($idABR, "96|128|192|256", "96")


GUICtrlCreateGroup("", -99, -99, 1, 1)
; Now Lets save to videoSettings.ini
$Button8 = GUICtrlCreateButton("Save", 456, 288, 75, 25)
GUICtrlCreateTabItem("")


; --------------         ends settings page    ----------------------------




; -------------   Buttons on Bottom of Tabs ----------------------------
$Button1 = GUICtrlCreateButton("Watch", 14, 360, 75, 25)




$Button2 = GUICtrlCreateButton("Stop All", 94, 360, 75, 25)




$Button3 = GUICtrlCreateButton("Record", 336, 360, 75, 25)




$Button5 = GUICtrlCreateButton("Stream", 416, 360, 75, 25)




$Button6 = GUICtrlCreateButton("Add to favorites", 496, 360, 91, 25)




; ------------------  Functions  ---------------------------


Func RemoveExt($Input)
Local $ExtArray = StringSplit($Input, ".")
Return StringReplace($Input, "." & $ExtArray[$ExtArray[0]], "", -1)
EndFunc


Func RemoveExtRegExp($Input)
Return StringRegExpReplace($Input, "\.[^.]*$", "")
EndFunc


Func GetFileName($Input)
Local $PathArray = StringSplit($Input, "\/")
Return $PathArray[$PathArray[0]]
EndFunc


Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $List1 And $code = -3 And _GUICtrlListView_GetSelectedCount($List1) > 0 Then ;Put code here to deal with the double click
$col_value = _GUICtrlListView_GetItemText($List1, _GUICtrlListView_GetNextItem($List1), 0)


$xml=FileRead($xmlName)
$sSearch=_StringBetween($xml,"ID='" & $col_value & "'","/>")
$sResult=_ArrayToString($sSearch,"")


Local $splitXML = StringSplit($sResult, "'")
For $i = 1 To $splitXML[0]
Next
$rURL = $splitXML[2]
$rName = $splitXML[4]
$rQuality = $splitXML[6]
ConsoleWrite($rQuality & @CRLF)
    
If $rQuality = ' quality=' then
$realQuality =  $splitXML[7]
msgbox(0, "Quality is 7", $realQuality & @CRLF)
Else
$realQuality =  $splitXML[6]
msgbox(0, "Quality is 6",  $realQuality & @CRLF)
EndIf
endif
Return $GUI_RUNDEFMSG
EndFunc


; --------------  button functions ----------------------------


GUISetState(@SW_SHOW)


; Look for double clicks
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")




While 1
$MSG = GUIGetMsg()
Select
Case $MSG = $GUI_EVENT_CLOSE
Exitloop


Case $MSG = $Button1 ; watch


Case $MSG = $Button2 ; Stop all Button




Case $MSG = $Button3 ; recording Button




Case $MSG = $Button5 ; streaming Button


Case $MSG = $Button6 ; save to favorites Button


$col_value = _GUICtrlListView_GetItemText($List1, _GUICtrlListView_GetNextItem($List1), 1)
msgbox (0, "You Selected This Video Feed", $col_value) 
; FileWriteLine("listings\favorites.xml",'')


Case $MSG = $Button7 ; save to programSettings.ini




Case $MSG = $Button8 ; save to videoSettings.ini 


Case $MSG = $Button9 ; save to favroites.xml 
$URL = GUICtrlRead($Input2)
$name = GUICtrlRead($Input1)
$quality = GUICtrlRead($Input3)
$favXML = "listings\favs.xml"


If GuiCtrlRead($Input1) = "" Then
MsgBox (0,"Empty", "Name can't Be empty, Try again")
ElseIf GuiCtrlRead($Input2) = "" Then
MsgBox (0,"Empty", "URL can't Be empty, Try again") 
ElseIf GuiCtrlRead($Input3) = "" Then
MsgBox (0,"Empty", "Quality can't Be empty, Try again") 
Else
Local $iCountLines = _FileCountLines($favXML) ; Retrieve the number of lines in the current script.
$ID = $iCountLines + 1


FileWriteLine($favXML, "<channel ID='" & $ID & "' url='" & $URL & "' name='" & $name & "' quality='" & $quality & "'/>""")


GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "")


; Run("listings\createFavorites.bat")
MsgBox(0, "", "Saved to Favorites!")
EndIf


Case $MSG = $Button10 ; Need to open XML to display 


$openXML = FileOpenDialog("Choose a file", @ScriptDir & "\listings", "XML (*.xml)", 1 + 4 )
If @error Then
MsgBox(0,"","No File(s) chosen")
Else


$openXML = StringReplace($openXML, "|", @CRLF)
Dim $xmlName = $openXML


MsgBox(0,"IpTvMyWay v2.0","You chose " & $xmlName)


_GUICtrlListView_DeleteAllItems($List1)
$sRead = FileRead($openXML)


Global $aID = StringRegExp($sRead, "(?i)ID='(.*?)'", 3)
Global $aName = StringRegExp($sRead, "(?i)name='(.*?)'", 3)
Global $aQuality= StringRegExp($sRead, "(?i)quality='(.*?)'", 3)
Global $aUrl= StringRegExp($sRead, "(?i)url='(.*?)'", 3)




$iUbound = UBound($aID)
If UBound($aName) > $iUbound Then $iUbound = UBound($aName)


$List1 = GUICtrlCreateListView("ID|Name",31, 89, 529, 230)


For $i = 0 To $iUbound - 1
$strData = ""
If UBound($aID) > $i Then $strData &= $aID[$i]
If UBound($aName) > $i Then $strData &= "|" & $aName[$i]
_GUICtrlListView_SetColumnWidth($List1, 0, 40)
_GUICtrlListView_SetColumnWidth($List1, 1, 440)
GUICtrlCreateListViewItem($strData, $List1)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
Next
EndIf




Case $MSG = $Button11 ; Gets updates all Plugins in plugins folder 


Case $MSG = $Button12 ; Refreshes the XML opened up 


_GUICtrlListView_DeleteAllItems($List1)
$sRead = FileRead($openXML)


Global $aID = StringRegExp($sRead, "(?i)ID='(.*?)'", 3)
Global $aName = StringRegExp($sRead, "(?i)name='(.*?)'", 3)
Global $aQuality= StringRegExp($sRead, "(?i)quality='(.*?)'", 3)
Global $aUrl= StringRegExp($sRead, "(?i)url='(.*?)'", 3)




$iUbound = UBound($aID)
If UBound($aName) > $iUbound Then $iUbound = UBound($aName)


$List1 = GUICtrlCreateListView("ID|Name", 31, 89, 529, 230)


For $i = 0 To $iUbound - 1
$strData = ""
If UBound($aID) > $i Then $strData &= $aID[$i]
If UBound($aName) > $i Then $strData &= "|" & $aName[$i]
_GUICtrlListView_SetColumnWidth($List1, 0, 40)
_GUICtrlListView_SetColumnWidth($List1, 1, 440)
GUICtrlCreateListViewItem($strData, $List1)
GUICtrlSetFont(-1, 10, 400, 0, "Arial")
Next


Case $MSG = $Button13 ; launches website


Case $MSG = $Button14 ; clears favorites
GUICtrlSetData($Input1, "")
GUICtrlSetData($Input2, "")
GUICtrlSetData($Input3, "")
MsgBox(0, "", "Form Cleared!")


EndSelect
Wend


; Deregister "Click on ListView function"
GUIRegisterMsg($WM_NOTIFY, "")

i am sure it has something to do with setting "focus" or something like that but i do not see anything like this in the forum.

Thank you

 

Share this post


Link to post
Share on other sites



You created the Listview $list1 twice, once in the Channel Guide tab creation section and again in your message loop.


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 Gude
How 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

Share this post


Link to post
Share on other sites

i did that so i could load XML when open button was clicked.

is there another way i could do that?  when i took out the list1 on bottom it didn't load and if caused an error when i took it out in channel guide

thank you

Share this post


Link to post
Share on other sites

Just delete all the items, as you do, and then just create new listview items using the original listview. The way you're doing it now, you'r creating not 1 a limitless number of listviews in the same GUI without deleting any of the previous ones. There's no need to recreate the listview, as it already exists and in the correct tab, just use the one you already created at the start.


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 Gude
How 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

Share this post


Link to post
Share on other sites

This worked great thanks!   really starting to like programming with this... Much better than Bat files!  so many options

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0

  • Similar Content

    • Monica
      By Monica
      Hi guys!! I'm going crazy... please help me -.-
      First, open the attached screenshot. Second: I'd like to grab info from external window. The program is "Metatrader4", a tool for trading and charts analysis.
      The function _GUICtrlListView_GetItemText() return an empty string! I tried to change the index $index (the second parameter) into Number($index), as recommended by other similar posts in this forum, but this did not solve my problem 
      Well, why I'm going mad? Because in my mind an UDF approach works great or it does not work at all; instead, in my code something works and something else does not. I really don't understand why... and you?
      THXX!!!!  
      $handle=ControlGetHandle("Expert - "&$expertname,"",1383);List: Variable|Value For $i=0 To _GUICtrlListView_GetItemCount($handle)-1;WORKS!!! $temp=_GUICtrlListView_GetItemText($handle,0+$i);RETURN EMPTY STRING :-( MsgBox(0, "", $temp) $temp = _GUICtrlListView_GetItemSelected($handle,$i);WORKS!!! MsgBox(0, "", $temp) Next  

    • mLipok
      By mLipok
      I was not lucky to find the right function so I created it by my self:
      _GUICtrlListView_GetColumnID_ByName()
      Example:
       
      #include <GUIConstantsEx.au3> #include <GuiListView.au3> #include <MsgBoxConstants.au3> Example() Func Example() GUICreate("ListView Get Column ID", 400, 300) Local $idListview = GUICtrlCreateListView("Alfa|Beta|Gama", 2, 2, 394, 268) GUISetState(@SW_SHOW) _GUICtrlListView_SetColumnOrder($idListview, "2|0|1") MsgBox($MB_SYSTEMMODAL, "Information", "Column ID: " & _GUICtrlListView_GetColumnID_ByName($idListview, 'Gama')) ; Loop until the user exits. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() EndFunc ;==>Example Func _GUICtrlListView_GetColumnID_ByName($hListView, $sColumnToFind) Local $iColumn_Count = _GUICtrlListView_GetColumnCount($hListView) Local $aColumns For $iColumn_idx = 0 To $iColumn_Count - 1 $aColumns = _GUICtrlListView_GetColumn($hListView, $iColumn_idx) If $aColumns[5] = $sColumnToFind Then Return $iColumn_idx EndIf Next Return SetError(1, 0, -1) EndFunc ;==>_GUICtrlListView_GetColumnID_ByName  
    • UEZ
      By UEZ
      Here a small tool I wrote to update my Sysinternal tools collection without the need to download always the whole package or visiting the site to check for updates. I know that there are several tools available (also some tools written in AutoIt) but here another one for the collection. It was good exercise for me to code it.
       
       
        
       
       
      Some files from cannot be downloaded although they are visible on the web site!
       
      Here the download link of the source code only: AutoIt Sysinternal Tools Synchronizer v0.99.1 build 2017-10-23 beta.7z  (1353 downloads previously)
      -=> Requires AutoIt version 3.3.13.20 or higher / tested on Win8.1 real machine and some VMs: Win7 / Vista / Win10
       
      Compiled exe only: @MediaFire
       
      Just select the Sysinternal Tools folder or create one and press the synchronize button to download the selected items. Click on AutoIt label (near to left upper corner) to open menu.
       
      Special thanks to LarsJ, Melba23 and mesale0077 for their help. 
       
      I've still some ideas to implement which are more gimmick related, so it is not finished yet...
      If you want to add your language please check out #Region Language. Thanks. 
       
      Please report any bug or if you have any suggestions.
       
      The language of the tool tip from each of the executable in the left list view were automatically created using Google translator and weren't checked for correctness.
       
      Br,
      UEZ
    • 0Ethan0
      By 0Ethan0
      Ahoy Autoit Community!
      After many trials and errors I am unable to solve a problem I am facing and would appreciate any kind of input or better yet a solution 
      The Premise: An embeded slideshow viewer that runs after double-clicking an item in a ListView (each item will generate a different slideshow images).
      The Setup: GUI with a ListView Control and a simple exit button.
      The Issue: Once double clicked the slide plays however the GUI "locks"/non responsive until the slide is over. Same thing if I click on the "Test" button.
      The Culprit: I believe since it's in the images loop it can't accept any other commands until that loop is over.
      The Wish: I want to be able to use the GUI functions (selecting other items, clicking on button etc.) while the slideshow plays.
      The Code (stripped and simplified as much as I could):
      #include <GuiListView.au3> #include <File.au3> #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> Opt("GUIOnEventMode", 1) HotKeySet("{Esc}", "_Exit") Global $c=0 Global $ssGDI[3], $ssGraphic[2], $ssImage Global Const $bg_color = "000000" Global Const $ssW = 480, $ssH = 320 Global $aFiles = _FileListToArrayRec("d:\testStage\", "*.jpg;*.png;*.bmp;*.gif;*.JPG;*.PNG;*.BMP;*.GIF", $FLTAR_FILES, $FLTAR_NORECUR ,$FLTAR_SORT ,$FLTAR_FULLPATH ) $guiW = 1200 $guiH = 726 $mainWindow = GUICreate("Slideshow Viewer", $guiW, $guiH, -1, -1, $WS_POPUP) $Button1 = GUICtrlCreateButton("Exit", 0, 0, 50, 50) GUICtrlSetOnEvent($Button1, "_Exit") $Button1 = GUICtrlCreateButton("Test", 60, 0, 50, 50) GUICtrlSetOnEvent($Button1, "Test") Global $ListView = GUICtrlCreateListView("Entry Name|Category", 5, 75, 195, 280) _GUICtrlListView_SetColumnWidth ($ListView, 0, 100) _GUICtrlListView_SetColumnWidth ($ListView, 1, 100) GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES) GUICtrlSendMsg($ListView, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT) GUICtrlCreateListViewItem("Name 1|Category 1", $ListView) GUICtrlCreateListViewItem("Name 2|Category 2", $ListView) screenshotWidgetInit($ssW,$ssH, 690, 100) GUISetState(@SW_SHOW, $mainWindow) GUIRegisterMsg($WM_NOTIFY, "WM_Notify_Events") While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE _Exit() EndSwitch WEnd Func Test() For $k = 1 To UBound($aFiles) - 1 screenshotWidgetTransition($aFiles[$k]) Next EndFunc Func ListView_Click() ConsoleWrite("Left Click") EndFunc Func ListView_DoubleClick() ConsoleWrite("Double Left Click") Test() EndFunc Func WM_Notify_Events($hWndGUI, $MsgID, $wParam, $lParam) #forceref $hWndGUI, $MsgID, $wParam Local $tagNMHDR, $event, $hwndFrom, $code $tagNMHDR = DllStructCreate("int;int;int", $lParam) If @error Then Return $event = DllStructGetData($tagNMHDR, 3) Select Case $wParam = $ListView Select Case $event = $NM_CLICK ListView_Click () Case $event = $NM_DBLCLK ListView_DoubleClick () EndSelect EndSelect Return $GUI_RUNDEFMSG EndFunc Func screenshotWidgetTransition($image, $delay = 0, $speed = 1, $sleep = 2000) Local $a, $d = $c, $iX, $iY $ssImage = _GDIPlus_ImageLoadFromFile($image) $iX = _GDIPlus_ImageGetWidth($ssImage) $iY = _GDIPlus_ImageGetHeight($ssImage) $FDesktop=$ssH/$ssW $Fact =1 If $iX > $ssW And $FDesktop > ($iY/$iX) Then $Fact=$ssW/$iX ElseIf $iY > $ssH Then $Fact=$ssH/$iY EndIf $H1 = Round(($Fact * $iY),0) $W1 = Round(($Fact * $iX),0) _GDIPlus_GraphicsDrawImageRect($ssGraphic[$d], $ssImage,($ssW - $W1)/2, ($ssH - $H1) / 2,$W1,$H1) WinSetTrans($ssGDI[$d], "", 0) WinSetOnTop($ssGDI[$d], "", 1) For $a = 0 To 254 Step $speed WinSetTrans($ssGDI[$d], "", $a) Sleep($delay) Next WinSetTrans($ssGDI[$d], "", 254) WinSetOnTop($ssGDI[Not ($d)], "", 0) WinSetTrans($ssGDI[Not ($d)], "", 0) _GDIPlus_GraphicsClear($ssGraphic[Not ($d)]) $c = 1 - $d _GDIPlus_ImageDispose ($ssImage) ; very important to realease the pics Sleep($sleep) EndFunc ;==>screenshotWidgetTransition Func screenshotWidgetInit($ssW,$ssH,$ssX,$ssY) $ssGDI[2] = GUICreate("", $ssW, $ssH, $ssX, $ssY, $WS_POPUP, $WS_EX_MDICHILD, $mainWindow) $ssGDI[0] = GUICreate("", $ssW, $ssH, 3, 3, $WS_POPUP, $WS_EX_MDICHILD, $ssGDI[2]) $ssGDI[1] = GUICreate("", $ssW, $ssH, 3, 3, $WS_POPUP, $WS_EX_MDICHILD, $ssGDI[2]) ; GUISetBkColor("0x" & $bg_color, $ssGDI[2]) GUISetState(@SW_SHOW, $ssGDI[2]) GUISetState(@SW_SHOW, $ssGDI[0]) GUISetState(@SW_SHOW, $ssGDI[1]) WinSetTrans($ssGDI[0], "", 0) WinSetTrans($ssGDI[1], "", 0) _GDIPlus_Startup() $ssGraphic[0] = _GDIPlus_GraphicsCreateFromHWND($ssGDI[0]) $ssGraphic[1] = _GDIPlus_GraphicsCreateFromHWND($ssGDI[1]) _GDIPlus_GraphicsClear($ssGraphic[0], "0xFF" & $bg_color) _GDIPlus_GraphicsClear($ssGraphic[1], "0xFF" & $bg_color) EndFunc ;==>screenshotWidgetInit Func _Exit() _GDIPlus_ImageDispose($ssImage) _GDIPlus_GraphicsDispose($ssGraphic[0]) _GDIPlus_GraphicsDispose($ssGraphic[1]) GUIDelete($ssGDI[0]) GUIDelete($ssGDI[1]) GUIDelete($ssGDI[2]) _GDIPlus_Shutdown() Exit EndFunc ;==>_Exit I hope someone can shed light on this; perhaps a different approach is needed?
      Thank you in advance!
      P.S.
      The script is patched from different scripts of different users in the forum - thank you again users!
    • Daka
      By Daka
      I know there are listbox and listview, but now I have?
      here is the video of infowindow 
      I tried to read mouse selection like for listbox:
      $listWindow = "[CLASS:TFormResearchGR]" $topicsList = "[CLASS:TMWrapper; INSTANCE:255]" WinWait($listWindow, "", 60) $hdlWindow = WinGetHandle($listWindow) $hdlList = ControlGetHandle($hdlWindow, "", $topicsList) _GUICtrlListBox_ClickItem($hdlList, 0, "left") $countOfList = _GUICtrlListBox_GetCount($hdlList) ConsoleWrite("Count of list: " & $countOfList & @LF) count of list is not working.
      I realiezed that there are difference between listbox and listview, but this is something different.
      and till now I never saw that you can go inside with infotool and also get instances.
       
      so Im confused how to get the list number and the names of selection?