Jump to content

Several files at once to Open with


coucou
 Share

Recommended Posts

Hello,

I'm looking of how to run several files at once,

In fact, I wrote the following script to install Babylon dictionaries,

$Babylon = @ProgramFilesDir  & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_English.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_English_French.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_English_Hebrew.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_French_English_diction.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_Hebrew_English.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Babylon_Hebrew_Thesaurus.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Britannica_Concise_Encyclopedi.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Concise_Oxford_English_Diction.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Concise_Oxford_Thesaurus.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Cuisine_Glossary.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Dictionnaire_Du_Droit_Priv_.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Gali_s_Gastronomical_Glossary.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Glossaire_du_juda__sme.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\KS_Lexique_boursier_et_financi.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Mehrpooya_Assistant_de_Conjuga.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Merriam_Webster_Collegiate__Di.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\Merriam_Webster_Collegiate__Th.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\psychometric.BGL")
ShellExecuteWait($Babylon, @ScriptDir & "\ynet Encyclopedia.BGL")
The script pause/stop after the 1st installation and I've to close Babylon.exe process and restart agin and again.

So, I thought using an array to scan all *.BGL files. I wrote the following script.

#Include <File.au3>
Opt('TrayIconDebug', 1)
$Babylon = @ProgramFilesDir  & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

$targetdir = @ScriptDir
#Include <File.au3>
$FileList=_FileListToArray($targetdir & "\*.BGL")
If @Error=1 Then
    MsgBox (0,"","No Files\Folders Found.")
    Exit
EndIf

for $i = 1 to $FileList[0]
    $cmd = '$Babylon "'& $FileList[$i] &'"'
    ShellExecuteWait($cmd,$targetdir)
Next

$pid="Babylon.exe"
ProcessWait($pid, 2)
For $i = 1 To 10 Step 1
    If ProcessExists($pid) Then
        ProcessClose($pid)
    Else
        ExitLoop
    EndIf
Next
This time i have "No Files\Folders Found." message.

I'll appreciate any help

Regards

Edited by coucou
Link to comment
Share on other sites

I dont know what that babylon is, but I dont think it matters here.

If it dosent close itself after 'first install' then you must close it yourself.

Try using ShellExecute, without the wait, and a loop checking its status in some way. Perhaps the window title changes when an operation is complete, if so you would check for the title before moving to the next file.

Maybe the app has command line switches that could help.

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

TNX for replying,

Babylon is an online and opffline translator

Once Babylon is installed, it allow installing dictionaries, then it can be used offline.

more info http://www.babylon.com/

I tried using ShellExecute, no dictionary is installed. When ShellExecuteWait install the first dictionary and pause/stop.

In fact, to install all the dictionary I've to select them all under Explorer and right-click and Open with (all at once)... Babylon.exe.

Regards

Link to comment
Share on other sites

Coucou, Ça va, mon ami? Your _FileListToArray() was badly formated...that is why you were not getting any returned files. Try this

#include <File.au3>
Opt('TrayIconDebug', 1)

Local $Babylon = @ProgramFilesDir & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

$Targetdir = @ScriptDir
#include <File.au3>
$FileList = _FileListToArray($Targetdir, "*.BGL", 1)
If @error = 1 Then
    MsgBox(0, "", "No Files\Folders Found.")
    Exit
EndIf

For $i = 1 To $FileList[0]
    $Cmd = $Babylon & ' "' & $Targetdir & '\' & $FileList[$i] & '"'
    $PID = Run($Cmd, $Targetdir)
    If Not _ProcessWait($PID, 2) Then ContinueLoop ;skip to next file if Process does not start within 2 seconds
    If Not _ProcessWaitClose($PID) Then ProcessClose($PID) ;[optional] number of seconds to wait before forcibly closing Process
Next

Func _ProcessWait($iProcess, $TimeOut = 0)
    Local $Start = TimerInit()
    If $TimeOut < 0 Then $TimeOut = 0 ;in case you pass a negative, timeout is disabled
    While Not ProcessExists($iProcess)
        Sleep(10)
        If $TimeOut Then
            If TimerDiff($Start) >= $TimeOut * 1000 Then
                If ProcessExists($iProcess) Then ExitLoop
                Return
            EndIf
        EndIf
    WEnd
    Return 1
EndFunc   ;==>_ProcessWait

