FreeBasic
Главная
Вход
Регистрация
Четверг, 23.11.2017, 14:01Приветствую Вас Гость | RSS
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум » WinAPI » WinApi в freebasic » ShellExecute c Unocode
ShellExecute c Unocode
WQДата: Понедельник, 30.05.2016, 16:31 | Сообщение # 1
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 5
Статус: Offline
Нужно открыть файл справки .chm, в пути у которого могут быть символы Unicoda
Пытаюсь с помощью ShellExecute 

Код
ShellExecute(0,Cast(LPCTSTR,StrPtr(flags)) , Cast(LPCTSTR,StrPtr(Filename)),VarPtr(wss),VarPtr(wss1), ShowCmd)

Где wss и wss1 - пути до файла и до папки в виде Wstring

Не получается.

В IUP, с которой я работаю, есть специальная функция для запуска файлов, недавно добавленная, IupExecute - но при том, что IUP полностью поддерживает UTF, эта функция не воспринимает UTF
 
haavДата: Вторник, 31.05.2016, 07:45 | Сообщение # 2
Генерал-лейтенант
Группа: Администраторы
Сообщений: 795
Репутация: 34
Статус: Offline
Все нормально работает:

Код
#define Unicode
#Include "windows.bi"
#include once "win/shellapi.bi"
dim as wstring*20 prog = "notepad.exe" ' программа, в которой будет открыт файл 本文作者.txt
dim as wstring*10 wss = "本文作者.txt" ' открываемый файл
dim as wstring*10 wss1 = "本文作者/" ' относительный путь до файла 本文作者.txt
ShellExecute(0,@"open" , @prog,@wss,@wss1, SW_SHOWNORMAL)


Я сохранял файл в UTF-16LE и в UTF8.


Вы сохраняете власть над людьми покуда оставляете им что-то…Отберите у человека все, и этот человек уже будет неподвластен вам…
 
WQДата: Вторник, 31.05.2016, 11:27 | Сообщение # 3
Подполковник
Группа: Пользователи
Сообщений: 139
Репутация: 5
Статус: Offline
haav
Спасибо!
Да, с notepad работает
А hh.exe, которое открывает .chm, оказывается, не воспринимает пути с наличием юникода, т.е. даже из эксплорера по двойному клику мыши.
Пишет "Не удалось открыть файл"
Так что проблема не у меня, а в стороннем приложении. Оставлю как есть.
 
Форум » WinAPI » WinApi в freebasic » ShellExecute c Unocode
Страница 1 из 11
Поиск: