1 (изменено: Gh0sTG0, 2020-06-04 17:41:20)

Тема: AHK: Как сделать FileMoveDir, но через винду?

Добрый день.
Собственно, FileMoveDir делает все в себе по изначальным настройкам. Поиспользовав его понял, что надо бы через винду/еще чего делать.
Чтобы был диалог совпадающих файлов и.т.п.
Т.е., сейчас: FileMoveDir -> все сделал сам как там после запятой в коде поставлено. Если поставлено заменять - заменил, и.т.п.
Хочется: сделать какой нибудь WinStandartMove -> в фоне (желательно) либо прямо сверху появляется стандартная копировалкоперемещалка винды. Которая при совпадении выдает полноценный диалог со сравнением, и.т.п. Ну, и, хотелось бы чтобы скрипт как то смог подождать завершения копирования и по результатам уже дальше работал.
Возможно ли это как нибудь?

2

Re: AHK: Как сделать FileMoveDir, но через винду?

Попробуйте так:

CopyMoveFile(sourcePath, destPath, CopyMove := "Copy") {
   SplitPath, destPath,, destDir
   if InStr( FileExist(destPath), "D" )
      destPath := (destDir := destPath) . "\" . sourceFileName
   ComObjCreate("Shell.Application").Namespace(destDir)[CopyMove . "Here"](sourcePath)
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: Как сделать FileMoveDir, но через винду?

teadrinker пишет:

Попробуйте так:

CopyMoveFile(sourcePath, destPath, CopyMove := "Copy") {
   SplitPath, destPath,, destDir
   if InStr( FileExist(destPath), "D" )
      destPath := (destDir := destPath) . "\" . sourceFileName
   ComObjCreate("Shell.Application").Namespace(destDir)[CopyMove . "Here"](sourcePath)
}

Работает... Хмм... Удалил If, мне он тут не нужен и довольно сильно сбил с толку. Меня вполне устроит диалог замены стандартный винды, да.
Спасибо за помощь.

4

Re: AHK: Как сделать FileMoveDir, но через винду?

Здесь это нужно для того, чтобы можно было в качестве destPath указывать папку.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5 (изменено: Gh0sTG0, 2020-06-04 19:32:42)

Re: AHK: Как сделать FileMoveDir, но через винду?

teadrinker пишет:

Здесь это нужно для того, чтобы можно было в качестве destPath указывать папку.

А вот это не понял. Из этого ифа вижу, что "если такая папка уже существует, переместить папку не куда надо, а создать папку в папке и в нее уже запихать файлы...
PS без ифа все работает как надо - если есть файлы совпадающие, винда выдает диалог что делать.

6

Re: AHK: Как сделать FileMoveDir, но через винду?

Не, там какая-то чушь написана, не проверил. Лучше так:

CopyMoveFile(sourcePath, destDir, CopyMove := "Copy") {
   ComObjCreate("Shell.Application").Namespace(destDir)[CopyMove . "Here"](sourcePath)
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

7 (изменено: Gh0sTG0, 2020-06-04 20:57:58)

Re: AHK: Как сделать FileMoveDir, но через винду?

teadrinker
Еще раз спасибо