Func _ProcessWaitClose($iProcess, $TimeOut = 0)
    Local $Start = TimerInit()
    If $TimeOut < 0 Then $TimeOut = 0 ;in case you pass a negative, timeout is disabled
    While ProcessExists($iProcess)
        Sleep(10)
        If $TimeOut Then
            If TimerDiff($Start) >= $TimeOut * 1000 Then
                If Not ProcessExists($iProcess) Then ExitLoop
                Return
            EndIf
        EndIf
    WEnd
    Return 1
EndFunc   ;==>_ProcessWaitClose
Edited by Varian
Link to comment
Share on other sites

Bonsoir Varian mon ami :idiot:

Nice to hear from you again.

I tested yr script, the first dictionary (xxxxx.BGL) is installed then Babylon pause ( the script stick at line 46). If I close babylon.exe process the script restart Babylon and install the second dictionary and so on.

Here how I install Babylon dictionaries manually.

1) under explorer, I select all .BGL files

2 right-click on them and select Open with...

3) select... Babylon

Babylon install all of them togther at once (as image bellow)

May be, we have not to use an array ;):)

Is there an AutoIt command to run several files at once?

Regards

Posted Image

Link to comment
Share on other sites

Try this.

#include <File.au3>

$Babylon = @ProgramFilesDir & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

$targetdir = @ScriptDir
#include <File.au3>
$FileList = _FileListToArray($targetdir & "\*.BGL")
If @error = 1 Then
    MsgBox(0, "", "No Files\Folders Found.")
    Exit
EndIf

$cmd = ' /'

For $i = 1 To $FileList[0]
    $cmd &= $FileList[$i] & ' '
Next

Run($Babylon & $cmd)

AutoIt Absolute Beginners    Require a serial    Pause Script    Video Tutorials by Morthawt   ipify 

Monkey's are, like, natures humans.

Link to comment
Share on other sites

Maybe change to $FileList = _FileListToArray($Targetdir, "*.BGL", 1) it might help?!

Edited by guinness

UDF List:

 
_AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples...

Updated: 22/04/2018

Link to comment
Share on other sites

From JohnOne's script, make the following changes

$FileList = _FileListToArray($Targetdir, "*.BGL", 1)

and I suggest this change to avoid long name problems (parameters with spaces)

$cmd = ' '

For $i = 1 To $FileList[0]
    $cmd &= '"' & $Targetdir & '\' & $FileList[$i] & '"'
    If $i <> $FileList[0] Then $cmd &= ' '
Next

Run($Babylon & $cmd)

Other than that, you should be good to go

Link to comment
Share on other sites

TNX all for yr effort, it doesn't help yet.

When I execute the script, Babylon is launched and ... nothing happens. It looks like the last command (line 29) Run unaware $cmd.

In fact, as far as i gathered information from this site, the AutoIt "Open With" command is ShellExecute. So I replace the last line with ShellExecute($Babylon & $cmd)

When I exeute the script I get the following message :)Posted Image

Posted Image

Opt('TrayIconDebug', 1)
#include <File.au3>

$Babylon = @ProgramFilesDir & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

$targetdir = @ScriptDir
#include <File.au3>
$FileList = _FileListToArray($Targetdir, "*.BGL", 1)

If @error = 1 Then
    MsgBox(0, "", "No Files\Folders Found.")
    Exit
EndIf

$cmd = ' '

For $i = 1 To $FileList[0]
    $cmd &= '"' & $Targetdir & '\' & $FileList[$i] & '"'
    If $i <> $FileList[0] Then $cmd &= ' '
Next

;Run($Babylon & $cmd)
ShellExecute($Babylon & $cmd)
Link to comment
Share on other sites

With Babylon 9 this works:

#include <File.au3>
Opt('TrayIconDebug', 1)

AdlibRegister('_HowToUseWindow')
Local $Babylon = @ProgramFilesDir & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

$Targetdir = @ScriptDir
#include <File.au3>
$FileList = _FileListToArray($Targetdir, "*.BGL", 1)
If @error = 1 Then
    MsgBox(0, "", "No Files\Folders Found.")
    Exit
EndIf

