Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769

Как получить юникодные имена файлов в событии OLEDragDrop?

07.05.2024, 22:30. Показов 624. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем привет! Может кто-нибудь знает как в событии перетаскивания, любого элемента управления пользователя, получить юникодные имена файлов? Вот пример, который я нашёл на форуме для осуществления отлова события перетаскивания файлов мышкой в программу:

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
Option Explicit
Private Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxW" (ByVal hwnd As Long, ByVal lpText As Long, ByVal lpCaption As Long, ByVal uType As Long) As Long
 
Private Sub Form_Load()
    Picture1.OLEDropMode = 1
End Sub
 
Private Sub Picture1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integer, Shift As Integer, X As Single, Y As Single)
    Dim vFile As Variant
    Dim FileName As String
    
    On Error GoTo err_handler
    
    For Each vFile In Data.Files
        FileName = vFile
        
        ' Здесь должно было бы выводиться имя файла с поддержкой юникода
        MessageBox hwnd, StrPtr(FileName), StrPtr(App.EXEName), ByVal 0&
    Next
    
err_handler:
End Sub
Я этот код нашёл на форуме, The Trick писал этот код, я его немного переделал, но получить юникодные имена файлов так и не получилось. Я использую юникодный контрол ListBoxW от Krool и тоже самое, тоже юникод не хочет поддерживать. Как же это осуществить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.05.2024, 22:30
Ответы с готовыми решениями:

Как получить рандомные имена файлов?
Есть имена файлов: game-Black-Star2dx-l2-1-0.dll game-Black-Star1dx-l1-1-0.dll Заношу список в string Vata = new string { имена...

Как получить имена Dll файлов из таблицы импорта
Добрый день. Нужно получить имена Dll файлов из таблицы импорта и при этом иметь возможность заблокировать запуск приложение....

Как получить имена всех json файлов из папки?
Мне нужно в List<string> получить все имена файлов с расширением .json из определённой папки . Как это можно сдлеать?

4
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
08.05.2024, 17:26  [ТС]
Krool мне ответил, что ни один из его юникодных контролов не поддерживает имена файлов в юникоде в OLEDragDrop. Собирается ли он это как-то исправить или нет - ничего толком не ответил.
0
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
08.05.2024, 18:24  [ТС]
Итак, хоть я так и не понял как это осуществить в событии OLEDragDrop (наверное никак) я всё же нашёл способ как это осуществить вообще, используя немного другую технологию, используя новый современный интерфейс перетаскивания. На иностранном форуме fafalone дал мне ссылку на свой проект перетаскивания, однако у него был существенный глюк - не работало перетаскивание из Total Commander и я попросил его исправить это. Он откликнулся на мою просьбу и исправил этот глюк. Теперь перетаскивание работает даже из Total Commander, а так же работает и в XP что меня немало удивило тоже.
Миниатюры
Как получить юникодные имена файлов в событии OLEDragDrop?  
Вложения
Тип файла: zip DropTarget_v4.zip (474.8 Кб, 11 просмотров)
2
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.05.2024, 18:10  [ТС]
Однако этот код от fafalone имел ещё и другие несовершенства: не работала совместимость с LabelW контролом от Krool. Пришлось мне просить fafalone и самого Krool разобраться почему не работает перетаскивание, в то время когда на форме натянут LabelW. Они вдвоём несколько дней искали эту ошибку, в итоге фафалон исправил. Теперь работает и вместе с LabelW. Новая версия!
Миниатюры
Как получить юникодные имена файлов в событии OLEDragDrop?  
Вложения
Тип файла: zip LabelW and DropTarget_v4 (3).zip (553.9 Кб, 11 просмотров)
1
Испарился
 Аватар для HackerVlad
1741 / 637 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
14.05.2024, 18:13  [ТС]
Так же сам Krool презентовал, что его новые юникодные контролы, теперь будут поддерживать новое свойство AllowDropFiles и событие DropFiles для обеспечения перетаскивания файлов в юникоде. Но по сути меня и так вполне устраивает этот класс от fafalone.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2024, 18:13
Помогаю со студенческими работами здесь

как получить имена файлов, скопированных в буфер обмена
И снова драсти =) код вроде бы работает только когда выделить и копировать файлы мышкой а выделить и копировать всё через ctrl+a ctrl+c...

Как получить имена xml файлов используя рекурсию
Здравствуйте. На диске есть несколько xml файлов с различными именами. s1.xml s1-1.xml s1-1-1.xml s1-1-2.xml s1-1-3.xml ...

Как получить имена всех файлов и папок в некоторой директории?
Нужно срочно, я свое гуи пишу на GraphABC. Работает без лагов. Так вот имена всех файлов и папок нужно для того, чтобы написать процедуры...

Как получить имя папки? Как узнать имена файлов, которые в ней есть?
Добрый вечер. Такой вопрос. Как получить имя папки? Как узнать имена файлов,которые в ней есть, и использовать эти файлы в последствии....

Как получить в скрипт имена всех файлов из некоторой директории на сервере?
Как получить в скрипт имена всех файлов из некоторой директории на сервере?(проблема доступа не важна)


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru