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

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

07.05.2024, 22:30. Показов 603. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Ниже машинный перевод статьи The Thinkpad X220 Tablet is the best budget school laptop period . Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы,. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru