Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / WinForms, .Net Framework Новый топик    Ответить
 Вызвать стандартный диалог форматирования диска  [new]
гомодиализ
Member

Откуда: отовсюду
Сообщений: 48
Пытался гуглить, но не знаю, какие термины использовать. Что ни ввожу, получается или форматирование строк, или чего-то ещё постороннего.
Нужно из WinForms программы на 4.7.2 показать стандартный диалог форматирования заданного диска, модально.
Тот самый, который винда сама показывает при выборе Формат на букве диска или из окна инструментов.
Есть программа на плюсах без исходников, которая делает это, и от меня требуют того же.
Форматирование через win API из собственного окна не одобрят.
5 фев 21, 00:12    [22275196]     Ответить | Цитировать Сообщить модератору
 Re: Вызвать стандартный диалог форматирования диска  [new]
гомодиализ
Member

Откуда: отовсюду
Сообщений: 48
ну вот, как всегда, замучаешься, спросишь, и сразу найдётся: https://www.pinvoke.net/default.aspx/shell32/SHFormatDrive.html
5 фев 21, 00:20    [22275201]     Ответить | Цитировать Сообщить модератору
 Re: Вызвать стандартный диалог форматирования диска  [new]
гомодиализ
Member

Откуда: отовсюду
Сообщений: 48
однако не всё повидло.
появляется UAC диалог на повышенные полномочия, а потом диалог форматирования почти всегда оказывается под окном программы, а не над ним, а также окно программы "висит" и закрашивается при перетаскивании диалога форматирования. при вызове таких диалогов из .NET нужно что-то ещё особое?
5 фев 21, 00:37    [22275205]     Ответить | Цитировать Сообщить модератору
 Re: Вызвать стандартный диалог форматирования диска  [new]
Сон Веры Павловны
Member

Откуда:
Сообщений: 6154
гомодиализ
однако не всё повидло.
появляется UAC диалог на повышенные полномочия, а потом диалог форматирования почти всегда оказывается под окном программы, а не над ним, а также окно программы "висит" и закрашивается при перетаскивании диалога форматирования. при вызове таких диалогов из .NET нужно что-то ещё особое?

Хэндл родительского окошка нужно задавать не нулевой, а именно родительского окошка. У меня на Win7 и Win10 это всё работает вполне нормально, в т.ч. с включенным UAC.
5 фев 21, 14:48    [22275636]     Ответить | Цитировать Сообщить модератору
 Re: Вызвать стандартный диалог форматирования диска  [new]
гомодиализ
Member

Откуда: отовсюду
Сообщений: 48
Сон Веры Павловны,

ну да, с хендлом и тонет/тормозит, а под отладчиком вообще зависает намертво.
а ещё при закрытии диалога возвращает SHFMT_ERROR вместо SHFMT_CANCEL.

Сообщение было отредактировано: 5 фев 21, 20:17
5 фев 21, 20:23    [22275997]     Ответить | Цитировать Сообщить модератору
Все форумы / WinForms, .Net Framework Ответить