Что нового

Программа которая копирует выбранные файлы в дерикторию

SP1K3

Новичок
Сообщения
8
Репутация
0
Написал программу для некоторой игры, смысл которой заклюался в том, что она будет проверять наличие конкретных файлов в папке и при их удалении копировать из сторонней папки.
и вроде бы всё получилось.
Код:
;FileDelete(@AppDataDir & "\.exclient\rpg\mods\Inventory-Tweaks.jar")
;FileDelete(@AppDataDir & "\.exclient\rpg\mods\XRay-Mod-All-Versions.jar")

FileCopy(@AppDataDir & "\excalibur-cheats\Inventory-Tweaks.jar", @AppDataDir & "\.exclient\rpg\mods")
FileCopy(@AppDataDir & "\excalibur-cheats\XRay-Mod-All-Versions.jar", @AppDataDir & "\.exclient\rpg\mods")

run(@AppDataDir & "\excalibur-cheats\Excalibur.exe")

Sleep (2000)

While 1
If FileExists(@AppDataDir & "\.exclient\rpg\mods\Inventory-Tweaks.jar") then
   FileExists(@AppDataDir & "\.exclient\rpg\mods\XRay-Mod-All-Versions.jar")
Else
   Sleep (4000)
   FileCopy(@AppDataDir & "\excalibur-cheats\Inventory-Tweaks.jar", @AppDataDir & "\.exclient\rpg\mods")
   FileCopy(@AppDataDir & "\excalibur-cheats\XRay-Mod-All-Versions.jar", @AppDataDir & "\.exclient\rpg\mods")
   msgbox(0,"","Читы успешно запущены")
   exit
EndIf
WEnd


Filedelete при этом не обязателен. (просто для стабильности)
Далее мне потребовалась возможность копировать любые файлы, а не конкретно XRay-Mod-All-Versions.jar и Inventory-Tweaks.jar
я попытался сделать это с помощью FileOpenDialog

Код:
$message = "Выберите оидн или несколько модов"

$var = FileOpenDialog($message, @AppDataDir & "\excalibur-cheats", "jar (*.jar)", 1 + 4)

If @error Then
   exit
Else
    $var = StringReplace($var, "|", @CRLF)
	MsgBox(4096, "", "" & $var)
 EndIf

FileCopy($var, @AppDataDir & "\.exclient\rpg\mods")

run(@AppDataDir & "\excalibur-cheats\Excalibur.exe")

Sleep (2000)

While 1
If FileExists(@AppDataDir & "\.exclient\rpg\mods\" & $var) then
   sleep(1)
Else
   Sleep (4000)
   FileCopy($var, @AppDataDir & "\.exclient\rpg\mods")
   msgbox(0,"","Читы успешно запущены")
   exit
EndIf
WEnd

ну я думаю вы понимаете в чем проблема: $var - это путь к файлу который нужно скопировать, а как тогда связать это с If FileExists(@AppDataDir & "\.exclient\rpg\mods\" ??
если вы не поняли, о чем я, то проще говоря мне нужна программа, которая будет при запуске спрашивать файлы, которые в последующем будет копировать в папку игры, далее циклично проверять их наличие, после того как они удаляться скопирует их еще раз туда.
Надеюсь вы мне поможете.
ps^ знаю что нафиговертил в коде,но я новичок, наверное мне простительно :whistle:
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Название файлов, их количество и пути к ним (откуда и куда копировать) может меняться ? И с каким периодом нужно проверять папку на наличие файлов ?
 
Автор
S

SP1K3

Новичок
Сообщения
8
Репутация
0
ra4o сказал(а):
Название файлов, их количество и пути к ним (откуда и куда копировать) может меняться ? И с каким периодом нужно проверять папку на наличие файлов ?
кол-во файлов может меняться, путь к ним всегда будет лежать в папке "@AppDataDir & "\excalibur-cheats\"
а место в которое они будут копироваться всегда будет "@AppDataDir & "\.exclient\rpg\mods\"
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Можно так :
Код:
HotKeySet('{ESC}','_Exit')

Global $sSoursePath = @AppDataDir & "\excalibur-cheats\"
Global $sDestPath = @AppDataDir & "\.exclient\rpg\mods\"
Global $sFilter = "jar (*.jar)"
Dim $aArray[0]

$i=0

While Not @error ; Цикл сохранения пути к выбранным файлам

  $i+=1
  Redim $aArray[$i]
  $aArray[$i-1] = FileOpenDialog('Выберите файлы',$sSoursePath,$sFilter)

WEnd


While 1 ; Бесконечный цикл копирования выбранных файлов

    For $i = 0 to Ubound($aArray)-2

	   If not FileExists($sDestPath&StringRegExpReplace($aArray[$i], '^.*\\', '')) Then FileCopy( $aArray[$i],$sDestPath)

    Next

 Sleep(100)

Wend


Func _Exit()
	Exit
EndFunc

При запуске скрипта выбираете те файлы , которые нужно копировать ( их может быть сколько угодно) после последнего просто закрываете окно выбора и всё... скрипт будет копировать эти файлы в выбранную Вами папку, пока Вы его не закроете.
 
Автор
S

SP1K3

Новичок
Сообщения
8
Репутация
0
ra4o, спасибо но я уже решил проблему иным путем :D
 
Верх