Форум OlegON > Компьютеры и Программное обеспечение > Операционные системы и программное обеспечение > Windows

На какой версии Windows вы сейчас сидите и почему? : Windows

21.05.2024 1:12


17.02.2023 17:27
amadey
 
А я до сих пор на всех моих компах использую Вин ХР.
Нет ничего такого, что сподвигло бы меня установить Вин7.
О вин 11 и речи нет.
17.02.2023 17:34
Капитан О.
 
Я также сижу на версии Windows XP, потому что я предпочитаю ее менее привлекательной графической оболочке, потому что она более стабильна и проста в использовании. Она также имеет более мощные возможности и поддерживается на большом количестве устаревших устройств.
17.02.2023 17:40
OlegON
 
Ну, если бы не мои старания, с Windows XP сюда бы зайти не получилось... Как ни крути, она уже всячески устарела. Смысл использовать что-то ниже Windows 7 (а для пользователя - ниже 10) точно не вижу, правда, я вообще смысл использовать Windows не вижу... Особенно для задач браузинга и документов.
17.02.2023 17:54
amadey
 
В вин 7 я обнаружил несколько ошибок которых нет в вин ХР. И они существенные. Влияют на порчу данных.
17.02.2023 18:08
OlegON
 
Какие, например? Может, в Win10 их уже нет? В XP действительно много чего, что уже никуда не годится... Отсутствие хрома-то и Win7 ставит под очень большой вопрос.
17.02.2023 18:20
amadey
 
В вин 7 когда нажимаем кнопку выключения или пуск-выключить, винда ХР посылает всем приложениям сигнал "завершите свою работу", и ждет, когда приложения завершат работу с сохранением всех своих данных.
А винда 7 тоже присылает в мое приложение сигнал, мое приложение начинает его выполнять. сохраняет все данные на винчестер , но винда нифига не ждет пока моя программа корректно сама сетя закроет по этому сигналу, а грубо прерывает мою программу и завершается. В итоге моя база данных портится потому что винда не подождала пока я закрою все открытые файлы.
Да, у меня консольное приложение WIN-32, не оконное. Но ведь Вин ХР терпеливо ждет это же самое мое консольное приложение пока оно само себя не закроет корректно.

Еще я заметил что в вин 7 некорректно работает предотвращение двойного запуска одного приложения. Я это делаю через Мутекс, затем если нахожу свернутое предыдущее окно с моей программой, я разворачиваю его. В Вин ХР все четко работает, а в вин 7 нихрена.

В Вин ХР есть полноэкранный режим консоли. а в вин 7 нету! (на одном и том же компе с одной и той же видеокартой).

Да пошла она к черту это вин7. На вин 8-10-11 не проверял.
17.02.2023 18:31
amadey
 
А что касается хрома. Он умер как когда-то умер скайп.
У разработчиков есть парадокс: сначала они разрабатывают негиальную быстро работающую удобную программу, а потом в результате многолетней доработки программа становится тормозной до ужаса, замусоренной дерьмом, и в конечном итоге пользователи от нее массово отказываются.
Так было с Скайпом, с Фейсбуком, теперь с Хромом и всеми хромиумами - особо отличился яндекс браузер. Засирает весь комп так, что диву даешься, замучаешься вычищать это вредоносное слово Яндекс, которое лезет во все щели винды. А сам яндекс браузер настолько тормозной что невозможно.
В ХР есть на данный момент несколько китайских браузеров , прекрасно и быстро открывающих все современные сайты.
Например, Макстон и Майпал.

Еще я заметил в этих ваших "обновленных" браузерах такую шнягу:

Открываем Хромом или яндекс браузером ссылку по скачиванию песенки МП3. А потом на номере мобильного телефона через который раздали на комп интернет оказывается автоматически подключенная платная "подписка" на какую-то хрень.
Оказывается, современные яндекс и гугл браузеры "стучат" провайдеру что мы скачали музон, и провайдеры нас тут же подписывают на какой-нибудь сайт зайцев.нет.
Ту же ссылку открываю браузером Макстон - и вуаля. все скачивается и никаких подписок на мобильнике не следует.
Продолжайте обновлять все и вся! Лично я не желаю быть зависимым от пиндостана и UAндекса. Да, да, бенефициары Яндекса не из России.
17.02.2023 19:07
OlegON
 
Цитата:
amadey винда нифига не ждет пока моя программа корректно сама сетя закроет по этому сигналу, а грубо прерывает мою программу и завершается.
Правильно делает, пользователь сказал выключить комп, значит она это делает, а не слушает всякий посторонний софт. Архитектурно неправильно расчитывать на то, что пользователь будет ждать, пока программа что-то там будет обрабатывать напоследок. Если очень хочется поднасрать пользователю, который уже оделся и собирается идти домой, то можно почитать про WaitToKillAppTimeout и AutoEndTasks. Но я лично предпочел бы сделать нормально.
Цитата:
amadey В Вин ХР есть полноэкранный режим консоли. а в вин 7 нету! (на одном и том же компе с одной и той же видеокартой).
Ты имеешь ввиду Alt-Enter? Зачем он тебе нужен? Времена DOS давно прошли. Посмотри, как Far сделан, Alt-F9 и все отлично растягивается.
Цитата:
amadey Да пошла она к черту это вин7.
Извини, но пока выглядит, как будто ты отрицаешь прогресс и не хочешь идти в ногу с современным софтостроением...

