Jump to content

Script works on XP, but doesn`t work on Vista


Recommended Posts

Hi!

I wrote a script and compiled it, it worked correctly on my XP PC. Then I sent the .exe to my friend, who has Vista - and he can`t use it, script just doesn`t run, it just winks in tray...

Shall I post the script here? I don`t think the problem is in code, but in Vista.

Link to comment
Share on other sites

Hi!

I wrote a script and compiled it, it worked correctly on my XP PC. Then I sent the .exe to my friend, who has Vista - and he can`t use it, script just doesn`t run, it just winks in tray...

Shall I post the script here? I don`t think the problem is in code, but in Vista.

You should add extra code to report errors, and to find out what it does on your friend's PC. For example, at every stage you think might be important write a line giving the line number and maybe the time, like this

.
.
MyLog("Line 345 in Function3")
.
.
.

Func MyLog($sL)
   FileWriteLine("log1.txt",$sL &" at " & @HOUR & ':' & @MIN & ':' & @SEC)
endfunc

Then even if the script hangs and has to be killed you should have a file you can read.

Edited by martin
Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.
Link to comment
Share on other sites

i found this Superb piece of code, ITS NOT MY WORK, so all credit goes to the author.

; ----------------------------------------------------------------------------
;
; AutoIt Version: 3.2.11.10
; Author:        Thorsten Meger
;
; Script Function:
;   Organize Includes Version 4.0
;
; ----------------------------------------------------------------------------
;Opt('TrayIconDebug', 1)
Opt('MustDeclareVars', 1)
Opt('WinSearchChildren', 1)
;[Includes]
#include <Array.au3>
#include <File.au3>
#include <GuiListView.au3>
#include <GuiStatusBar.au3>
#include <String.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>

Global $start_T = TimerInit()
; ScriptVersion
Global $scriptVersion = 'Version 4.0', $date = '02.May.2008\n'
; StableVersion
Global $InstallPath = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'InstallDir')
Global $InstallVersion = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'Version')
; BetaVersion
Global $betaInstallPath = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'betaInstallDir')
Global $betaInstallVersion = RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3\AutoIt', 'betaVersion')

; Variables
Global $includesPathes_A[1]
Global $includesIni = @ScriptDir & '\includes.ini'
Global $source = '', $sourceAnalyse = '', $exit_B = 0, $organize_B = 0, $openIni_B = 0, $autoitVersion_I = 0, $betaVersion_I = 0, $filename_I = 0
Global $includes_LV = 0, $FileName = '', $GUI = 0, $status_SB = 0, $checkIncludes_B = 0, $ToBeIncluded[1], $B_DESCENDING = 0
Global $deleteIncludes_CB = 0, $copyToClipBoard_CB = 0, $delAll_R = 0, $delUnneeded_R = 0, $delNothing_R = 0, $keyword_I = 0
Global $placeAfterKeyWord_R = 0, $placeAtTop_R = 0, $green_A[1], $yellow_A[1], $red_A[1], $LV = 0, $count = 0, $silentMode_CB = 0
Global $parts_SB[3] = [80, 526, -1], $silentMode = True, $renewIni_B = 0, $addIncludePath_B = 0, $delIncludePath_B = 0, $restart_B = 0
Global $SciTECmd = 0, $My_Dec_Hwnd = 0, $Scite_hwnd = 0
Global $autoRestart_CB = 0, $udf_LV = 0, $FilePath = 0, $h_file = 0
Global $fileCount_A = 0, $normal_CB = 0, $beta_CB = 0, $add = 75
Global $text_SB[3] = [@TAB & $scriptVersion, @TAB & 'Organize Includes', '']
Global $status_A[3] = ['correctly included', 'needed include', 'not needed']
Global $showProgress = 1
; Read the seetings from the ini file
Global $neededAndIncluded = IniRead($includesIni, 'Options', 'Green', 0x80FF80)
Global $neededNotIncluded = IniRead($includesIni, 'Options', 'Yellow', 0xFFFF80)
Global $notNeededButIncluded = IniRead($includesIni, 'Options', 'Red', 0xEF3D4A)
Global $keyword = IniRead($includesIni, 'Options', 'Keyword', ';[Includes]')
Global $includesFormatStart = IniRead($includesIni, 'Options', 'IncludesFormatStart', '#include<')
Global $includesFormatEnd = IniRead($includesIni, 'Options', 'IncludesFormatEnd', '>')
; In ini file 0=None, 1=normal, 2=beta, 3=normalAndBeta
Global $normalOrBetaOrBoth = IniRead($includesIni, 'Options', 'NormalOrBetaOrBoth', 3)
Global $lastRUN = IniRead($includesIni, 'Options', 'LastRUN', 0)

; MustDeclareVars
Global $nMsg

; **************************************************************
If $InstallPath <> '' And $normalOrBetaOrBoth = 1 Or $normalOrBetaOrBoth = 3 Then _ArrayAdd($includesPathes_A, $InstallPath & '\Include\')
If $betaInstallPath <> '' And $normalOrBetaOrBoth = 2 Or $normalOrBetaOrBoth = 3 Then _ArrayAdd($includesPathes_A, $betaInstallPath & '\Include\')
; **************************************************************
;   Add HERE your own pathes for udfs
; **************************************************************
;~   _ArrayAdd($includesPathes_A, $InstallPath & '\include\UDF\')
;~   _ArrayAdd($includesPathes_A, 'C:\Downloads\')
;   _ArrayAdd($includesPathes_A, 'C:\downloads\')
;   _ArrayAdd($includesPathes_A, 'C:\downloads\')
; **************************************************************

If $showProgress Then ProgressOn('Organize Includes', 'Investigating includes ...', '0 %', @DesktopWidth / 2 - 150, 200, 1)

; Operating sequence
_createGUI()

; Get SciTE DirectorHandle
$Scite_hwnd = WinGetHandle('DirectorExtension')
GUIRegisterMsg($WM_COPYDATA, 'MY_WM_COPYDATA')
$My_Dec_Hwnd = Dec(StringTrimLeft($GUI, 2))

; clear Output
SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'menucommand:420')

If $normalOrBetaOrBoth <> $lastRUN Then
    Switch $normalOrBetaOrBoth
        Case 0
            SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> Creating new includes.ini - NO AUTOIT includes ...\n')
        Case 1
            SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> Creating new includes.ini - NORMAL VERSION...\n')
        Case 2
            SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> Creating new includes.ini - BETA VERSION...\n')
        Case 3
            SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> Creating new includes.ini - NORMAL & BETA VERSION... (BETA first!) \n')
    EndSwitch
    _prepareOrganizeIncludes()
EndIf

; OI headline
SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:+> "Organize Includes" for AutoIt3 | ' & $scriptVersion & ' | ' & Chr(169) & ' Th.Meger' & Chr(153) & ' | ' & $date)

_start()

GUICtrlSetData($autoitVersion_I, $InstallVersion)
GUICtrlSetData($betaVersion_I, $betaInstallVersion)

; Setting silent off when 1 parameter = silentOff
; Silent mode = no GUI and organize includes automatically with settings from ini file
If $cmdLine[0] > 0 And $cmdLine[1] = 'silentOff' Then $silentMode = False
If GUICtrlRead($silentMode_CB) = $GUI_UNCHECKED Or $silentMode = False Then
    If $showProgress Then ProgressSet(100, 'Done', 'Complete')
    If $showProgress Then Sleep(200)
    If $showProgress Then ProgressOff()
    GUISetState(@SW_SHOW)
Else
    _organize()
    If $showProgress Then ProgressSet(100, 'Done', 'Complete')
    If $showProgress Then Sleep(200)
    If $showProgress Then ProgressOff()
    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'menucommand:104')
    Exit (0)
EndIf

_GUICtrlStatusBar_SetText($status_SB, @TAB & StringFormat('%06.4f', Round(TimerDiff($start_T) / 1000, 4)) & ' sec', 2)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            FileClose($h_file)
            Exit (0)
        Case $exit_B
            _exit()
            Exit (0)
        Case $organize_B
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Script started ... organizing includes ... ', 1)
            _exit()
            _organize()
            SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'menucommand:104')
            If GUICtrlRead($autoRestart_CB) = $GUI_CHECKED Then _restart()
        Case $openIni_B
            If FileExists($includesIni) Then
                ShellExecute($includesIni)
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'includes.ini opened', 1)
            Else
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'No ini file found', 1)
                Sleep(1000)
                Local $re = MsgBox(36, 'Create new ini file', 'Do you want to create a new ini file?', 15)
                If $re = -1 Or $re = 7 Then
                    _GUICtrlStatusBar_SetText($status_SB, @TAB & 'No ini file available', 1)
                ElseIf $re = 6 Then
                    _prepareOrganizeIncludes()
                    _GUICtrlStatusBar_SetText($status_SB, @TAB & 'New ini file created', 1)
                    Sleep(2000)
                    If FileExists($includesIni) Then ShellExecute($includesIni)
                EndIf
            EndIf
        Case $renewIni_B
            _renewIni()
        Case $placeAfterKeyWord_R
            GUICtrlSetState($keyword_I, $GUI_SHOW)
            GUICtrlSetState($keyword_I, $GUI_FOCUS)
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Enter your keyword ...', 1)
        Case $placeAtTop_R
            GUICtrlSetState($keyword_I, $GUI_HIDE)
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Includes will be placed at top of your script', 1)
        Case $copyToClipBoard_CB
            If GUICtrlRead($copyToClipBoard_CB) = $GUI_CHECKED Then
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Copying includes to clipboard activated', 1)
            Else
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Copying includes to clipboard deactivated', 1)
            EndIf
        Case $includes_LV
            _sortLV()
        Case $delAll_R
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'All includes will be removed', 1)
        Case $delUnneeded_R
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Only the not needed includes will be removed', 1)
        Case $delNothing_R
            _GUICtrlStatusBar_SetText($status_SB, @TAB & 'No includes will be removed', 1)
        Case $restart_B
            _exit()
            _restart()
        Case $silentMode_CB
            If GUICtrlRead($silentMode_CB) = $GUI_CHECKED Then
                GUICtrlSetState($autoRestart_CB, $GUI_DISABLE)
                GUICtrlSetState($autoRestart_CB, $GUI_UNCHECKED)
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Silent Mode activated', 1)
            Else
                GUICtrlSetState($autoRestart_CB, $GUI_ENABLE)
                _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Silent Mode deactivated', 1)
            EndIf
    EndSwitch
WEnd

; Start func gets the source and calls all other needed funcs.
Func _start()
    If Not ProcessExists('SciTE.exe') Then Exit (0)
    Local $opt = Opt('WinTitleMatchMode', 4)
    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'askfilename:')
    $SciTECmd = StringReplace($SciTECmd, '\\', '\')
   ; ConsoleWrite($SciTECmd & @CRLF); Ausgabe kompletter Rückgabewert von askfilename:
    $FilePath = StringTrimLeft($SciTECmd, StringInStr($SciTECmd, ':', Default, 3))
   ;MsgBox(0, '', $FilePath); Ausgabe Dateipfad
    $FileName = StringSplit($SciTECmd, '\\')
   ;SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:' & $FileName); Ausgabe des Dateinamens in die Console
    GUICtrlSetData($filename_I, $FileName[UBound($FileName) - 1])
    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'menucommand:106')
    Opt('WinTitleMatchMode', $opt)
   ; Open File
    Local $h_file = FileOpen($FilePath, 0)
    If $h_file = -1 Then
        MsgBox(16, 'Error', 'Could not open file : ' & $FilePath, 5)
        Exit (0)
    EndIf
   ; Read file
    $source = FileRead($h_file)
    If @error > 0 Then
        MsgBox(16, 'Error', 'Could not read file : ' & $FilePath, 5)
        Exit (0)
    EndIf
    FileClose($h_file)
   ; MsgBox(0, $FilePath, $source); Ausgabe des Quellcodes
    If Not FileExists($includesIni) Then
        _prepareOrganizeIncludes()
        _setOptions()
    EndIf
    $ToBeIncluded = getIncludes()
    _ArraySort($ToBeIncluded)
    Local $re = setIncludes($ToBeIncluded)
    If $re = -2 Then _GUICtrlStatusBar_SetText($status_SB, @TAB & 'No includes needed!', 1)
    _setUDFs()
EndFunc  ;==>_start

; Starting action (delete and/or insert)
Func _organize()
    Local $sourceLine_A = StringSplit($source, @CR)
    For $i = 1 To $sourceLine_A[0]
        $sourceLine_A[$i] = StringReplace($sourceLine_A[$i], @LF, '')
    Next
   ;_ArrayDisplay($sourceLine_A, 'vorher')
    $sourceLine_A = _deleteIncludes($sourceLine_A)
    $sourceLine_A = _insertIncludes($sourceLine_A)
   ;_ArrayDisplay($sourceLine_A, 'nachher')
   ; Änderungen in die Datei schreiben
    Local $filehandle = FileOpen($FilePath, 2)
   ; Check if file opened for reading OK
    If $filehandle = -1 Then
        MsgBox(0, 'Error', 'Unable to open file: ' & $FileName & ' in write mode', 5)
        Exit
    EndIf
    If FileWrite($filehandle, _ArrayToString($sourceLine_A, @CRLF, 1)) <> 1 Then
        MsgBox(16, 'Error', 'Source has not been changed!', 5)
    EndIf
    FileClose($filehandle)
    _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Includes inserted', 1)
EndFunc  ;==>_organize

; Insert includes into array of code lines
Func _insertIncludes($sourceLine_A)
    Local $includes = ''
    If GUICtrlRead($delAll_R) = $GUI_CHECKED Then $includes = _ArrayToString($green_A, @CRLF, 1)
    $includes &= @CRLF & _ArrayToString($yellow_A, @CRLF, 1)
    $includes = StringStripWS($includes, 3)

    If GUICtrlRead($placeAfterKeyWord_R) = $GUI_CHECKED Then
        Local $keyword = GUICtrlRead($keyword_I)
        For $i = 0 To UBound($sourceLine_A) - 1
            If StringInStr($sourceLine_A[$i], $keyword, 2) Then
                _ArrayInsert($sourceLine_A, $i + 1, $includes)
                ExitLoop
            EndIf
        Next
    Else
        If StringLen($includes) > 0 Then _ArrayInsert($sourceLine_A, 1, $includes)
    EndIf
    If GUICtrlRead($copyToClipBoard_CB) = $GUI_CHECKED Then
        ClipPut('')
        ClipPut($includes)
    EndIf
    Return $sourceLine_A
EndFunc  ;==>_insertIncludes

; Delete includes from array of code lines
Func _deleteIncludes($sourceLine_A)
    If GUICtrlRead($delAll_R) = $GUI_CHECKED Then
        For $i = UBound($sourceLine_A) - 1 To 1 Step -1
           ; Wenn ';' include dann lasse die Zeile aus
            If StringRegExp($sourceLine_A[$i], '(?i)#include[ ]*[<"' & "'][ ]*(.*?\.au3)(?=[ ]*[>'" & '"])', 0) = 1 And _
                    StringRegExp($sourceLine_A[$i], '(?i);.*[ ]*#include[ ]*[<"' & "']", 0) = 0 Then
                _ArrayDelete($sourceLine_A, $i)
            EndIf
        Next
    ElseIf GUICtrlRead($delUnneeded_R) = $GUI_CHECKED Then
        For $ii = 1 To UBound($red_A) - 1
            For $i = UBound($sourceLine_A) - 1 To 1 Step -1
                If StringRegExp($sourceLine_A[$i], '(?i)#include[ ]*[<"' & "'][ ]*(.*?" & $red_A[$ii] & ')[ ]*[>"' & "']", 0) = 1 And _
                        StringRegExp($sourceLine_A[$i], '(?i);.*[ ]*#include[ ]*[<"' & "']", 0) = 0 Then
                    _ArrayDelete($sourceLine_A, $i)
                EndIf
            Next
        Next
    EndIf
    Return $sourceLine_A
EndFunc  ;==>_deleteIncludes

Func setIncludes($ToBeIncluded)
    If Not IsArray($ToBeIncluded) Then Return -1
    Local $pattern = '(?i)(?<=\n|\s|\A)#include[ ]*[<"' & "'][ ]*(.*?\.au3)(?=[ ]*[>'" & '"])'
    _GUICtrlListView_SetItemCount($includes_LV, UBound($ToBeIncluded))
    Dim $LV[150]
   ; Create a row for every include and set bk to green
    
;~   _ArrayDisplay($ToBeIncluded)
    For $i = 1 To UBound($ToBeIncluded) - 1
        $LV[$count] = GUICtrlCreateListViewItem($includesFormatStart & $ToBeIncluded[$i] & $includesFormatEnd & '|' & $status_A[0], $includes_LV)
        GUICtrlSetBkColor(-1, $neededAndIncluded)
        $count += 1
       ; Is the needed include is not in source code then change bk to yellow and delete entry from green array
        If StringRegExp($source, '(?i)#include[ ]*[<"' & "'][ ]*" & $ToBeIncluded[$i] & '[ ]*' & "[>'" & '"]', 0) = 0 Or _
                StringRegExp($source, '(?i);[ ]*#include[ ]*[<"' & "'][ ]*" & $ToBeIncluded[$i] & '[ ]*' & "[>'" & '"]', 0) = 1 Then
            _GUICtrlListView_SetItemText($includes_LV, $i - 1, $status_A[1], 1)
;~           ConsoleWrite('> ' & $ToBeIncluded[$i] & @CRLF)
            GUICtrlSetBkColor(-1, $neededNotIncluded)
            _ArrayAdd($yellow_A, $ToBeIncluded[$i])
            _ArrayDelete($green_A, _ArraySearch($green_A, $ToBeIncluded[$i]))
        EndIf
    Next
   ; Find all includes in source code. Bk to red if they are not needed
    Local $alreadyIncluded = StringRegExp($source, $pattern, 3)
;~   If IsArray($alreadyIncluded) Then _ArrayDisplay($alreadyIncluded, 'Already')
    If Not @error Then
        For $i = 0 To UBound($alreadyIncluded) - 1
            If _ArraySearch($ToBeIncluded, $alreadyIncluded[$i]) = -1 Then
                $LV[$count] = GUICtrlCreateListViewItem($includesFormatStart & $alreadyIncluded[$i] & $includesFormatEnd & '|' & $status_A[2], $includes_LV)
                GUICtrlSetBkColor(-1, $notNeededButIncluded)
                $count += 1
                _ArrayAdd($red_A, $alreadyIncluded[$i])
            EndIf
        Next
    EndIf
   ; @@@ change 3.9
    For $i = 1 To UBound($green_A) - 1
        $green_A[$i] = $includesFormatStart & $green_A[$i] & $includesFormatEnd
    Next
    For $i = 1 To UBound($yellow_A) - 1
        $yellow_A[$i] = $includesFormatStart & $yellow_A[$i] & $includesFormatEnd
    Next
   ; Testausgabe für bereits includierte Includes
;~    _ArrayDisplay($alreadyIncluded, 'Bereits drin')
    If UBound($ToBeIncluded) = 1 Then Return -2
EndFunc  ;==>setIncludes

; If version number (Stable and beta) changed or ini file doesn't exist then create a new one with _prepareOrganizeIncludes()
; Search for needed includes
Func getIncludes()
   ; Für alle IncludeFolder checken ob sich die Anzahl der au3 Dateien geändert hat. Wenn ja, dann
   ; soll _prepareOrganizeIncludes() aufgerufen werden
    If FileExists($includesIni) = 0 Or _
            (IniRead($includesIni, 'Version', 'Beta', 'Error') <> $betaInstallVersion) Or _
            (IniRead($includesIni, 'Version', 'Stable', 'Error') <> $InstallVersion) Or _
            _checkIncludePathes() Then
        _prepareOrganizeIncludes()
    EndIf
   ;ConsoleWrite('returnCode : ' & _checkIncludePathes() & @CRLF)
    
    Local $lines_A, $re
    If Not _FileReadToArray($includesIni, $lines_A) Then
        MsgBox(4096, '', 'Error occurred, probably no ini file.')
        Exit
    EndIf

    Local $iniContent[1][2]
    Local $count = 1
    For $i = 1 To $lines_A[0] - 1
        If StringInStr($lines_A[$i], '.au3') Then
            $re = StringSplit($lines_A[$i], '=')
            ReDim $iniContent[$count + 1][2]
            $iniContent[$count][0] = $re[1]
            $iniContent[$count][1] = $re[2]
            $count += 1
        EndIf
    Next
    $iniContent[0][0] = UBound($iniContent) - 1
    
    Local $checkGUIRegisterMsg = 0

    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> ' & _StringRepeat('-', 100) & '\n')

    If StringRegExp($source, '(?i)GUIRegisterMsg[ ]*\(') Then $checkGUIRegisterMsg = 1

    For $i = 1 To $iniContent[0][0]
        If $showProgress Then ProgressSet(Round(($i * 100 / $iniContent[0][0])), StringFormat('%05.2f', Round(($i * 100 / $iniContent[0][0]), 2)) & ' %')
        Local $functionsInAU3 = StringSplit($iniContent[$i][1], ';')
        If @error Then
            If StringRegExp($source, '(?i)' & $iniContent[$i][0] & '([ ]+|\()', 0) = 1 Then
                _ArrayAdd($ToBeIncluded, $iniContent[$i][0])
                ExitLoop
            EndIf
        EndIf
        If $checkGUIRegisterMsg Then
            For $ii = 1 To UBound($functionsInAU3) - 1
                If StringRegExp($source, '(?i)\b' & $functionsInAU3[$ii] & '\b([ ]*)\(', 0) = 1 Or _
                        StringRegExp($source, '(?i)GUIRegisterMsg[ ]*\([ ]*.*(["' & "']+\b" & $functionsInAU3[$ii] & "\b['" & '"]+[ ]*)') = 1 Or _
                        StringRegExp($source, '(?i)\' & $functionsInAU3[$ii] & '(?=\W)', 0) = 1 Then
                    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:+> ' & $functionsInAU3[$ii] & _StringRepeat(' ', 50 - StringLen($functionsInAU3[$ii])) & Chr(151) & '> ' & $iniContent[$i][0] & '\n')
                    _ArrayAdd($ToBeIncluded, $iniContent[$i][0])
                    ExitLoop
                EndIf
            Next
        Else
            For $ii = 1 To UBound($functionsInAU3) - 1
                If StringRegExp($source, '(?i)\b' & $functionsInAU3[$ii] & '\b([ ]*)\(', 0) = 1 Or _
                        StringRegExp($source, '(?i)\' & $functionsInAU3[$ii] & '(?=\W)', 0) = 1 Then
                   ;StringRegExp($source, '(?i)(?<= )\' & $functionsInAU3[$ii] & '(?= )', 0) = 1 Then
                    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:+> ' & $functionsInAU3[$ii] & _StringRepeat(' ', 50 - StringLen($functionsInAU3[$ii])) & Chr(151) & '> ' & $iniContent[$i][0] & '\n')
                    _ArrayAdd($ToBeIncluded, $iniContent[$i][0])
                    ExitLoop
                EndIf
            Next
        EndIf
    Next
    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'output:!> ' & _StringRepeat('-', 100) & '\n')
;~   _ArrayDisplay($ToBeIncluded)
    $green_A = $ToBeIncluded
    Return $ToBeIncluded
EndFunc  ;==>getIncludes

Func _setOptions()
   ; Version info
    IniWrite($includesIni, 'Version', 'Beta', $betaInstallVersion)
    IniWrite($includesIni, 'Version', 'Stable', $InstallVersion)
   ; Options
    IniWrite($includesIni, 'Options', 'Green', '0x80FF80')
    IniWrite($includesIni, 'Options', 'Yellow', '0xFFFF80')
    IniWrite($includesIni, 'Options', 'Red', '0xEF3D4A')
    IniWrite($includesIni, 'Options', 'Keyword', ';[Includes]')
    IniWrite($includesIni, 'Options', 'CopyToCliP', 0)
    IniWrite($includesIni, 'Options', 'Del', 0)
    IniWrite($includesIni, 'Options', 'Place', 0)
    IniWrite($includesIni, 'Options', 'SilentMode', 0)
    IniWrite($includesIni, 'Options', 'AutoRestart', 1)
    IniWrite($includesIni, 'Options', 'LastRUN', 2)
    IniWrite($includesIni, 'Options', 'NormalOrBetaOrBoth', 0)
    IniWrite($includesIni, 'Options', 'IncludesFormatStart', '#include <')
    IniWrite($includesIni, 'Options', 'IncludesFormatEnd', '>')
    IniWrite($includesIni, 'Options', 'Created', @YEAR & '/' & @MON & '/' & @MDAY & ' - ' & @HOUR & ':' & @MIN & ':' & @SEC)
EndFunc  ;==>_setOptions

; Create new includes.ini with funcs and seetings/options
Func _prepareOrganizeIncludes()
   ; ConsoleWrite('_prepareOrganizeIncludes ' & @CRLF)
   ; Includes
    IniDelete($includesIni, 'Functions')
    IniDelete($includesIni, 'Constants')
    Local $functions, $FileList
    For $ii = 0 To UBound($includesPathes_A) - 1
        $FileList = _FileListToArray($includesPathes_A[$ii], '*.au3', 1)
        If @error = 1 Then ContinueLoop
        
        For $i = 1 To UBound($FileList) - 1
            If StringInStr($FileList[$i], 'Constants') = 0 Then
               ; Untersuchung der Funktionen
               ;ConsoleWrite($i & ' : ' & $includesPathes_A[$ii] & $FileList[$i] & @CRLF)
                $functions = StringRegExp(FileRead(FileOpen($includesPathes_A[$ii] & $FileList[$i], 0)), '(?i)(?<=Func )[0-9a-zA-Z_]+[ ]*(?=\()', 3)
                If IsArray($functions) And UBound($functions) > 1 Then
                    IniWrite($includesIni, 'Functions', $FileList[$i], _ArrayToString($functions, ';'))
                ElseIf IsArray($functions) Then
                    IniWrite($includesIni, 'Functions', $FileList[$i], $functions[0])
                EndIf
            Else
               ; Untersuchung der Konstanten
               ;ConsoleWrite($i & ' x: ' & $includesPathes_A[$ii] & $FileList[$i] & @CRLF)
                $functions = StringRegExp(FileRead(FileOpen($includesPathes_A[$ii] & $FileList[$i], 0)), '(?i)(?<=Global Const )\$\w*', 3)
                If IsArray($functions) And UBound($functions) > 1 Then
                    IniWrite($includesIni, 'Constants', $FileList[$i], _ArrayToString($functions, ';'))
                ElseIf IsArray($functions) Then
                    IniWrite($includesIni, 'Constants', $FileList[$i], $functions[0])
                EndIf
            EndIf
        Next
    Next
    IniWrite($includesIni, 'Options', 'Created', @YEAR & '/' & @MON & '/' & @MDAY & ' - ' & @HOUR & ':' & @MIN & ':' & @SEC)
    _saveIncludePathesToIni()
EndFunc  ;==>_prepareOrganizeIncludes

; Create the GUI
Func _createGUI()
    $GUI = GUICreate('Organize Includes for AutoIt                                                               by Xenobiologist', 606, 646, @DesktopWidth / 2 - 303, 50, $WS_SYSMENU)
    GUICtrlCreateGroup('Includes', 8, 158, 585, 368)
    $includes_LV = GUICtrlCreateListView('Includes|Status', 24, 187, 553, 321)
    GUICtrlSendMsg($includes_LV, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
    GUICtrlSendMsg($includes_LV, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
    Global $B_DESCENDING[_GUICtrlListView_GetColumnCount($includes_LV)]
    GUICtrlSetFont($includes_LV, 10, 600, '', 'Trebuchet MS')
    _GUICtrlListView_SetColumnWidth($includes_LV, 0, 400)
    _GUICtrlListView_SetColumnWidth($includes_LV, 1, $LVSCW_AUTOSIZE_USEHEADER)
    GUICtrlCreateGroup('', -99, -99, 1, 1)
    GUICtrlCreateLabel('AutoIt', 8, 16, 100, 21, $SS_SUNKEN)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 12, 700)
    $autoitVersion_I = GUICtrlCreateInput('', 113, 16, 81, 21)
    GUICtrlCreateLabel('AutoIt beta', 203, 16, 100, 21, $SS_SUNKEN)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 12, 700)
    $betaVersion_I = GUICtrlCreateInput('', 309, 16, 81, 21)
    GUICtrlCreateLabel('Filename', 8, 40, 100, 21, $SS_SUNKEN)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 12, 700)
    $filename_I = GUICtrlCreateInput('', 113, 40, 278, 21)
    
    GUICtrlCreatePic($InstallPath & '\Examples\GUI\logo4.gif', 400, 16, 190, 45)
    
    GUICtrlCreateGroup('Options', 8, 68, 585, 88)
    
    $organize_B = GUICtrlCreateButton('Organize includes', 8, 562, 187, 25, 0)
    GUICtrlSetTip(-1, 'Start organize includes', 'Start script', 1, 1)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 11, 600)

    $openIni_B = GUICtrlCreateButton('Open ini', 200, 562, 100, 25, 0)
    GUICtrlSetTip(-1, 'Options and settings for the "Organize Includes" script', 'Open ini file', 1, 1)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 11, 600)

    $renewIni_B = GUICtrlCreateButton('Renew ini', 303, 562, 100, 25, 0)
    GUICtrlSetTip(-1, 'New scan for funcs in include folders', 'Renew ini file', 1, 1)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 11, 600)

    $exit_B = GUICtrlCreateButton('Exit', 408, 562, 187, 25, 0)
    GUICtrlSetTip(-1, 'Exit' & @TAB & @TAB & @TAB & '- settings will be saved' & @CRLF & _
            'Exit without saving' & @TAB & '- by leaving with the cross', 'Exit script', 1, 1)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 11, 600)
    $status_SB = _GUICtrlStatusBar_Create($GUI, $parts_SB, $text_SB)
    GUIStartGroup()
    $delAll_R = GUICtrlCreateRadio('Remove all', 22, $add + 16, 120, 15)
    GUICtrlSetTip(-1, 'Remove all' & @TAB & @TAB & ' - remove all includes of your script' & @CRLF & _
            'Remove unneeded ' & @TAB & ' - remove all not needed includes of your script' & @CRLF & _
            'Remove nothing ' & @TAB & ' - do not remove includes of your script', 'Remove includes', 1, 1)
    $delUnneeded_R = GUICtrlCreateRadio('Remove unneeded', 22, $add + 32, 120, 15)
    $delNothing_R = GUICtrlCreateRadio('Remove nothing', 22, $add + 48, 120, 15)
    GUIStartGroup()

    Switch IniRead($includesIni, 'Options', 'Del', '0')
        Case 0
            GUICtrlSetState($delAll_R, $GUI_CHECKED)
        Case 1
            GUICtrlSetState($delUnneeded_R, $GUI_CHECKED)
        Case 2
            GUICtrlSetState($delNothing_R, $GUI_CHECKED)
    EndSwitch

    GUIStartGroup()
    $placeAfterKeyWord_R = GUICtrlCreateRadio('Place after keyword', 175, $add + 16, 120, 15)
    GUICtrlSetTip(-1, 'Insert the inculdes at top of your script or' & @CRLF & _
            'place the includes after a special keyword.', 'Insert includes', 1, 1)
    $placeAtTop_R = GUICtrlCreateRadio('Place at top', 175, $add + 32, 120, 15)
    GUIStartGroup()

    $keyword_I = GUICtrlCreateInput(IniRead($includesIni, 'Options', 'Keyword', ';[includes]'), 175, $add + 50, 113, 15)
    GUICtrlSetColor(-1, 0x0000FF)
    GUICtrlSetFont(-1, 7, 1700)
    GUICtrlSetTip(-1, 'Keyword to search for. Includes are placed after this line.', 'Keyword', 1, 1)
    If IniRead($includesIni, 'Options', 'Place', '0') = 1 Then
        GUICtrlSetState($placeAtTop_R, $GUI_CHECKED)
        GUICtrlSetState($keyword_I, $GUI_HIDE)
    Else
        GUICtrlSetState($placeAfterKeyWord_R, $GUI_CHECKED)
        GUICtrlSetState($keyword_I, $GUI_SHOW)
    EndIf

    $copyToClipBoard_CB = GUICtrlCreateCheckbox('Copy to clipboard', 345, $add + 16, 120, 15)
    GUICtrlSetTip(-1, 'Copy the includes to clipboard.', 'Copy to clipboard', 1, 1)
    If IniRead($includesIni, 'Options', 'CopyToClip', '0') = 1 Then GUICtrlSetState($copyToClipBoard_CB, $GUI_CHECKED)

    $autoRestart_CB = GUICtrlCreateCheckbox('AutoRestart', 345, $add + 32, 120, 15)
    GUICtrlSetTip(-1, 'AutoRestart ' & @TAB & '- Automatically restarts script after pressing organize includes button', 'AutoRestart', 1, 1)
    If IniRead($includesIni, 'Options', 'AutoRestart', '0') = 1 Then GUICtrlSetState($autoRestart_CB, $GUI_CHECKED)

    $silentMode_CB = GUICtrlCreateCheckbox('Silent Mode', 345, $add + 48, 120, 15)
    GUICtrlSetTip(-1, 'Checked ' & @TAB & '- Next start will do an oragnize includes without GUI.' & @CRLF & _
            'Once checked and restarted you can only deacitvate silent mode by changend value in the ini to SilentMode=0 or ' & @CRLF & _
            'by starting the script with parameter silentOff.', 'Silent Mode', 1, 1)
    If IniRead($includesIni, 'Options', 'SilentMode', '0') = 1 Then GUICtrlSetState($silentMode_CB, $GUI_CHECKED)
    $restart_B = GUICtrlCreateButton('Restart/Refresh', 200, 535, 203, 19)
    GUICtrlSetTip(-1, 'Restarts "organize includes". Behaves like a refresh.', 'Restart/Refresh', 1, 1)
    
    $normal_CB = GUICtrlCreateCheckbox('Use Normal', 490, $add + 16, 100, 15)
    GUICtrlSetTip($normal_CB, 'Use normal version for organizing includes', 'Search for keywords in "Normal Version"', 1, 1)
    $beta_CB = GUICtrlCreateCheckbox('Use Beta', 490, $add + 32, 100, 15)
    GUICtrlSetTip($beta_CB, 'Use beta version for organizing includes' & @CRLF & _
            'Organize includes is started with beta version --> if normal and beta are checked OI starts searching in beta version!', _
            'Search for keywords in "Beta Version"', 1, 1)
    
    Switch $normalOrBetaOrBoth
        Case 0
            GUICtrlSetState($normal_CB, $GUI_UNCHECKED)
            GUICtrlSetState($beta_CB, $GUI_UNCHECKED)
        Case 1
            GUICtrlSetState($normal_CB, $GUI_CHECKED)
            GUICtrlSetState($beta_CB, $GUI_UNCHECKED)
        Case 2
            GUICtrlSetState($normal_CB, $GUI_UNCHECKED)
            GUICtrlSetState($beta_CB, $GUI_CHECKED)
        Case 3
            GUICtrlSetState($normal_CB, $GUI_CHECKED)
            GUICtrlSetState($beta_CB, $GUI_CHECKED)
    EndSwitch
EndFunc  ;==>_createGUI

; Save seetings before exit
Func _exit()
    If GUICtrlRead($placeAfterKeyWord_R) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'Keyword', GUICtrlRead($keyword_I))
    EndIf
    If GUICtrlRead($copyToClipBoard_CB) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'CopyToClip', 1)
    Else
        IniWrite($includesIni, 'Options', 'CopyToClip', 0)
    EndIf

    If GUICtrlRead($delAll_R) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'Del', 0)
    ElseIf GUICtrlRead($delUnneeded_R) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'Del', 1)
    ElseIf GUICtrlRead($delNothing_R) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'Del', 2)
    EndIf

    If GUICtrlRead($placeAfterKeyWord_R) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'Place', 0)
    Else
        IniWrite($includesIni, 'Options', 'Place', 1)
    EndIf

    If GUICtrlRead($silentMode_CB) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'SilentMode', 1)
    Else
        IniWrite($includesIni, 'Options', 'SilentMode', 0)
    EndIf

    If GUICtrlRead($autoRestart_CB) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'AutoRestart', 1)
    Else
        IniWrite($includesIni, 'Options', 'AutoRestart', 0)
    EndIf

    If $InstallVersion <> IniWrite($includesIni, 'Version', 'Stable', $InstallVersion) Then
        IniWrite($includesIni, 'Version', 'Stable', $InstallVersion)
    EndIf

    If $betaInstallVersion = IniWrite($includesIni, 'Version', 'Beta', $betaInstallVersion) Then
        IniWrite($includesIni, 'Version', 'Beta', $betaInstallVersion)
    EndIf

    IniWrite($includesIni, 'Options', 'LastRUN', $normalOrBetaOrBoth)
    
    If GUICtrlRead($normal_CB) = $GUI_CHECKED And GUICtrlRead($beta_CB) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'NormalOrBetaOrBoth', 3)
    ElseIf GUICtrlRead($beta_CB) = $GUI_CHECKED And GUICtrlRead($normal_CB) = $GUI_UNCHECKED Then
        IniWrite($includesIni, 'Options', 'NormalOrBetaOrBoth', 2)
    ElseIf GUICtrlRead($beta_CB) = $GUI_UNCHECKED And GUICtrlRead($normal_CB) = $GUI_CHECKED Then
        IniWrite($includesIni, 'Options', 'NormalOrBetaOrBoth', 1)
    ElseIf GUICtrlRead($beta_CB) = $GUI_UNCHECKED And GUICtrlRead($normal_CB) = $GUI_UNCHECKED Then
        IniWrite($includesIni, 'Options', 'NormalOrBetaOrBoth', 0)
    EndIf
    
EndFunc  ;==>_exit

; Sort the listview items
Func _sortLV()
    Local $iCol[2] = [0]
    _GUICtrlListView_SimpleSort($includes_LV, $B_DESCENDING, $iCol)
    For $i = 0 To $count - 1
        Switch _GUICtrlListView_GetItemText($includes_LV, $i, 1)
            Case $status_A[0]
                GUICtrlSetBkColor($LV[$i], $neededAndIncluded)
            Case $status_A[1]
                GUICtrlSetBkColor($LV[$i], $neededNotIncluded)
            Case $status_A[2]
                GUICtrlSetBkColor($LV[$i], $notNeededButIncluded)
        EndSwitch
    Next
EndFunc  ;==>_sortLV

Func _restart()
    SendSciTE_Command($My_Dec_Hwnd, $Scite_hwnd, 'menucommand:420')
    _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Script is restarting ...', 1)
    Run('"' & @AutoItExe & '" ' & '/AutoIt3ExecuteScript "' & @ScriptFullPath & '" ' & @AutoItPID, '', @SW_HIDE)
    Exit (0)
EndFunc  ;==>_restart

Func _renewIni()
    If IniDelete($includesIni, 'Functions') And IniDelete($includesIni, 'Constants') Then
        _GUICtrlStatusBar_SetText($status_SB, @TAB & 'Funcs in includes.ini deleted', 1)
        Local $includePathSection = IniReadSection($includesIni, 'IncludePath')
        If Not @error Then
            For $i = 1 To $includePathSection[0][0]
                If _ArraySearch($includesPathes_A, $includePathSection[$i][0] & '\') = -1 Then
                    _ArrayInsert($includesPathes_A, 0, $includePathSection[$i][0] & '\')
                EndIf
            Next
        EndIf
        _prepareOrganizeIncludes()
    Else
        _GUICtrlStatusBar_SetText($status_SB, @TAB & 'includes.ini could not be renewed', 1)
    EndIf
EndFunc  ;==>_renewIni

Func _setUDFs()
    For $i = 1 To UBound($includesPathes_A) - 1
        GUICtrlCreateListViewItem($includesPathes_A[$i], $udf_LV)
    Next
EndFunc  ;==>_setUDFs

Func _saveIncludePathesToIni()
    For $i = 1 To UBound($includesPathes_A) - 1
        $fileCount_A = _FileListToArray($includesPathes_A[$i], '*.au3', 1)
       ; Wenn keine der Pfad nicht existiert
        If @error = 1 Then
            MsgBox(16, 'Error', 'Invalid path for include location : ' & $includesPathes_A[$i], 10)
            Exit (0)
        EndIf
       ; Wenn keine au3 Datei gefunden wird - Wert auf 0 setzen
        If @error = 4 Then IniWrite($includesIni, 'IncludePathes', $includesPathes_A[$i], '')
        IniWrite($includesIni, 'IncludePathes', $includesPathes_A[$i], StringReplace(_ArrayToString($fileCount_A, ';', 1), '.au3', ''))
    Next
EndFunc  ;==>_saveIncludePathesToIni

Func _checkIncludePathes()
    Local $pathes_A = IniReadSection($includesIni, 'IncludePathes')
    If @error Then Return -1
   ; Wenn einer der Pfade aus dem Code nicht drin in der ini ist, dann neu machen
    For $i = 1 To UBound($includesPathes_A) - 1
        If _ArraySearch($pathes_A, $includesPathes_A[$i], 1, 0, 0, 0, 1, 0) = -1 Then
            IniDelete($includesIni, 'IncludePathes')
            ConsoleWrite('!> Creating includes.ini ...' & @CRLF)
            Return 3
        EndIf
    Next
   ; Wenn einer der Pfade aus dem Ini nicht im Code ist, dann neu machen
    For $i = 1 To UBound($pathes_A, 1) - 1
        If _ArraySearch($includesPathes_A, $pathes_A[$i][0], 1, 0, 0, 0, 1, 0) = -1 Then
            IniDelete($includesIni, 'IncludePathes')
            ConsoleWrite('!> Creating includes.ini ...' & @CRLF)
            Return 3
        EndIf
    Next
    For $i = 1 To UBound($includesPathes_A) - 1
        $fileCount_A = _FileListToArray($includesPathes_A[$i], '*.au3', 1)
       ; Wenn einer der Pfad nicht existiert
        If @error Then Return 1
        If IniRead($includesIni, 'IncludePathes', $includesPathes_A[$i], '') <> StringReplace(_ArrayToString($fileCount_A, ';', 1), '.au3', '') Then
            ConsoleWrite('!> Creating includes.ini ...' & @CRLF)
            Return 1
        EndIf
    Next
    Return 0
EndFunc  ;==>_checkIncludePathes

; Send command to SciTE
Func SendSciTE_Command($My_Hwnd, $Scite_hwnd, $sCmd)
    $sCmd = ':' & $My_Dec_Hwnd & ':' & $sCmd
   ;ConsoleWrite('-->' & $sCmd & @LF)
    Local $CmdStruct = DllStructCreate('Char[' & StringLen($sCmd) + 1 & ']')
    DllStructSetData($CmdStruct, 1, $sCmd)
    Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr')
    DllStructSetData($COPYDATA, 1, 1)
    DllStructSetData($COPYDATA, 2, StringLen($sCmd) + 1)
    DllStructSetData($COPYDATA, 3, DllStructGetPtr($CmdStruct))
    DllCall('User32.dll', 'None', 'SendMessage', 'HWnd', $Scite_hwnd, _
            'Int', $WM_COPYDATA, 'HWnd', $My_Hwnd, _
            'Ptr', DllStructGetPtr($COPYDATA))
EndFunc  ;==>SendSciTE_Command

; Received Data from SciTE
Func MY_WM_COPYDATA($hWnd, $msg, $wParam, $lParam)
    Local $COPYDATA = DllStructCreate('Ptr;DWord;Ptr', $lParam)
    Local $SciTECmdLen = DllStructGetData($COPYDATA, 2)
    Local $CmdStruct = DllStructCreate('Char[255]', DllStructGetData($COPYDATA, 3))
    $SciTECmd = StringLeft(DllStructGetData($CmdStruct, 1), $SciTECmdLen)
EndFunc  ;==>MY_WM_COPYDAT

:):):):P

Link to comment
Share on other sites

i found this Superb piece of code, ITS NOT MY WORK, so all credit goes to the author.

A link to Xenobiologist's Organize Includes thread would have been better than posting all that code.

How does that help the OP? If the script runs on his PC then the problem is nothing to do with missing include files because evg64 saids he's sending an exe.

Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script.
Link to comment
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
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...