IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

 
 Ответить  Открыть новую тему 
> Получение имени и иконки съемного драйва..
сообщение
Сообщение #1


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


..и установка последней в качестве иконки своей программе (есть буква флешки или другого съемного носителя). Имя так получаю:

function getdname(d:string):string; //d-буква диска формата F:\
var
VolumeName,FileSystemName : array [0..MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength,FileSystemFlags : longword;
begin
result:='';
if GetVolumeInformation(PChar(D),VolumeName,MAX_PATH,@VolumeSerialNo,
MaxComponentLength,FileSystemFlags,FileSystemName,MAX_PATH) then result:=VolumeName;
end;


, но этот код меня смущает, прототип функции GetVolumeInformation другой в плане типов входных параметров, там LPSTR всякие..
А проверяю, подключился ли новый флеш,так:

function getnewdrive:string;
var i:char;
begin
result:='';
for i:='A' to 'Z' do
if Getdrivetype(pchar(i+':\'))=DRIVE_REMOVABLE then begin
if not(i in drives) then begin
result:=i+':\';
break;
end;
end;
end;


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
А проверяю, подключился ли новый флеш,так:
В MSDN есть пример определения подключения/отсоединения устройств: Detecting Media Insertion or Removal

Или у тебя опять безоконное приложение?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


У меня оттуда и работает пример, только на делфи, событие подключения отлавливается. То есть, при запуске проги я записываю в множество drives буквы флешек, воткнутых в данный момент, и при срабатывании события подключения новой - ищу, какая буква ей присвоилась.. меня интересует правильность процедуры, которая имя получает.

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Цитата
У меня оттуда и работает пример
и
Цитата
при запуске проги я записываю в множество drives буквы флешек, воткнутых в данный момент, и при срабатывании события подключения новой - ищу, какая буква ей присвоилась
- это взаимоисключающие утверждения. Вся прелесть WM_DEVICECHANGE + DBT_DEVICEARRIVAL - в том, что тебе не надо искать, какая буква добавилась, тебе об этом сообщают одним из параметров, достаточно набор бит перевести в букву... Ну, хочешь так - делай так... Мне-то что...

С getdname проблем не видно. Ну, разве что (все равно ты не используешь предпоследний параметр, название ФС) сделать так:
function getdname(D : string) : string;
var
VolumeName : array [0 .. MAX_PATH-1] of Char;
VolumeSerialNo : DWord;
MaxComponentLength, FileSystemFlags : LongWord;
begin
result := '';
if GetVolumeInformation(PChar(D), VolumeName, MAX_PATH,
@VolumeSerialNo, MaxComponentLength, FileSystemFlags, nil, 0) then
result := VolumeName;
end;
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Цитата
достаточно набор бит перевести в букву

Ага, я это знал, просто не сообразил как перевести) Нашёл рабочий, в общем.
Ещё можно вопрос не по теме, где найти ключи в реестре, отвечающие за свойства папок? Хотя бы "скрывать\показывать расширения зарегистрированных...", весь гугл перерыл..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 013
Пол: Мужской
Ада: Разработчик
Embarcadero Delphi: Сторонник
Free Pascal: Разработчик

Репутация: -  627  +


Вот тут, насколько я понимаю (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced):

Сообщение отредактировано: IUnknown -


Эскизы прикрепленных изображений
Прикрепленное изображение
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

Репутация: -  24  +


Спасибо, все настройки там) А в сети какие-то страшные ветки..


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 23.12.2024 21:38
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name