Как можно проверить, запущена программа с локального диска или с сетевого окружения, то есть с сети
Издевательство над сис.админом: "Заходи, гостем будешь..."
var
DriveType: TDriveType;
DriveChar: string;
begin
DriveChar:=ExtractFileDrive(ParamStr(0));
DriveType:=TDriveType(GetDriveType(PChar(DriveChar + '\')));
case driveType of
dtFixed: ShowMessage('Fixed ' + DriveChar + '\');
dtNetWork: ShowMessage('NetWork ' + DriveChar + '\');
end;
end;
Программа на Delphi для определения является ли указанный диск локальным фиксированным или сетевым. Вот разбивка кода:
Переменная DriveChar присваивается результатом функции ExtractFileDrive(ParamStr(0)), которая извлекает букву диска из первого параметра командной строки.
Переменная DriveType устанавливается результатом функции GetDriveType(PChar(DriveChar + '\')), которая получает тип диска (например, dtFixed, dtNetwork и т.д.) для указанного диска.
Затем case-заявление использует это значение DriveType для отображения сообщения о том, является ли диск фиксированным или сетевым.
Для тестирования программы можно запустить ее из командной строки или терминала и указать букву диска в качестве аргумента. Например:
Если вы хотите проверить, является ли программа запущенной на локальном диске или из сетевого окружения (то есть не с локального диска), можно изменить case-заявление следующим образом:
case DriveType of
dtFixed: ShowMessage('Running locally');
else: ShowMessage('Running from network environment');
end;
Таким образом, если программа запущена на локальном диске, она отобразит "Running locally", а иначе - "Running from network environment".
В статье описано, как с помощью программы на языке Delphi можно проверить, запущена ли программа с локального диска или с сетевого окружения.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS