Jump to content

Recommended Posts

Posted (edited)

Hi.

I'm using the FreeCommander XE file manager here, and i'v written a script, which will create an empty, new file, after choosing an extension out from the Listbox.

 

The listview code  is not mine, iv found the scripts somewhere on this forum. I have no credits in it, because it was intended to be only for my personal use.

But now, i have a lot of free time, so i remembered that i haven't posted anything on this forum, yet, so here is my first script:

It should be compiled with the Autoit v3.3.14.3 .

The compiled exe needs a folder passed as a parameter, so that it know where to create the new file.

A Listbox is opened, with a selection of available extensions.

After selecting and doubleclicking (or using the ok button), the script creates a filename (if specified in the config file) with increased numbers (up to 9999).

If the filename exist, the counter is checking the next number, until the maximum is reached.

This script uses an ini file for configuration, called "NewFile.ini" which should be in the same folder, as the compiled exe.

NewFile.au3

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <String.au3>
#include <WinAPIFiles.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <GuiEdit.au3>
#include <ScrollBarsConstants.au3>
    Global $test[0][2], $hFile, $cmd = "", $cmdtmp, $tmptxt, $tmpinidir, $filesetting, $MouseX, $MouseY, $UseMouseX, $UseMouseY, $Edit1
Global $aArray[1] = []
$cmdtmp = StringReplace($cmdlineraw, Chr(34), "")
    If StringLen($cmdtmp) = 2 Then
    If StringRight($cmdtmp, 1) = ":" Then
        $cmd = $cmdtmp & "\"
    EndIf
Else
    If StringRight($cmdtmp, 1) <> "\" Or StringRight($cmdtmp, 1) <> "/" Then
        $cmd = $cmdtmp & "\"
    EndIf
EndIf
    If Not FileExists($cmd) Then                    ;Check if the folder exists, display an error message if not !
    DisplayReadMe(1)
    Exit
EndIf
    If StringLen(@ScriptDir) > 3 And StringRight(@ScriptDir, 1) <> "\" Then
    $tmpinidir = @ScriptDir & "\"
Else
    $tmpinidir = @ScriptDir
EndIf
    Local Const $sFilePath = $tmpinidir & "NewFile.ini"
$filesetting = IniRead($sFilePath, "setting", "filename", "MyNewFile")
$filesetting = StringReplace($filesetting, ">", " ")
;msgbox (0,"",$filesetting)  ;Debugging
If FileExists($sFilePath) Then
    $aArray = IniReadSectionNames($sFilePath) ; Read the INI section names. This will return a 1 dimensional array.
EndIf
    $UseMouseX = IniRead($sFilePath, "setting", "UseMouseX", "1")
$UseMouseY = IniRead($sFilePath, "setting", "UseMouseY", "0")
    
; Check if an error occurred.
If Not @error Then
    ; Enumerate through the array displaying the section names.
    Local $count = 0
    If FileExists($sFilePath) Then
        For $i = 1 To $aArray[0]
            $tmp1 = IniRead($sFilePath, $aArray[$i], "1", "none")
            If $tmp1 <> "none" And StringLeft($tmp1, 1) = "." Then            ;Extension need to have a dot, or it will be ignored !
                $tmptxt = $tmptxt & $tmp1 & "|" & $aArray[$i] & @CRLF
                $count = $count + 1                                            ;Count how many extensions are added !
            EndIf
        Next
    EndIf
        If $count = 0 Then $tmptxt = ".au3|AutoIt 3" & @CRLF & ".txt|Text File" & @CRLF
    ;MsgBox($MB_SYSTEMMODAL,"",$tmptxt)
    _ArrayAdd($test, $tmptxt, 0, "|", @CRLF)
Else                                                            ;Reading the ini failed, create a default array for the extensions
    $tmptxt = ".au3|AutoIt 3" & @CRLF & ".txt|Text" & @CRLF
    _ArrayAdd($test, $tmptxt, 0, "|", @CRLF)
EndIf
    
;Local $test[5][2] = [['.au3', 'AutoIt'], ['.ahk', 'Auto Hotkey'], ['.txt', 'text'], ['.sdlbas', 'Sdl Basic'], ['.html', 'Webpage']]
    If $UseMouseX = 1 Then
    $MouseX = MouseGetPos(0)
Else
    $MouseX = -1
EndIf
    If $UseMouseY = 1 Then
    $MouseY = MouseGetPos(1)
Else
    $MouseY = -1
EndIf
    $Form1 = GUICreate("Create New File", 210, 247, $MouseX, $MouseY, $WS_CAPTION, $WS_EX_TOOLWINDOW)
$List = GUICtrlCreateListView("", 5, 5, 200, 200)
_GUICtrlListView_InsertColumn($List, 0, "Extension", 65)
_GUICtrlListView_InsertColumn($List, 1, "Description", 115)
_GUICtrlListView_AddArray($List, $test)
    GUICtrlCreateLabel("Example:" & $filesetting & "0000.ext", 5, 205)
$Button1 = GUICtrlCreateButton("Ok", 16, 224, 45, 22)
$Button3 = GUICtrlCreateButton("ReadMe", 80, 224, 55, 22)
$Button2 = GUICtrlCreateButton("Cancel", 150, 224, 45, 22)
$cDummy = GUICtrlCreateDummy()
GUISetState(@SW_SHOW)
    GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
    While 1
    $nMsg = GUIGetMsg()
        Switch $nMsg
        Case $GUI_EVENT_CLOSE, $Button2
            Exit
        Case $Button3
            DisplayReadMe(0)
        Case $Button1, $cDummy
            Local $tmptxt = StringSplit(_GUICtrlListView_GetItemTextString($List), "|")[1]
            If StringLen($tmptxt) > 0 Then
                Local $fnr = 0, $tmpfile = ""
                While $fnr < 10000
                    $tmpfile = $cmd & $filesetting & _StringRepeat("0", 4 - StringLen($fnr)) & $fnr & $tmptxt
                    ;MsgBox(0,"",$tmpfile) ; for debugging
                    If Not (FileExists($tmpfile)) Then
                        $hFile = _WinAPI_CreateFile($tmpfile, 0)
                        _WinAPI_CloseHandle($hFile)
                        Exit
                    EndIf
                    $fnr = $fnr + 1
                WEnd
            EndIf
    EndSwitch
