Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
07.05.2009, 13:00
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Делаю очередную экспортилку_таблиц\зажималку\отправлялку. Файлы надо на сетевой диск класть, который сам подключается при соединении с корпоративным VPN Чего может быть проще, да прямо на него архивировать можно, можно архивировать а потом копировать, различными способами. Но учитывая тухлость каналов удалённых сотрудников, хотелось бы их каким нибудь прогресс баром обнадёжить :-) Поскольку жму я 7z а он возвращает % выполнения, наверное это можно как то захапать и отобразить, я ещё не знаю как конкретно, НО! Тут пришла в голову ТАКАЯ идея, а почему бы не использовать тот же виндючный метод копирования, который повсеместно пользуется в explorer. Тут и готовый прогрес бар, и умные сообщения об ошибках, уже привычные пользователям! Как вам идея? Может кто-то уже пробовал? Как лучше её реализовать? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.05.2009, 13:09
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
Используйте для копирования API функцию SHFileOperation. Она рисует летающие листочки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.05.2009, 16:09
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
07.05.2009, 17:53
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Анатолий ( Киев )Используйте для копирования API функцию SHFileOperation. Она рисует летающие листочки. Дякую, особенно порадовала возможность FOF_SIMPLEPROGRESS = &H100 ' means don't show names of files и ещё при этом .lpszProgressTitle = "своё название этому чудному процессу дать" И у меня оно даже несколько раз получилось, но потом... То акссес банально виснет, то отображается как обычная операция с файлами... От чего зависят эти глюки ума не приложу :-( ПоHELPайте братовi ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2009, 11:32
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
castingFOF_SIMPLEPROGRESS = &H100 ' means don't show names of files и ещё при этом .lpszProgressTitle = "своё название этому чудному процессу дать" И у меня оно даже несколько раз получилось, но потом... То акссес банально виснет, то отображается как обычная операция с файлами... От чего зависят эти глюки ума не приложу :-( При переходе с Win98 на Win2000 мне пришлось отказаться от FOF_SIMPLEPROGRESS, т.к. это приводило к ошибке (не знаю, почему). Также при удалении файлов пришлось отказаться от FOF_NOERRORUI и FOF_NOCONFIRMATION. Ей, видите ли, обязательно надо спросить подтверждение удаления. В Win98 всё это работало. А диалог может и не появляться, если расчетное время на копирование (по мнению системы) невелико и вопросов к пользователю нет. Например, у меня при копировании файла 15Mb в соседнюю папку прогресс появляется, а при 7Mb - нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2009, 13:31
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Оно и XP работает, вылетает сам аксес... У меня есть жуткое подозрение, что это всё из-за того, что в результате vbaшных перипетий с типами данных, где-то в память пишется что то, избыточного размера, и на что-то наезжает... Ибо работает через раз, и зависит от того как именно присваиваются параметры... А какие могут быть альтернативы? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2009, 13:44
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
castingИбо работает через раз, и зависит от того как именно присваиваются параметры... Что-то вы не так делаете. У меня всё это работает исправно (с учетом сказанного выше) начиная с А97 под Win98. Покажите код. Как присваиваются параметы когда работает, и когда - нет? К имени (маске) файла добавляете в конце два Chr(0)? castingА какие могут быть альтернативы? Альтеннативу вам предложил Ёжик. Могу добавить, что вторым аргументом может быть комбинация флагов, тех же, что и у функции. Собственно, это и есть оболочка над функцией (один из вариантов ее применения). Этот вариант пробовали? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2009, 15:16
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Вот так, вроде работает стабильно НО не фига не FOF_SIMPLEPROGRESS And FOF_NOCONFIRMATION Константы и тип, вот такие... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
08.05.2009, 15:29
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
.fFlags = (FOF_SIMPLEPROGRESS Or FOF_NOCONFIRMATION) Но FOF_SIMPLEPROGRESS и у меня не работает. Если у вас получится - сообщите. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.05.2009, 13:20
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Самое смешное, что тот раз когда у меня исправно работали FOF_SIMPLEPROGRESS и FOF_NOCONFIRMATION было прописано именно FOF_SIMPLEPROGRESS And FOF_NOCONFIRMATION И я даже в целях отладки поменял их на FOF_CONFIRMMOUSE, а вот когда захотел вернуть всё в зад, пошли проблемы... .fFlags = FOF_SIMPLEPROGRESS And FOF_NOCONFIRMATION - Аксес стал вылетать с ошибкой, хотя раньше так всё работало. .fFlags = (FOF_SIMPLEPROGRESS And FOF_NOCONFIRMATION) - а так он вылетает лишь изредка, но выглядит как FOF_CONFIRMMOUSE Ваш вариант, вылетает что со скобками, что без скобок, хотя в теории не должно быть никакой разницы. И последнее наблюдение, самое занятное. В целях отладки я люблю выводить всякие msgbox-ы, было их по натыкано и в этот раз. Когда я достигнув некого относительно стабильного результата, убрал их, начался полный 3.14здец, аксес вылетал или вис, шаманства со скобками не помогали. Ради интереса, вернул отладочные месагбоксы, оказалось что они определённо влияют на стабильность, причём не только те что перед вызовом, но и те что после!!! Так или иначе, сроки поджимают, раздал людям приложение со своими костылями. И о чудо, у некоторых то FOF_SIMPLEPROGRESS And FOF_NOCONFIRMATION работают именно так как и должны... Но если аксес всё таки глюкнёт, то после восстановления оно выглядит и ведёт себя как FOF_CONFIRMMOUSE!!! В общем, есть подозрение что это дело происходит из-за какого то гавнизма VBA в аксессе. Во время тестирования я заметил, что когда идёт операция с файлами, аксес подтормаживает, и когда возникает ошибка копирования, управление не всегда возвращается аксесу, возможно в этом и кроется причина зависания... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.05.2009, 13:12
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Уря! Решение, почти найдено! Лично мне нехватало лишь FOF_FILESONLY и всё заработало, лишь иногда аксес перезапускается, но на столько иногда, что вы этого можете даже не увидеть!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.05.2020, 05:18
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Подскажите, а у этой темы есть решение чтобы получить диалог копирования в Вин10, но чтобы пользователь не видел хотя бы папки куда копируется? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
28.05.2020, 15:45
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
gesper есть решение чтобы получить диалог копирования в Вин10? gesper но чтобы пользователь не видел хотя бы папки куда копируется? А что мешает вам создать свой прогресс на форме? По-минимуму - имя копируемого файла и какой по счету из скольки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
30.05.2020, 02:05
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
Какой по счету это все фигня. А вот когда возможна передача нескольких гигабайт, то тогда все становится очень печально без процесс передачи. Под Win10 через Shell работает, только при этому отображается какой файл и КУДА копируется. Т.е. Безопасно, не передать файл. Пользователь увидит живую ссылку и нажав по ней попадет в хранилище файлов. А это катастрофа. Нашел еще одно решение, и при помощи своей формы делает как раз иллюстрацию, но не говорит куда. Copy-Large-File-by-Chunk-with-Progress-Notification Буду тестировать его, к диалогу Windows если что вернусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.05.2020, 16:51
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
gesper Нашел еще одно решение, и при помощи своей формы делает как раз иллюстрацию, но не говорит куда. Copy-Large-File-by-Chunk-with-Progress-Notification Буду тестировать его, к диалогу Windows если что вернусь. Проверил. Как и думал - работает хорошо, но только с объемами до 2ГБ. В принципе этого достаточно, на файлы больше вешать табу буду, чтобы разбивали на отдельные файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 20:27
|
|||
---|---|---|---|
|
|||
Диалог копирования Windows |
|||
#18+
gesper gesper Нашел еще одно решение, и при помощи своей формы делает как раз иллюстрацию, но не говорит куда. Copy-Large-File-by-Chunk-with-Progress-Notification Буду тестировать его, к диалогу Windows если что вернусь. Проверил. Как и думал - работает хорошо, но только с объемами до 2ГБ. В принципе этого достаточно, на файлы больше вешать табу буду, чтобы разбивали на отдельные файлы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.06.2020, 23:12
|
|||
---|---|---|---|
Диалог копирования Windows |
|||
#18+
ЦЦа gesper пропущено... Проверил. Как и думал - работает хорошо, но только с объемами до 2ГБ. В принципе этого достаточно, на файлы больше вешать табу буду, чтобы разбивали на отдельные файлы. А не знаю. У ОС десять тысяч апишных функций которые делают одно и тоже, и фиг поймешь зачем столько. Про запас буду иметь ввиду. Пока Имеющийся вариант пригоден. Ограничение немного даже полезно. Но спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=45&mobile=1&tid=1610083]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 125ms |
0 / 0 |