|
Вопрос # 5 029/ вопрос открыт / |
|
Приветствую, уважаемые эксперты!
Как определить из списка устройств какое к какой категории относится? То есть как узнать все жестние диски, съемные диски, сетевые диски?
 |
Вопрос задал: Roman Novikov (статус: Посетитель)
Вопрос отправлен: 18 февраля 2011, 23:20
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: VKHacker
Здравствуйте, Roman Novikov!
Возможно мой пример вам поможет.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TDWDriveShellInfo = packed record
Icon : hIcon;
Image : integer;
DisplayName,
TypeName : string
end;
TForm1 = class(TForm)
btn1: TButton;
procedure btn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ShellApi;
{$R *.dfm}
function GetDriveShellInfo(const Drive: Char): TDWDriveShellInfo;
var
SHFileInfo : TSHFileInfo;
begin
ShGetFileInfo (PChar(Drive + ':\'),
0,
SHFileInfo,
SizeOf (TSHFileInfo),
SHGFI_TYPENAME or
SHGFI_DISPLAYNAME or
SHGFI_SYSICONINDEX or
SHGFI_ICON);
with result do
begin
Icon := SHFileInfo.hIcon;
Image := SHFileInfo.iIcon;
DisplayName := SHFileInfo.szDisplayName;
TypeName := SHFileInfo.szTypeName
end
end;
procedure TForm1.btn1Click(Sender: TObject);
var ch: Char;
begin
for ch := 'A' to 'Z' do
ShowMessage(Format('Drive: %s, Type: %s', [Ch, GetDriveShellInfo(ch).TypeName]))
end;
end.
 |
Ответ отправил: VKHacker (статус: 1-ый класс)
Время отправки: 19 февраля 2011, 00:17
Оценка за ответ: 5
Комментарий к оценке: Интересный вариант
|
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 19 февраля 2011, 13:58; участников в обсуждении: 3.
|
bugmenot (статус: 3-ий класс), 19 февраля 2011, 11:27 [#1]:
хм, а зачем из одной структуры в другую поля гонять? и почему packed?
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
min@y™ (статус: Доктор наук), 19 февраля 2011, 11:29 [#2]:
Судя по вопросу, достаточно функции GetDriveType().
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
|
|
bugmenot (статус: 3-ий класс), 19 февраля 2011, 12:49 [#3]:
Конечно достаточно, но топикстартер задолжал мне очков за ODS поэтому не консультирую
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
Roman Novikov (статус: Посетитель), 19 февраля 2011, 13:58 [#4]:
bugmenot: Конечно достаточно, но топикстартер задолжал мне очков за ODS поэтому не консультирую.
В смысле?
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|