WEnd
    ;================================================================================
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $List
    If Not IsHWnd($List) Then $hWndListView = GUICtrlGetHandle($List)
        $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")
        Switch $hWndFrom
        Case $hWndListView
            Switch $iCode
                    Case $NM_DBLCLK
                    ; Fire the dummy if the ListView is double clicked
                    GUICtrlSendToDummy($cDummy)
                EndSwitch
    EndSwitch
        Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY
    Func DisplayReadMe($err)
    Local $Form1 = GUICreate("Read Me", 550, 400, 10, 10, BitOR($WS_CAPTION, $WS_THICKFRAME ,$WS_MAXIMIZEBOX))
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 549, 399)
    GUICtrlSetData(-1, "")
    GUISetState(@SW_SHOW)
    If $err=1 then
        local $txttmp01="Error: Path does not exist"
        local $txttmp02="Commandline call was: "
        AddText ($txttmp01)
        Addtext ($txttmp02 & $cmd & @CRLF & @CRLF)
    EndIf
    AddText("Instructions:" & @CRLF)
    AddText("Displays a selection of available extensions and then creates a new file at the Path's location." & @CRLF & @CRLF & "Usage: NewFile Path")
    AddText("Example: NewFile c:\myfolder\" & @CRLF)
    AddText("Result: A file with a name 'MyFile0000.ext' will be created at the Path's location.")
    AddText("If the filename exists, the number counter will increase, until it finds a free number, up to 9999." & @CRLF)
    AddText("Uses a configuration file in the .exe folder named NewFile.ini !" & @CRLF)
    AddText("Example of a config file:" & @CRLF)
    AddText("[setting]" & @CRLF & "filename=MyFile>")
    AddText("UseMouseX=0                ;0 or 1 - position the dialog at the mouse x coordinate - usefull for multi monitor settings !")
    AddText("UseMouseY=0                ;0 or 1 - Set this and UseMouseX to spawn the dialog at the mouse coordinates !" & @CRLF)
    AddText(";Use > in filename as a space char ! (only needed if you want the space char at the beginning or at the end : in between filename and the number)" & @CRLF)
    AddText(";Format for this ini file is:" & @CRLF & ";Name              e.g [Auto It]")
    AddText(";extension       e.g 1=.au3" & @CRLF & "; p.s. only 1 extension per section ! the number must be 1" & @CRLF)
    AddText("[AutoIt3]" & @CRLF & "1=.au3" & @CRLF & @CRLF & "[Text]" & @CRLF & "1=.txt")
        _GUICtrlEdit_SetSel($Edit1, 0, 0)
    _GUICtrlEdit_Scroll($Edit1, $SB_SCROLLCARET)
    If $err=1 Then
        _GUICtrlEdit_SetSel($Edit1, 0, StringLen($txttmp01 & $txttmp02 & $cmd)+5)
    EndIf
        While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                GUIDelete($Form1)
                ExitLoop
        EndSwitch
    WEnd
EndFunc   ;==>DisplayReadMe
Func AddText($edittxt)
    _GUICtrlEdit_AppendText($Edit1, $edittxt & @CRLF)
EndFunc   ;==>AddText

 

 NewFile.ini

[setting]
filename=MyNewFile_
UseMouseX=0                ;0 or 1 - position the dialog at the mouse x coordinate - usefull for multi monitor settings !
UseMouseY=0                ;0 or 1 - Set this and UseMouseX to spawn the dialog at the mouse coordinates !
    ;Use > in filename as a space char ! (only needed if you want the space char at the beginning or at the end : in between filename and the number)
    ;Format for this ini file is:
;Name              e.g [Auto It]
;extension       e.g 1=.au3
; p.s. only 1 extension per section ! the number must be 1
    [AutoIt3]
1=.au3
    [Auto Hotkey]
1=.ahk
    [Text]
1=.txt
    [Sdl Basic]
1=.sdlbas
    [Webpage]
1=.html
    [Basic]
1=.bas
    [Pascal]
1=.pas
    [Rich Text (RTF)]
1=.rtf
    [Word Document]
1=.doc
    [Hex File]
1=.hex
Edited by Dan_555

~Dan~ :Emu.Zone now with Desktop Pets / DeskMates - (Bugfixed UniScrMate 4.1)

Share this post


Link to post
Share on other sites
Posted (edited)

Hi, here is an updated version of the script. Now it can, optionally, make the new file and to copy the clipboard content into it.

To copy Clipboard text, select an extension, then click on "Save Clip Text" button, instead of ok. 

Save Clip Text is only available if the clipboard is holding text formated data,  and if the extension is selected.

Ok button is only clickable, if an extension is selected. (hint. you can double click on the extension, to create an empty file). 

#NoTrayIcon
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <GuiListView.au3>
#include <String.au3>
#include <WinAPIFiles.au3>
#include <Array.au3>
#include <EditConstants.au3>
#include <GuiEdit.au3>
#include <GuiButton.au3>
#include <ScrollBarsConstants.au3>
#include <Clipboard.au3>
#include <FileConstants.au3>

Global $test[0][2], $hFile, $cmd = "", $cmdtmp, $tmptxt, $tmpinidir, $filesetting, $MouseX, $MouseY, $UseMouseX, $UseMouseY, $Edit1
Global $aArray[1] = [], $sData = ""
$cmdtmp = StringReplace($cmdlineraw, Chr(34), "")

If StringLen($cmdtmp) = 2 Then
    If StringRight($cmdtmp, 1) = ":" Then
        $cmd = $cmdtmp & "\"
    EndIf
Else
    If StringRight($cmdtmp, 1) <> "\" Or StringRight($cmdtmp, 1) <> "/" Then
        $cmd = $cmdtmp & "\"
    EndIf
EndIf



If StringLen(@ScriptDir) > 3 And StringRight(@ScriptDir, 1) <> "\" Then
    $tmpinidir = @ScriptDir & "\"
Else
    $tmpinidir = @ScriptDir
EndIf

If StringLen($cmd) > 0 Then
    If Not FileExists($cmd) Then                ;Check if the folder exists, display an error message if not !
        DisplayReadMe(1)
        Exit
    EndIf
Else
    $cmd = $tmpinidir
EndIf


Local Const $sFilePath = $tmpinidir & "NewFile.ini"
$filesetting = IniRead($sFilePath, "setting", "filename", "MyNewFile")
$filesetting = StringReplace($filesetting, ">", " ")
;msgbox (0,"",$filesetting)  ;Debugging
If FileExists($sFilePath) Then
    $aArray = IniReadSectionNames($sFilePath) ; Read the INI section names. This will return a 1 dimensional array.
EndIf

$UseMouseX = IniRead($sFilePath, "setting", "UseMouseX", "1")
$UseMouseY = IniRead($sFilePath, "setting", "UseMouseY", "0")


; Check if an error occurred.
If Not @error Then
    ; Enumerate through the array displaying the section names.
    Local $count = 0
    If FileExists($sFilePath) Then
        For $i = 1 To $aArray[0]
            $tmp1 = IniRead($sFilePath, $aArray[$i], "1", "none")
            If $tmp1 <> "none" And StringLeft($tmp1, 1) = "." Then            ;Extension need to have a dot, or it will be ignored !
                $tmptxt = $tmptxt & $tmp1 & "|" & $aArray[$i] & @CRLF
                $count = $count + 1                                            ;Count how many extensions are added !
            EndIf
        Next
    EndIf

    If $count = 0 Then $tmptxt = ".au3|AutoIt 3" & @CRLF & ".txt|Text File" & @CRLF
    ;MsgBox($MB_SYSTEMMODAL,"",$tmptxt)
    _ArrayAdd($test, $tmptxt, 0, "|", @CRLF)
Else                                                            ;Reading the ini failed, create a default array for the extensions
    $tmptxt = ".au3|AutoIt 3" & @CRLF & ".txt|Text" & @CRLF
    _ArrayAdd($test, $tmptxt, 0, "|", @CRLF)
EndIf


;Local $test[5][2] = [['.au3', 'AutoIt'], ['.ahk', 'Auto Hotkey'], ['.txt', 'text'], ['.sdlbas', 'Sdl Basic'], ['.html', 'Webpage']]

If $UseMouseX = 1 Then
    $MouseX = MouseGetPos(0)
Else
    $MouseX = -1
EndIf

If $UseMouseY = 1 Then
    $MouseY = MouseGetPos(1)
Else
    $MouseY = -1
EndIf

$Form1 = GUICreate("Create New File", 210, 247, $MouseX, $MouseY, $WS_CAPTION, $WS_EX_APPWINDOW)
$List = GUICtrlCreateListView("", 5, 5, 200, 200)
_GUICtrlListView_InsertColumn($List, 0, "Extension", 65)
_GUICtrlListView_InsertColumn($List, 1, "Description", 115)
_GUICtrlListView_AddArray($List, $test)

GUICtrlCreateLabel("Example:" & $filesetting & "0000.ext", 5, 205)
$Button1 = GUICtrlCreateButton("Ok", 3, 224, 30, 22)
$Button4 = GUICtrlCreateButton("Save Clip Text", 33, 224, 75, 22)
$Button3 = GUICtrlCreateButton("ReadMe", 108, 224, 55, 22)
$Button2 = GUICtrlCreateButton("Cancel", 163, 224, 45, 22)
$cDummy = GUICtrlCreateDummy()
GUISetState(@SW_SHOW)

GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")

Local $aFormats[3] = [2, $CF_TEXT, $CF_OEMTEXT]
While 1
    $nMsg = GUIGetMsg()
    Local $tmptxt = StringSplit(_GUICtrlListView_GetItemTextString($List), "|")[1]
    If StringLen($tmptxt) > 0 Then
        _GUICtrlButton_Enable($Button1, 1)
        If _ClipBoard_GetPriorityFormat($aFormats) > 0 Then
            _GUICtrlButton_Enable($Button4, 1)
        Else
            _GUICtrlButton_Enable($Button4, 0)
        EndIf
    Else
        _GUICtrlButton_Enable($Button4, 0)
        _GUICtrlButton_Enable($Button1, 0)
    EndIf

    Switch $nMsg
        Case $GUI_EVENT_CLOSE, $Button2
            Exit
        Case $Button3
            DisplayReadMe(0)
        Case $Button1, $cDummy
            If StringLen($tmptxt) > 0 Then
                $tmpfile = GetFreeFileName()
                If $tmpfile <> "" Then
                    $hFile = _WinAPI_CreateFile($tmpfile, 0)
                    _WinAPI_CloseHandle($hFile)
                    Exit                                ;End the program
                EndIf
            EndIf
        Case $Button4
            If StringLen($tmptxt) > 0 Then
                $tmpfile = GetFreeFileName()
                ConsoleWrite($tmpfile)
                If $tmpfile <> "" Then
                    $hFile = FileOpen($tmpfile, 17)
                    Local $sData = ClipGet()
                    For $x = 1 To StringLen($sData)
                        Local $tmpwtxt=StringMid($sData, $x, 1)
                        FileWrite($hFile, StringToBinary($tmpwtxt))
                        FileSetPos($hFile, $x, 0)
                    Next
                    FileClose($hFile)
                    Exit                                ;End the program
                EndIf
            EndIf

    EndSwitch
WEnd

Func GetFreeFileName()
    Local $fnr = 0, $tmpfile = "", $tmpfile1 = ""
    While $fnr < 10000
        $tmpfile = $cmd & $filesetting & _StringRepeat("0", 4 - StringLen($fnr)) & $fnr & $tmptxt
        ;MsgBox(0,"",$tmpfile) ; for debugging
        If Not (FileExists($tmpfile)) Then
            $tmpfile1 = $tmpfile
            ExitLoop
        EndIf
        $fnr = $fnr + 1
    WEnd
    Return $tmpfile1
EndFunc   ;==>GetFreeFileName

;================================================================================
Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam)
    Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView
    $hWndListView = $List
    If Not IsHWnd($List) Then $hWndListView = GUICtrlGetHandle($List)

    $tNMHDR = DllStructCreate($tagNMHDR, $ilParam)
    $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom"))
    $iCode = DllStructGetData($tNMHDR, "Code")

    Switch $hWndFrom
        Case $hWndListView
            Switch $iCode

                Case $NM_DBLCLK
                    ; Fire the dummy if the ListView is double clicked
                    GUICtrlSendToDummy($cDummy)

            EndSwitch
    EndSwitch

    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_NOTIFY

Func DisplayReadMe($err)
    Local $Form1 = GUICreate("Read Me", 550, 400, 10, 10, BitOR($WS_CAPTION, $WS_THICKFRAME, $WS_MAXIMIZEBOX))
    $Edit1 = GUICtrlCreateEdit("", 0, 0, 549, 399)
    GUICtrlSetData(-1, "")
    GUISetState(@SW_SHOW)
    If $err = 1 Then
        Local $txttmp01 = "Error: Path does not exist"
        Local $txttmp02 = "Commandline call was: "
        AddText($txttmp01)
        AddText($txttmp02 & $cmd & @CRLF & @CRLF)
    EndIf
    AddText("Instructions:" & @CRLF)
    AddText("Displays a selection of available extensions and then creates a new file at the Path's location." & @CRLF & @CRLF & "Usage: NewFile Path")
    AddText("Example: NewFile c:\myfolder\" & @CRLF)
    AddText("Result: A file with a name 'MyFile0000.ext' will be created at the Path's location.")
    AddText("If the filename exists, the number counter will increase, until it finds a free number, up to 9999." & @CRLF)
    AddText("Use Save Clip button to copy the Clipboard text content into the file !" & @CRLF)
    AddText("OK + save clip buttons are clickable, only when an extension is selected. Save Clip needs (additionally) to have text data in the clipboard." & @CRLF)
    AddText("Uses a configuration file in the .exe folder named NewFile.ini !" & @CRLF)
    AddText("Example of a config file:" & @CRLF)
    AddText("[setting]" & @CRLF & "filename=MyFile>")
    AddText("UseMouseX=0                ;0 or 1 - position the dialog at the mouse x coordinate - usefull for multi monitor settings !")
    AddText("UseMouseY=0                ;0 or 1 - Set this and UseMouseX to spawn the dialog at the mouse coordinates !" & @CRLF)
    AddText(";Use > in filename as a space char ! (only needed if you want the space char at the beginning or at the end : in between filename and the number)" & @CRLF)
    AddText(";Format for this ini file is:" & @CRLF & ";Name             e.g [Auto It]")
    AddText(";extension       e.g 1=.au3" & @CRLF & "; p.s. only 1 extension per section ! the number must be 1" & @CRLF)
    AddText("[AutoIt3]" & @CRLF & "1=.au3" & @CRLF & @CRLF & "[Text]" & @CRLF & "1=.txt")

    _GUICtrlEdit_SetSel($Edit1, 0, 0)
    _GUICtrlEdit_Scroll($Edit1, $SB_SCROLLCARET)
    If $err = 1 Then
        _GUICtrlEdit_SetSel($Edit1, 0, StringLen($txttmp01 & $txttmp02 & $cmd) + 5)
    EndIf

    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case $GUI_EVENT_CLOSE
                GUIDelete($Form1)
                ExitLoop
        EndSwitch
    WEnd
EndFunc   ;==>DisplayReadMe

Func AddText($edittxt)
    _GUICtrlEdit_AppendText($Edit1, $edittxt & @CRLF)
EndFunc   ;==>AddText

Edit: 9.4.2020 - Fixed the bug (the 3 null bytes at the end of the file do not appear now.)  

Edited by Dan_555
bugfix

~Dan~ :Emu.Zone now with Desktop Pets / DeskMates - (Bugfixed UniScrMate 4.1)

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

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Miliardsto
      I have the following code. You can see there are $color_normal and $color_trans
      In my case normal is too dark . And color trans is to much violet.
      If you run it you will see how its looks. I want gui with listView have the same color like taskbar in windows 10.
      How to achieve that?
       
       
      #include <Date.au3> #include <MsgBoxConstants.au3> #include <GuiListBox.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <GuiListView.au3> HotKeySet("{ESC}", "Terminate") $color_normal = "0x" & StringLeft(StringRight(RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent", "AccentPalette"), 24), 6) $color_trans = "0x" & StringLeft(StringRight(RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent", "AccentPalette"), 16), 6) $trans = RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", "EnableTransparency") ConsoleWrite("Transpart = " & $trans & @CRLF) ConsoleWrite("Color normal = " & $color_normal & @CRLF) ConsoleWrite("Color trans = " & $color_trans & @CRLF) ConsoleWrite(_Get_taskbar_color()); It return AARRGGBB $taskbarColor = _Get_taskbar_color() Global $gui = GUICreate("Test", 150, 58,@DesktopWidth-300,@DesktopHeight-58,$WS_POPUP,BitOR($WS_EX_TOPMOST, $WS_EX_TOOLWINDOW)) Global $idListview = GUICtrlCreateListView("", 0, 0, 150, 58,BitOR($LBS_NOTIFY,$LBS_SORT), 0) ;_GuiCtrlMakeTrans(-1,100) ; Add column _GUICtrlListView_AddColumn($idListview, "Msgs", 100) GUICtrlSetFont(-1, 7, 400, 0, "Segoe UI") GUICtrlSetColor(-1, 0x470C4F) GUICtrlSetBkColor($idListview, 0x310638) GUISetState() While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func Terminate() Exit EndFunc Func _Get_taskbar_color() If RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", "ColorPrevalence") Then If RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", "EnableTransparency") Then Return "0xD9" & StringLeft(StringRight(RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent", "AccentPalette"), 16), 6) Else Return "0xFF" & StringLeft(StringRight(RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Accent", "AccentPalette"), 24), 6) EndIf Else If RegRead("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize", "EnableTransparency") Then Return "0xD9000000" Else Return "0xFF000000" EndIf EndIf EndFunc  
    • By Slipk
      Hello everybody,
      #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GUIListViewEx.au3> $Form1 = GUICreate("Form1", 539, 350, 192, 124) $ListView1 = GUICtrlCreateListView("CLM1|CLM2", 0, 0, 538, 326) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 150) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 150) Local $dynamic = GUICtrlCreateListViewItem("Example1|Example2", $ListView1) $SubMenu = GUICtrlCreateContextMenu($dynamic) $Run = GUICtrlCreateMenuItem("Run", $SubMenu) $Edit = GUICtrlCreateMenuItem("Edit", $SubMenu) $Delete = GUICtrlCreateMenuItem("Delete", $SubMenu) Local $dynamic2 = GUICtrlCreateListViewItem("Example3|Example6", $ListView1) $SubMenu = GUICtrlCreateContextMenu($dynamic2) $Run = GUICtrlCreateMenuItem("Run", $SubMenu) $Edit = GUICtrlCreateMenuItem("Edit", $SubMenu) $Delete = GUICtrlCreateMenuItem("Delete", $SubMenu) _GUIListViewEx_Init($ListView1, "", 0, 0, True, 64) _GUIListViewEx_MsgRegister() GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd I use GUIListViewEx.au3 for position of items in listview but when I move one the context menu disappear. Any solution of this?
      Any method than array it is possible?
      Thank you, appreciate it.
       
       
    • By Slipk
      Hello everybody,
      I download the GUIListViewEx.au3 by Melba23 in order to move up or down my items from a listview.
      Everything it's looking good in script but when I move an item it will crash.
      Any suggestions?
      Thank you! 

    • By Slipk
      Hello everybody,
      Sorry for my bad english.
       
      I try to figure out if I have a dynamic listview with as many items as I want, how to save to a text file all the data listview contains in the same form that you put when you create a listviewitem. I will give you an example.
      When the script is running it will show you the listview and some items. How to take the items data "Data1|Data1_Sub1|Data1_Sub2" in this format and paste into a text file? All of them.
      I tried to explain as good as I can.
      Thank you for your attention!
      #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> $Form_Menu = GUICreate("Form Example", 351, 234, -1, -1) $Form_Menu_ListView1 = GUICtrlCreateListView("Column #1|Column #2|Column #3", 0, 0, 346, 230) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 75) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 75) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 75) GUICtrlCreateListViewItem("Data1|Data1_Sub1|Data1_Sub2", $Form_Menu_ListView1) GUICtrlCreateListViewItem("Data2|Data2_Sub1|Data2_Sub2", $Form_Menu_ListView1) GUICtrlCreateListViewItem("DataN|DataN_SubN|DataN_SubN", $Form_Menu_ListView1) ;The data that appear in the listview be saved in a file like that : #cs Data1|Data1_Sub1|Data1_Sub2 Data2|Data2_Sub1|Data2_Sub2 DataN|DataN_SubN|DataN_SubN #ce GUISetState(@SW_SHOW, $Form_Menu) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd
    • By Slipk
      Hello,
      I tried with many methods and searched a lot for items to move up and down but couldn't find it.
      Sorry for my bad english.
      #include <ButtonConstants.au3> #include <GUIConstantsEx.au3> #include <ListViewConstants.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 307, 247, 192, 124) GUISetFont(10, 400, 0, "Arial") $ListView1 = GUICtrlCreateListView("C1|C2|C3", 0, 0, 250, 246) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 0, 50) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 1, 60) GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, 2, 100) GUICtrlCreateListViewItem("Test1|Test2|Test3", $ListView1) GUICtrlCreateListViewItem("Cat|Dog|Fish", $ListView1) GUICtrlCreateListViewItem("ABC|DEF|GHI", $ListView1) $Button1 = GUICtrlCreateButton("/\", 264, 8, 27, 25) GUICtrlSetFont(-1, 10, 800, 0, "Arial") $Button2 = GUICtrlCreateButton("\/", 264, 40, 27, 25) GUICtrlSetFont(-1, 10, 800, 0, "Arial") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1     $nMsg = GUIGetMsg()     Switch $nMsg         Case $GUI_EVENT_CLOSE             Exit         Case $Button1 ;up         Case $Button2 ;down     EndSwitch WEnd  
      Thank you for your help!
×
×
  • Create New...