P.S. сочетания тезисов, что ты используешь XP, потому, что "не хочешь быть зависимым от пиндостана"... более чем странно :) Linux - твой друг тогда...
17.02.2023 21:30
student
 
Цитата:
amadey А винда 7 тоже присылает в мое приложение сигнал, мое приложение начинает его выполнять. сохраняет все данные на винчестер , но винда нифига не ждет пока моя программа корректно сама сетя закроет по этому сигналу, а грубо прерывает мою программу и завершается.
это из серии про кошек и готовить :)
посмотри в реестре WaitToKillAppTimeout/HungAppTimeout/AutoEndTask и поставь там пару часов пока твоя программа будет писать свои данные на диск

Цитата:
amadey Я это делаю через Мутекс
вместо мутекса семафор или евент с анализом ERROR_ALREADY_EXISTS - работают всегда
если мутекс принципиально - х\з с какого времени хранится цитата - не помню когда нашел, но Copyright © 2000, The Joseph M. Newcomer Co.

Daniel Lohmann pointed out the fundamental defect of the above mechanism. Although it is reliable, it is not complete, in that it addresses only one of the three possible meanings of "unique instance".

Avoiding multiple instances started in the same user session.
Avoiding multiple instances started in the same desktop.
Avoiding multiple instances started in any session of the same user account.
Avoiding multiple instances started on the same machine.

In particular, he points out that my way of creating the Mutex name uses a system-global name, guaranteed to be unique for the application, but which is known to all users, sessions, and desktops. Note that this raises the same issue with respect to any use of global names for Mutexes, Semaphores, Events, and even shared memory-mapped files: the assumption that a single name is valid depends upon your interpretation of the above three points. Thus, if you are building a system that uses synchronization primitives and which requires a solution other than (d), you will have to apply the techniques below to the synchronization primitive naming as well.

He points out that in the Terminal Server edition of NT (which is built into Windows 2000), the kernel no longer has a single "global" namespace, but in fact each Terminal Server session has a private namespace. System services share a common namespace for what is called the "console session". He points out that "this all results in consuming much more memory and making some programming tasks quite tricky, but the result is that every user logged into the Terminal Server is able to start its E-Mail client".

There's another little fix he made to my code:

The CreateMutex() call fails with ERROR_ACCESS_DENIED if the Mutex was created in another user's session. This comes from passing NULL for the SECURITY_ATTRIBUTES which results in default security settings. The typical default DACL allows only CREATOR/OWNER and SYSTEM access to the object.

His proposed solution is to extend the name of the Mutex beyond the GUID technique I use, to address the solutions of (a)-(c). He writes:

"I start with (b) because it is simpler. Using GetThreadDesktop() you get a handle to the desktop your thread is running on. Passing this to GetUserObjectInformation(), you get the name of the desktop, which is unique".

"Even (c) is quite easy. The solution is to add the current users account name. Using GetUserName() you get the current users account name. You should qualify it with the current users domain, which can be determined using GetEnvironmentVariable() with USERDOMAIN as variable name."

"For (a) it's a little bit more complicated. You have to open the process token using OpenProcessToken(). Pass this token to GetTokenInformation() to retrieve a TOKEN_STATISTICS structure. The AuthenticationId member of this structure, a 64-bit number (coded as an LUID), contains the unique id of the login session. Convert this into a string".

7-ка и выше все таки несколько по другому с безопасностью и правами работает

Цитата:
amadey если нахожу свернутое предыдущее окно с моей программой, я разворачиваю его
разворот окна без перенаправления фокуса ввода - AttachThreadInput на 7-ке и выше зависит от того где ранее был этот самый ThreadInput т.е. от очереди сообщений :)
20.02.2023 17:10
amadey
 
Цитата:
OlegON Правильно делает, пользователь сказал выключить комп, значит она это делает, а не слушает всякий посторонний софт. Архитектурно неправильно расчитывать на то, что пользователь будет ждать, пока программа что-то там будет обрабатывать напоследок. Если очень хочется поднасрать пользователю, который уже оделся и собирается идти домой, то можно почитать про WaitToKillAppTimeout и AutoEndTasks. Но я лично предпочел бы сделать нормально. .
Это полностью неправильно - не ждать.
Например, вырубили электричество, бесперебойник подал винде сигнал что заряд заканчивается, винда подала сигнал на завернение всем запущенным приложениям и ОБЯЗАНА ждать пока приложения безопасно сохранят все данные и закроют все открытые на данный момент файлы. Иначе - порча данных во всех приложениях.
А на случай если приложение не исполняет сигнал на завершение полученный от винды, через таймаут винда выкидывает на экран окно - приложение не отвечает - закрыть? Я даже согласен что если в течении 30 секунд приложение не завершило само себя, винде дать право его убить. Но СРАЗУ убивать не дав приложению ни секунды (как сейчас вин7 делает) - это ни в какие ворота не лезет! Я думаю это просто глюк в вин7. В вин ХР же все четко работает - приложениям дается время на безопасное сохранение открытых данных и закрытие файлов. Мне же нужно успеть все данные посохранять. Как Вы это не понимаете.
Часовой пояс GMT +3, время: 01:12.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.