Drga'n'drop файлов из проводника

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение RaFaeL »

RaFaeL писал(а): Можно приделать костыль в виде добавления слэша и exists, в этом случае для каталога будет 1 а для файла 0, но мне кажется это как-то неаккуратн
Внезапно проблема с сетевыми путями!
Exists('\\server\dir\file.txt\') возвращает 1 хотя каталога такого нет (есть файл)!
Какие будут предложения?
Может есть апишная функция какая - получить атрибуты файла по пути? C примером!

P.S. А что за ограничение при поиске на форуме - не более 14 символов слово? А если название функции длиннее?
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение RaFaeL »

Разобрался

Код: Выделить всё

    GetFileAttributes(*LPCSTR),DWORD,PASCAL,RAW,NAME('GetFileAttributesA')

Код: Выделить всё

        LOC:Typ=GetFileAttributes(LOC:FileName)
        if band(LOC:Typ,FILE_ATTRIBUTE_DIRECTORY)
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drga'n'drop файлов из проводника

Сообщение kreator »

RaFaeL писал(а):Exists('\\server\dir\file.txt\') возвращает 1 хотя каталога такого нет (есть файл)!
Скорее всего, exists тупо реагирует на последний слэш, у него же нет параметра файл/каталог. Откуда взялся последний слэш?
We are hard at work… for you. :)
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1411
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 12 раз
Поблагодарили: 2 раза
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение RaFaeL »

Если путь локальный, то exists('C:\pagefile.sys\') вернет 0 а exists('C:\Windows\') вернет 1, т.е. таким способом (добавлением слэша) я проверял, что мне передали - файл или каталог. Но не прокатил костыль, с сетевыми путями не работает как надо exists, пришлось сделать по уму
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Drga'n'drop файлов из проводника

Сообщение mike_ch »

После перехода с С8 на С10 поломался механизм drop'a файлов из проводника. И самое интересное... все работало пока в новой оконной процедуре не поставил в дизайнере свойств DropID ~FILE. Как поставил поломался механизм по всему проекту. Сломал мозг.
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drga'n'drop файлов из проводника

Сообщение kreator »

mike_ch, а есть подробности проблемы? У меня, например, работает. С10.12349. Механизм по всему проекту - это как? Во фрейме идёт обработка?
We are hard at work… for you. :)
mike_ch
Бывалый
Сообщения: 62
Зарегистрирован: 11 Июль 2007, 14:21
Откуда: Беларусь, Минск

Drga'n'drop файлов из проводника

Сообщение mike_ch »

kreator писал(а):mike_ch, а есть подробности проблемы? У меня, например, работает. С10.12349. Механизм по всему проекту - это как? Во фрейме идёт обработка?
По всему проекту - это значит перестало работать во всех оконных процедурах, где это использовалось. Причем есть у меня окошко без sheet'ов и tab'ов, просто на окно файлы перетягивал. Все. Не работает. Как будто случайно зацепил какой-то выключатель и выключил :) Я не знаю даже о каких подробностях написать. Потому как все было очень просто - dropid('~file') и все работало. Win10 + Cla10 build 12104.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение Дед Пахом »

Вообще-то Drag'n'Drop операция, требующая особых привилегий, может надо запустить программу с правами администратора?
С уважением, ДП
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Drga'n'drop файлов из проводника

Сообщение gopstop2007 »

RaFaeL писал(а):
RaFaeL писал(а): Можно приделать костыль в виде добавления слэша и exists, в этом случае для каталога будет 1 а для файла 0, но мне кажется это как-то неаккуратн
Внезапно проблема с сетевыми путями!
Exists('\\server\dir\file.txt\') возвращает 1 хотя каталога такого нет (есть файл)!
Какие будут предложения?
а так попробовать 'cd \\server\dir\' , а потом Exists('\\server\dir\file.txt')
Дед Пахом писал(а):Вообще-то Drag'n'Drop операция, требующая особых привилегий, может надо запустить программу с правами администратора?
там не просто привилегии, а привилегии должны быть одинаковыми в проводнике и у вашей программы :cat:
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drga'n'drop файлов из проводника

Сообщение kreator »

Народ, не усложняйте. Какие ещё привилегии?
mike_ch, приведи всё-таки свой текст, потому что "dropid('~file')" полная хрень, ИМХО.
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение Дед Пахом »

kreator писал(а): Народ, не усложняйте. Какие ещё привилегии?
mike_ch, приведи всё-таки свой текст, потому что "dropid('~file')" полная хрень, ИМХО.
вот тут, например: http://stackoverflow.com/questions/8239 ... g-and-drop
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drga'n'drop файлов из проводника

Сообщение kreator »

Проблемы с UAC'ом, наверно, должен решать манифест. Кажется, это одна из его функций. Вот это - "dropid('~file')" - разве правильно?
We are hard at work… for you. :)
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3288
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Drga'n'drop файлов из проводника

Сообщение Дед Пахом »

Хелп на DROPID упоминает 2 сигнатуры: ~FILE и ~TEXT.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 5159
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 11 раз
Поблагодарили: 26 раз

Drga'n'drop файлов из проводника

Сообщение kreator »

Дед Пахом писал(а):Хелп на DROPID упоминает 2 сигнатуры: ~FILE и ~TEXT.
Всё правильно, но надо посмотреть текст. Маленькие/большие буквы в этих сигнатурах имеют значение? Как обрабатывается EVENT:Drop? У меня всё работает, дело не в Клаше.
We are hard at work… for you. :)
gopstop2007
Полимат
Сообщения: 1810
Зарегистрирован: 25 Март 2009, 21:55
Благодарил (а): 24 раза
Поблагодарили: 10 раз

Drga'n'drop файлов из проводника

Сообщение gopstop2007 »

kreator писал(а):У меня всё работает, дело не в Клаше.
у меня в разных виндовс поведение одного и того же app разное, вернее в windows XP, 7 работает без проблем. Но в windows 8 - чудеса, пляски с бубном, по 10 статистики нет, Clarion 10.12104 ABC
“Есть всего 2 типа языков: те, на которые все жалуются и те, которыми никто не пользуется.” — Бьерн Страуструп
Ответить