For $i = 1 To $FileList[0]
    $Install = Run($Babylon & ' "' & $Targetdir & '\' & $FileList[$i] & '"')
    ToolTip(' ', @DesktopWidth / 2.5, @DesktopHeight / 2.5, 'Installing ' & $FileList[$i] & ' Package', 1)
    While ProcessExists($Install)
        WinWait('[TITLE:Babylon; CLASS:#32770]')
        ToolTip('')
        $hWnd = WinGetHandle('[TITLE:Babylon; CLASS:#32770]')
        While 1
            If Not WinExists($hWnd) Then ExitLoop 2
            Sleep(10)
        WEnd
        Sleep(10)
    WEnd
Next

Func _HowToUseWindow()
    If WinExists('[TITLE:How to use Babylon; CLASS:Bab_WebbWindow]') Then WinClose('[TITLE:How to use Babylon; CLASS:Bab_WebbWindow]')
EndFunc   ;==>_HowToUseWindow

This relies on the window that says that the language was installed successfully opening and closing. The closing of that window triggers the next element in the loop to install.

Link to comment
Share on other sites

Many TNX Varian,

Unfortunately, it doesn'help. the stcript stick at line 25.

WinWait('[TITLE:Babylon; CLASS:#32770]')

I'm sure that you've tested it working. You've installed Babylon 9 with Internet connection enabled, therefore you've automatically downloaded some dictionnaries and those dictionnaries were installed withh yr scrip.

Babylon installation is made during unatteded Windows 7 installation, then

1) Internet connexion is disabled

2) Babylon is installed and then the process (babylon.exe) is closed.

3) the dictionnaries installation is launched OFFLINE from my DVD

a) launch first .BGL dictionary with ShellExecute (Run tested, doesn't works),

b ) wait until is installed in C:\ProgramData\Babylon\Gloss\ as same dictionary name with .bdc extension.

c) close "window Download & Install Dictionaries" (image above in #5 post=

d) Lauch next .BGL dictionary.....

...

x) when all dictionaries were installed, close babylon.exe process

Here bellow my script tested working.

However it have to be improved, (repeat sequence; dic .BGL installed as .bdc extension; If file exists exit)

Regards

Opt('TrayIconDebug', 1)
$Babylon = @ProgramFilesDir  & "\Babylon\Babylon-Pro\Babylon.exe"
$path = "C:\ProgramData\Babylon\Gloss"
$title = "[TITLE:Download & Install Dictionaries; CLASS:#32770]"


; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf


;Repeat sequence
ShellExecute($Babylon, @ScriptDir & "\Babylon_English.BGL")
WinWait($title)
Do
   ;Check the .BGL dictionnary if already installed in $path folder. it will have .bdc as extension
   If FileExists($path & "\Babylon_English.bdc") Then
   EndIf
  Until FileExists($path & "\Babylon_English.bdc")
If WinExists($title) Then WinClose($title)


;Repeat sequence
ShellExecute($Babylon, @ScriptDir & "\Babylon_English_French.BGL")
WinWait($title)
Do
   ;Check the .BGL dictionnary if already installed in $path folder. it will have .bdc as extension
   If FileExists($path & "\Babylon_English_French.bdc") Then 
   EndIf
  Until FileExists($path & "\Babylon_English_French.bdc")
If WinExists($title) Then WinClose($title)


;Repeat sequence
ShellExecute($Babylon, @ScriptDir & "\Babylon_English_Hebrew.BGL")
WinWait($title)
Do
;Check the .BGL dictionnary if already installed in $path folder. it will have .bdc as extension
If FileExists($path & "\Babylon_English_Hebrew.bdc") Then 
   EndIf
  Until FileExists($path & "\Babylon_English_Hebrew.bdc")
If WinExists($title) Then WinClose($title)


;Repeat sequence
ShellExecute($Babylon, @ScriptDir & "\Babylon_French_English_diction.BGL")
WinWait($title)
Do
   ;Check the .BGL dictionnary if already installed in $path folder. it will have .bdc as extension
   If FileExists($path & "\Babylon_French_English_diction.bdc") Then 
       If @error = 1 Then
           Exit
       EndIf
    EndIf
  Until FileExists($path & "\Babylon_French_English_diction.bdc")
If WinExists($title) Then WinClose($title)


;Repeat sequence
;ShellExecute($Babylon, @ScriptDir & "\Babylon_Hebrew_English.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Babylon_Hebrew_Thesaurus.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Britannica_Concise_Encyclopedi.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Concise_Oxford_English_Diction.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Concise_Oxford_Thesaurus.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Cuisine_Glossary.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Dictionnaire_Du_Droit_Priv_.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Gali_s_Gastronomical_Glossary.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Glossaire_du_juda__sme.BGL")
;ShellExecute($Babylon, @ScriptDir & "\KS_Lexique_boursier_et_financi.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Mehrpooya_Assistant_de_Conjuga.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Merriam_Webster_Collegiate__Di.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Merriam_Webster_Collegiate__Th.BGL")
;ShellExecute($Babylon, @ScriptDir & "\psychometric.BGL")
;ShellExecute($Babylon, @ScriptDir & "\ynet_Encyclopedia.BGL")
;ShellExecute($Babylon, @ScriptDir & "\Milon_EvenSapir.BGL")

