"Выполнение операций с файлами"

Обсуждения по программированию для ОС Windows безотносительно используемого языка программирования. Windows NT, Win32, Windows API, ядро и драйверы.
MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

"Выполнение операций с файлами"

Сообщение MIT » 13.01.2010 (Ср) 21:43

Что должен делать установщик программ? Скопировать файлы в указанную пользователем папку, задать первоначальные параметры для приложения, помочь с настройкой устанавливаемого проукта пользователю и предоставить список дополнительных действий, типа размещения ярлыков, которые можно выбрать.
Всё это понятно и логично.
Обычный установщик копирует файлы по-человечески, отображая процесс копирования, но некоторые вызывают "стандартные" диалоги копирования или перемещения файлов (например KIS 2010 вызывает "стандартный" диалог с сабжевым названием раз с десять).
Вот что интересно узнать: зачем это делается? Зачем нужно создавать ворох лишних окошек, которые мельтишат перед глазами, постоянно забирая на себя фокус?
Может быть у этого есть какая-нибудь причина, но я её не знаю. Поведайте, пожалуйста.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: "Выполнение операций с файлами"

Сообщение Proxy » 13.01.2010 (Ср) 22:42

Проще в реализации доверить системе выполнять копирование.
Follow the white rabbit.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: "Выполнение операций с файлами"

Сообщение MIT » 13.01.2010 (Ср) 23:04

Разработчики Касперского не смогли сделать копирование файлов? Бред, имхо.
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: "Выполнение операций с файлами"

Сообщение Денис » 17.01.2010 (Вс) 13:39

Это же драйвера так устанавливаются (нулевого кольца защиты, если не ошибаюсь), потому и окошко выходит, потому что это окошко не установщика каспера, но ядра системы.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: "Выполнение операций с файлами"

Сообщение MIT » 17.01.2010 (Вс) 14:07

Если мне не изменяет память, то в системе колец только два: 0 и 3 (kernel-mode и user-mode соответвенно), и драйвера всегда работают в ring 0...

Но вообще идея хоть сколько-то похожа на правду. Может, может быть и так :)
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: "Выполнение операций с файлами"

Сообщение alibek » 17.01.2010 (Вс) 14:25

Денис писал(а):потому и окошко выходит, потому что это окошко не установщика каспера, но ядра системы.

Ядро системы никаких окон выводить не будет. Кроме разве что BSOD.
Скорее всего это какая-то системная процедура для установки драйверов и установщик Касперского просто вызвал ее, вместо того, чтобы устанавливать системные файлы самостоятельно и натыкаться на баги в последующих версиях Windows, где протокол этой процедуры изменится.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: "Выполнение операций с файлами"

Сообщение Хакер » 17.01.2010 (Вс) 15:44

alibek писал(а):Ядро системы никаких окон выводить не будет. Кроме разве что BSOD.

Ты имел в виду «вообще» или «при установке»?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: "Выполнение операций с файлами"

Сообщение alibek » 17.01.2010 (Вс) 16:29

Хакер писал(а):Ты имел в виду «вообще» или «при установке»?

Много ли ты можешь вспомнить интерактива от ядра системы?
Я так сходу вообще ни одного не припомню.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: "Выполнение операций с файлами"

Сообщение Хакер » 17.01.2010 (Вс) 16:44

Окна, на которые не распространяется системная тема. Это не значит, что все такие окна растут из R0, так как можно самому сделать такое окно, но обратное верно.

Например, при попытке загрузить бракованный EXE-файл, или EXE-файл, у которого не резолвятся импорты, появляются окна именно из R0. То есть я не уверен на все сто процентов, но загрузчик работает в R0, все эти проверки и резолвинг зависимостей делается в R0 и, вместе с тем, что эти окна выглядят не как все (и ведут себя не как все: плевать они хотели на Z-ордер и изменения оконной среды, и Spy++ их не видит), логично предположить, что и окна показываются из R0.

Твистер придёт, подтвердит. Он эксперт по окнам :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: "Выполнение операций с файлами"

Сообщение alibek » 17.01.2010 (Вс) 17:04

Ну возможно при каких-то исключениях они проявляются. Хотя логичнее было бы сообщать об исключениях кодами возврата, а не сообщениями.
К тому же, не исключено что это окна из winstation системной учетной записи, в которой не используются темы (поэтому не применяются темы, а spy++ не видит из-за нехватки уровня доступа к системной учетной записи).
Но сомневаюсь, чтобы окно копирования файлов относилось к этому случаю.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16473
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: "Выполнение операций с файлами"

Сообщение Хакер » 17.01.2010 (Вс) 17:19

Окно копирования конечно нет, но утверждения, что из R0 может быть только BSOD кажется неверным.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: "Выполнение операций с файлами"

Сообщение Proxy » 17.01.2010 (Вс) 18:16

То, за что можно не любить поприетарный софт :( Можно о таких явления, как окна, вызываемые ядром судить только по чьим-то словам или статьям с неустановленной достоверностью, но нельзя просто посмотреть исходники или запросить у сообщества.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: "Выполнение операций с файлами"

Сообщение alibek » 17.01.2010 (Вс) 18:23

Proxy писал(а):То, за что можно не любить поприетарный софт

Читай MSDN и TechNet. Там есть все, что может потребоваться.
То, чего там нет, тебе не нужно.
Lasciate ogni speranza, voi ch'entrate.

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: "Выполнение операций с файлами"

Сообщение Proxy » 17.01.2010 (Вс) 20:56

Правда не нужно? :)
Follow the white rabbit.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: "Выполнение операций с файлами"

Сообщение iGrok » 17.01.2010 (Вс) 22:14

Proxy писал(а):Правда не нужно? :)

Ну если нужно - аргументированно объясни зачем.
label:
cli
jmp label

Proxy
Профессор VB наук
Профессор VB наук
Аватара пользователя
 
Сообщения: 2941
Зарегистрирован: 31.08.2007 (Пт) 4:41

Re: "Выполнение операций с файлами"

Сообщение Proxy » 17.01.2010 (Вс) 22:59

Ну во-первых сабж, во-вторых я бы хотел безболезненно поубирать неиспользуемые DLL`ки, чтобы собрать дистрибутив. Тот же XP Game Edition собирался методом тыка. Оторвал - проверил работает ли. Если бы была возможность посмотреть сорс, то это было бы куда лучше.
ЗЫ. Дыа, я не противник пиратства.
Follow the white rabbit.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: "Выполнение операций с файлами"

Сообщение iGrok » 18.01.2010 (Пн) 0:43

Фиг с ним, с пиратством.
Если в системе что-то есть, оно для чего-либо нужно.
Если ты что-то уберёшь, не факт, что это что-то впоследствии не понадобится.
Хочешь калечить свою систему - калечь. Производители тебе в этом помогать не обязаны.

Так что в документации действительно есть ВСЁ, что может потребоваться РАЗРАБОТЧИКУ.

А сабж.. А что, собственно, сабж? Это окно кому-то мешает? Вопрос-то из разряда "праздный интерес", а не "насущная необходимость".
Интересно - копай. Копаться в работающей системе всегда интереснее, чем разгребать тонны исходников. )
label:
cli
jmp label

Twister
Теоретик
Теоретик
Аватара пользователя
 
Сообщения: 2251
Зарегистрирован: 28.06.2005 (Вт) 12:32
Откуда: Алматы

Re: "Выполнение операций с файлами"

Сообщение Twister » 21.01.2010 (Чт) 22:43

Хотелось бы внести ясность по теме окон, дабы не возникло путаницы. Как ни как, а виндовый гуй моя любимая тема :)

Ядро системы никаких окон выводить не будет. Кроме разве что BSOD.
Ну начнем с того, что все-все-все окна, которые видны на экране, создаются именно в ядре с помощью shadow-сервиса NtUserCreateWindowEx(). Думаю это и так всем ясно. Но вот что примечательно - вызвать этот сервис в ринг0 не выйдет, там стоит проверка на PreviousMode. Т.е. получается занятная картина - все окна создаются конечно же ядром, но инициировать создание окна может только юзермодный код. ...Попутно: БСОД это далеко не окно.

Много ли ты можешь вспомнить интерактива от ядра системы?

Например, при попытке загрузить бракованный EXE-файл, или EXE-файл, у которого не резолвятся импорты, появляются окна именно из R0
Обычно весь ядерный интерактив сводится к уведомлению пользовательского приложения о том, что надо "показать окошко/спросить о чем-то". И этим грешат не только сторонние продукты, но и непосредственно само ядро. Яркий пример тому наличие такой фишки, как NtRaiseHardError, которая не просто может вывести MsgBox из ядра, но и даже вернуть результат (какая кнопочка нажата). Естественно, окно MessageBox'а создается в юзермоде (конкретно в csrss до Win7), но без большой натяжки можно сказать - ноги у таких окон растут из ядра. Это как раз то, о чем говорил Хакер.

что эти окна выглядят не как все (и ведут себя не как все: плевать они хотели на Z-ордер и изменения оконной среды, и Spy++ их не видит), логично предположить, что и окна показываются из R0.
А по-моему совсем даже не логично. Создать такое окно можно с легкостью и в юзермоде (вызови MessageBox в контексте winlogon'a с флагом MB_DEFAULT_DESKTOP_ONLY). Но пальцем в небо ты попал.
А я все практикую лечение травами...


Вернуться в Windows-программирование

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList  
cron