$pid="Babylon.exe"
ProcessWait($pid, 2)
For $i = 1 To 10 Step 1
    If ProcessExists($pid) Then
        ProcessClose($pid)
    Else
        Exit
    EndIf
Next

BabDico_forTest.rar

Edited by coucou
Link to comment
Share on other sites

I did not get this to work so well, but I don't have a license for Babylon. See what this does for you

#include <File.au3> ;Just for Testing Purposes

Opt('TrayIconDebug', 1)
Global $Babylon = @ProgramFilesDir & "\Babylon\Babylon-Pro\Babylon.exe"

; Exit if Babylon is not installed.
If Not FileExists($Babylon) Then
    MsgBox(0x40030, @ScriptName, $Babylon & "  is not exist", 3)
    Exit
EndIf

;Define Your Glossary Packages In An Array
Local $Lang_Pack[20]
$Lang_Pack[0] = "Babylon_English.BGL"
$Lang_Pack[1] = "Babylon_English_French.BGL"
$Lang_Pack[2] = "Babylon_English_Hebrew.BGL"
$Lang_Pack[3] = "Babylon_French_English_Diction.BGL"
$Lang_Pack[4] = "Babylon_Hebrew_English.BGL"
$Lang_Pack[5] = "Babylon_Hebrew_Thesaurus.BGL"
$Lang_Pack[6] = "Britannica_Concise_Encyclopedi.BGL"
$Lang_Pack[7] = "Concise_Oxford_English_Diction.BGL"
$Lang_Pack[8] = "Concise_Oxford_Thesaurus.BGL"
$Lang_Pack[9] = "Cuisine_Glossary.BGL"
$Lang_Pack[10] = "Dictionnaire_Du_Droit_Priv_.BGL"
$Lang_Pack[11] = "Gali_S_Gastronomical_Glossary.BGL"
$Lang_Pack[12] = "Glossaire_du_Juda__Sme.BGL"
$Lang_Pack[13] = "KS_Lexique_Boursier_Et_Financi.BGL"
$Lang_Pack[14] = "Mehrpooya_Assistant_De_Conjuga.BGL"
$Lang_Pack[15] = "Merriam_Webster_Collegiate__Di.BGL"
$Lang_Pack[16] = "Merriam_Webster_Collegiate__Th.BGL"
$Lang_Pack[17] = "psychometric.BGL"
$Lang_Pack[18] = "ynet_Encyclopedia.BGL"
$Lang_Pack[19] = "Milon_EvenSapir.BGL"

_FileCreate(@ScriptDir & "\Babylon Results.txt")    ;Just for Testing Purposes

;Call the Function To Install The Packages
For $Element In $Lang_Pack
    Local $Result = _Install($Element)
    _FileWriteLog(@ScriptDir & "\Babylon Results.txt", $Element & " Returned " & $Result)   ;Just for Testing Purposes
Next

$Process = "Babylon.exe"
ProcessWait($Process, 2)
While ProcessExists($Process)
    ProcessClose($Process)
    Sleep(100)
WEnd


Func _Install($Package)
Local $Path = EnvGet("ProgramData") & "\Babylon\Gloss"
Local $Title = "[TITLE:Download & Install Dictionaries; CLASS:#32770]"
Local $Glossary = StringRegExpReplace($Package, '[^\.]+$', '') & ".bdc"
Local $Process = "Babylon.exe"

If FileExists($Path & "\" & $Glossary) Then Return 1    ;Glossary already Installed, Return Success
If  Not FileExists(@ScriptDir & "\" & $Package) Then Return ;Cannot Find Glossary Install File, Return Fail

ShellExecute($Babylon, @ScriptDir & "\" & $Package)
ProcessWait($Process)
WinWait($Title)

Do
    Sleep(250);Slightly slower check for package installation
Until FileExists($Path & "\" & $Glossary)

If WinExists($Title) Then WinClose($Title)

Return 1    ;Return Success
EndFunc
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...