Как сделать темное оформление windows 10

Категория: Компьютеры

Здесь я публикую различные серьезные статьи, посвященные компьютерам. Таково мое ноу-хау, лучше что-то написать, чем забыть.

Какой клиент лучше?

…создание веб-приложений. По приложениям, а НЕ по личным страницам!

Сегодня я просто кое-что делаю на работе. Мне не нужна эта охота за пикселями. Я уже сделал много приложений, поэтому задумался над тем, что на самом деле лучше. Он либо обычный покупатель, который ничего не понимает, либо он графический дизайнер, который точно знает, чего хочет, и хочет этого.[ПОДРОБНЕЕ]

Заказчик имеет преимущество в определенной допуске выходного вида, сам заказчик имеет очень смутное представление о том, что ему хотелось бы. С другой стороны, минус — расплывчатость задания, изменения на лету (пожалуйста, радикальные и несовместимые с предыдущей концепцией) и потом упорное принуждение кокотинов, которые думают, что они будут крутыми, супер и т.д. НЕТ не будут. Если клиент хочет черный фон и прокручиваемый текст, это пощечина.

А теперь вторая баррикада. Графически образованный человек :), у него есть дизайн, он знает, чего хочет, делает это с помощью яблока и не дает себя обмануть. Преимущества минимальны. Точный ввод, точные шаблоны, точный функционал (в основном), и минусы: боже, это графический дизайнер, поэтому шрифт, размер должны подходить, углы в основном круглые у всего, прозрачность абсолютно везде, анимация, вращения, пируэты. И все под часы точно до пикселя. Во всех браузерах. Бле. И он уж точно не позволит себе извиниться, что html не создан для такой ерунды, в конце концов, если бы он мог нарисовать это в своем фотомагазине, мы могли бы каким-то образом занести в него данные.

Ответ на вопрос. Ни то ни другое, одно хуже другого. Сильные личности ценят того, кому они могут навязать свой замысел. Я предпочитаю делать что-то для себя и для себя.

Приемы работы с TreeView в .NET Compact Framework

статья написана и действительна для .NET Compact Framework (CF) v 2.0 и языка vb.net

Я написал советы по полному выбору строки, добавлению клика, двойного клика и, наконец, очень полезной окраски строки/фона.

Трюк для черного фона и белого текста

Эта проблема имеет простую основу. Если вы создаете объект TreeView в CF, свойство .BackColor не поддерживается. VS studio сама уведомит вас об этом. Поэтому невозможно изменить цвет фона. Первый вариант — это [БОЛЬШЕ] для написания собственного TreeView , производного от Object . Я выбрал второе решение.

Каждый добавленный TreeNode имеет включенные свойства цвета фона и шрифта. Поэтому необходимо создать и установить что-то вроде этого:
Dim node As New TreeNode
node.Text = «aa»
node.ForeColor = Color.WhiteSmoke
node.BackColor = Color. Черный
TreeView.Nodes.Add(node)
Это дает нам черный фон.

Проблемы

Черный цвет только под самим текстом. В CF нет свойства для установки FullRow . Это можно обойти, добавив много (много) пробелов за отображаемым текстом. Что-то вроде +” “. Бред, но работает. Нам нужны результаты. С точки зрения производительности это не проблема. Это создает вторичную проблему с горизонтальным ползунком. Его нельзя отключить, поэтому можно либо скрыть другим компонентом (вне формы), либо написать интеллектуальный алгоритм, заполняющий строку только определенным необходимым количеством пробелов. Я выбираю первое.

И последняя проблема, которую нужно решить для черного фона? Даже если TreeView пуст, он должен быть заполнен элементами, ровно столько, сколько поместится в его высоту. Высота должна быть кратна высоте строки. Пустые элементы будут выделены черным цветом, а когда данные начнут увеличиваться, пустые можно будет удалить. Пусть каждый делает сам алгоритм так, как ему нужно.

Хитрость для добавления событий OnClick и DoubleClick (события)

TreeView не имеет события OnClickи иногда это может быть полезно :). Опять же, у нас больше возможностей.

Используется либо низкоуровневый GetFocus (см. msdn), либо какое-то существующее событие используется и оборачивается логикой. Для этого подходит событие AfterSelect . Во время выполнения мы добавляем AddressOf MyFunctionClick с помощью AddHandler TreeView.AfterSelect. Сама функция MyClickFunction выглядит следующим образом: Sub MyClickClick(ByVal sender As Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) . Так что когда кто-то отмечает элемент в КПК, он попадает в эту функцию. Здесь у нас есть преобразование e , в котором есть, например, e.Node.Tag или e.Node.Text . Мы можем написать логику, чтобы игнорировать наши черные пустые строки. Мы также можем создавать функции для удаления строки и т. д. Но для того, чтобы AfterSelect снова заработало, нам нужно TreeView.SeletedNode = ничего . Вот так мы сделали onclick. DoubleClick потребует некоторого преобразования и тайм-аута для реализации двойного щелчка. Я оставлю это на усмотрение каждого.

Полная строка и строка с цветовой кодировкой

С предыдущей функцией TreeView.SelectedNode= ничего вы потеряете выбранную строку. Поэтому рекомендуется сохранить, какая строка была нажата, и изменить цвет фона/текста и т. д. при рендеринге элементов в TreeView. С ним можно творить совсем немного магии. Сделайте мультиселект и тому подобное. И FullRow . В документации сама функция только для большого фреймворка и с некоторыми ограничениями. Как я писал выше, просто вставьте много пробелов в текст, и все готово.

Читайте также:  Как установить windows 7 с меню компьютера

Технические проблемы

Смотрю, начинаю радоваться лету и сразу все на хостинге отстой. Сначала было что-то с веб-сервером, потом упал ftpko, а когда он работал, база данных sql снова вышла из строя. Для этого я перешел на более новый wordpress, который немного запутался и на сервере отсутствуют файлы. И я закончил этопутем копирования базы данных с локального хоста с неправильными настройками, поэтому все это как-то умерло. Что я не веду блог о какой-то «системе». Но я для этого слишком упрямый программист, которому нравится контролировать страницы. И все же лучше, если он иногда ездит, чем у кого-то другого в лапах. Конец, точка, восклицательный знак.

А в третьем я обнаружил еще одну загвоздку. Итак, я немного поработал над SQL Cache для wordpress, и теперь все работает отлично. Весь этот плагин Cache — гениальная штука, он фиксирует каждый запрос к базе данных и проверяет, был ли он уже выполнен. Если да, то он вытягивает результат запроса из файла и не делает сам запрос к БД. Он отлично работает и не нуждается в базе данных при нормальной работе.

Я обнаружил ошибку в CMD

Простая вещь. Вы также можете попробовать сделать ошибку. Откройте командную строку (CMD), создайте файл с именем «!whatever.txt». Теперь введите восклицательный знак (!) в консоли и нажмите TAB. Имя должно быть добавлено в >!cokoliv.txt !»!cokoliv.txt» Автор admin Опубликовано 20.06.2008 Рубрики Компьютеры Теги error, cmd, windows Оставить комментарий к Я нашел ошибку в CMD

Оптимизация в КПК (Compact Framework)

Лето за окном. Все должны были это зарегистрировать. Поэтому времени на распространение макси-гениальных идей не так много. Я предпочитаю водить машину, заниматься спортом, есть, спать и так далее. Теперь вернемся к сегодняшней теме. Несколько месяцев, чисто по работе, расширял свои знания о подноготной .NET Compact Framework for PocketPC aka PDA, MDA. На выходных я разрабатывал новую библиотеку для асинхронных соединений. Последний немного созрел. И когда он был закончен, мне пришла в голову совершенно блестящая идея.

Пользовательский диалог

Да. Идея была довольно проста. Я добавлю поддержку пользовательских диалогов в библиотеку скинов. Полностью графический, конечно. Вы знаете сегодняшний стандарт,вы нажимаете на что-то, весь экран становится темным, и появляется диалоговое окно с каким-то приятным сообщением. После щелчка все снова темнеет, и вы продолжаете.

Простая задача, но не на очень ограниченной платформе КПК. Полупрозрачности здесь нет. Многого здесь не существует. Итак, первое, что я придумал, было простое приложение FAKE, в котором были заранее подготовленные изображения с затемненным фоном. Однако это решение имеет фундаментальную проблему. Он не допускает никакой гибкости. А так же, если я вызову диалог откуда-то еще, до того, как я предварительно нарисовал, графика не будет согласовываться.

Решение

После некоторого поиска в документации я использовал PInvoke, чтобы собрать воедино функцию, которая: берет текущий экран КПК и сохраняет его в растровое изображение. Затем он попиксельно пересчитывает битмап в «темные цвета» (практически снижает насыщенность и яркость) и рисует в середине этого битмапа изображение самого диалога — какую-то причудливую рамку с диалогом. Блестящая идея, даже функциональная после оплаты превью, но, к сожалению, смертельно медленная. Моей идеей было выполнить эту операцию за 50-100 мс. Как же я ошибался.

Начинается оптимизация

Я не буду медлить. Весь процесс занял невероятные 10 секунд. За все отвечал код bitmap.GetPixel(x,y). И обратный ему SetPixel. Не рекомендуется использовать эти невероятно неоптимизированные функции. Я знал это еще со времен программирования графических элементов на C++.

Я провел небольшое исследование и узнал советы по оптимизации от разработчиков MVP в MSDN. В основе лежит использование Bitmap.LockBits и UnlockBits. Это перенесет нас прямо в неуправляемую растровую память, и мы сможем начать работать как угодно. Выход представляет собой массив байтов отдельных субпикселей (R, G, B). Для разрешения 240×320 размер поля составляет около 240*320*3=230400 пикселей. Столько точек нужно проанализировать и каким-то образом пересчитать (яркость,контраст, цвет и т. д.).

Я глупо сказал, вы выиграли. Весь процесс ускорился до невероятных 180 мс. Так что достаточно было написать функции для преобразования пикселя и все. Поэтому я написал свою собственную функцию преобразования RGB HSB. Возился с ними больше суток, перегружены, правильно прокомментированы, первоклассная работа. В то время я понятия не имел, что КПК нужно оптимизировать. Когда я убедился, что функции работают правильно, я просто поместил что-то вроде этого

в цикл с пикселями.

ColorTransform.RGBToHSB(R, G, B, dH, dS, дБ)
дБ = дБ * 0,4
dS = dS * 0,7
ColorTransform.HSBToRGB(dH, dS, дБ) , Р, Ж, Б)

Код работал отлично, результат был именно таким, как я хотел. Но эй. Преобразование и умножение каждого пикселя заняло невероятные 5150 мс. Поэтому я начал искать, почему это так. Я закомментировал часть умножения и сразу стал на несколько секунд быстрее. Это было уже ясно. Процессор КПК с трудом может сложить, не то что умножить, 32-битное число с плавающей запятой. И поэтому я продолжал думать.

Читайте также:  Как подключиться к вай фаю с ноутбука windows 10

Различные решения

  • преобразовать пиксель в серый и скопировать во все каналы
  • возьмем один канал, затемним его, разделив, и скопируем в остальные
  • сложить все каналы и разделить результат на большее число
  • подсчитывать только четные строки/столбцы и копировать результат
  • считайте только необходимую область, опускайте остальные

Каждая из этих идей делала выполнение немного быстрее, а некоторые и прилично быстрыми, но я все еще зависал над отметкой в ​​​​одну секунду, и это было неприемлемо. Он должен рассчитываться в режиме реального времени. Прежде всего, результаты с одним каналом выглядели выше среднего отвратительно. Я бы и это сдал, но время не совпало.

Ну, просидел я над проблемой до ночи, все смотрел на значения пикселя до затемнения и после затемнения и удивлялся, как это значениесчитать без умножения, деления, сложения. О, и тут меня, конечно, осенило. Битовый сдвиг. Это не точно, у него не так много опций, но он работает чертовски быстро в любом месте. Я был в значительной степени сделал с этим. Я взял сумму цветов одного пикселя, сдвинул на 4 и скопировал. 280 мс. Прохладный. Выход примерно хороший.

Затем я попробовал еще одну настройку и, что удивительно, ускорил и улучшил вывод. 255 мс

Неверные пути

Битовый сдвиг — это настолько быстрая операция, что даже рассматриваемое пропуск (без учета) определенной области медленнее, чем перетаскивание и сдвиг всего. Накладные расходы на оценку того, находится ли пиксель в области или нет, огромны. Я даже переписал обход массива с рекомендованным Int32 как с самым быстрым типом данных. Разумеется, расчет X и Y должен производиться в самом цикле, а не как вспомогательный расчет внутри цикла. Накладные расходы настолько велики, что даже исключения всех пикселей недостаточно, чтобы компенсировать замедление. Здесь также должны быть некоторые оптимизации. Например, разбить растровое изображение с помощью BitBlt на несколько меньших и обработать их. Или оценивайте положение пикселя только изредка :-/

Я прилагаю несколько изображений в качестве примера того, что возможно и сколько времени требуется для оптимизации. Во время таких массовых мероприятий определенно хорошо думать о том, что и как. Это стоит того. В моем случае это не точное представление, глаз тупит, так что прикольно. Я не могу представить скорость матричных преобразований. Обычные правила здесь просто не действуют. А теперь у меня появилась идея для отличного просмотра изображений 🙂

Реальное развертывание

После добавления алгоритма в мою графическую библиотеку я попробовал несколько сценариев использования, и оказалось, что он действительно непригоден. Загрузка данных из XML, создание элементов, скриншот, трансформация и рендеринг, все это занимает больше секунды времени. И это большая задержка на клик.Я закончил тем, что решил это, отступив слой между объектами. Это заботится о кэшировании и предварительной загрузке данных. Для предварительной загрузки все еще потребуется некоторый интеллект. Таким образом, все занимает слишком много кадров.

Жизнь программиста, часть первая

Сегодня я решил написать что-нибудь за кулисами моего рабочего процесса. Я работаю программистом в британской компании около года. Имя не важно, здесь ее все равно никто не знает. Вот я и сижу в алтаре целыми днями, печатая на компьютере, и при этом замечаю, что даже в этой профессии есть определенные правила и допуски.

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

Перед тем, как заснуть, я всегда придумываю решение проблемы или, еще лучше, придумываю новый и совершенно гениальный функционал. Конечно, комп уже не работает и вставать тоже не хочется.

А пока последнее открытие. Всякий раз, когда у меня в голове появляется гениальная идея, конструкция, алгоритм, мне хочется гадить, и мне просто нужно бежать к чаше. Чем больше мысль, тем сильнее принуждение. А к чаше относится правило номер один, так что обычно гениальная идея оказывается еще гениальнее 🙂 и почти нереализуема после прихода к компьютеру.

Приложение

Например, сейчас я создаю свой собственный XML-загрузчик скинов для Compact Framework в .NET. Идея изначально была проста. Я мог бы написать какую-нибудь утилиту, чтобы мне не приходилось нажимать на компоненты, но я мог бы динамически генерировать их из файла определения. Это оказался XML-файл. Потом последовала мысль, что этих файлов может быть и больше — отдельных экранов в КПК. До снятия шкуры было недалеко. Отсюда быстро пришла идея поддержки разных разрешений и съемки по скину. Все это должноэкранировать пользовательскую библиотеку ведения журналов и отладки. Вернемся к динамическим компонентам. Изначально это было фоновое изображение. Затем появилась кликабельная кнопка изображения. Затем последовала прозрачная метка, динамический таймер, текстовое поле и область, по которой можно щелкнуть. Все завершилось интерфейсом для регистрации событий для обратных вызовов во время события. Все должно было быть отражено в настройках XML.

И так, из нескольких часов работы получается почти месяц качественного кодинга. Я произвел огромное количество классов и интерфейсов. Конечно, это еще не конец. Идеи продолжают приходить. Но видно, что ни один проект не выглядит таким большим, как он есть на первый (или второй, третий) взгляд

Тест: CF-карта A-Data Speedy 2GB[ENG]Обзор: CF-карта A-Data Speedy 2GB[/ENG]

Сегодня у нас будет образовательная статья, полная информации и идей. Бла-бла Я только что купил карту Compact Flash A-Data Speedy 2GB для тестирования. Мне было интересно, как недорогой продукт показал себя с точки зрения скорости.[БОЛЬШЕ]

Читайте также:  Как узнать работает ли защитник windows 10

Протягивал карту замеров в HDtach, SiSoft Sandra 2007 и ультимативной утилите hwBench v3.12. Графики и результаты прилагаются. Что еще сказать. Карта относительно быстро читается и может без особого труда использоваться в качестве загрузочного диска. Преимущество малого времени доступа очевидно. Однако писательство — вещь смертельная. Рекомендую ставить максимальный размер сектора хотя бы для символического ускорения. Он уже достаточно хорошо записывает большие файлы (mp3). Количество записей трудно оценить. Я не стал разбирать карту, чтобы посмотреть, что за микросхема памяти внутри.

Измерение SiSoft Sandra

[ГРАФИК

HDTach и подобные утилиты упрямо сообщали о 10 МБ/с и ничуть не больше. Могу предположить, что это будет предел карты. Скорее всего скорость контроллера. Карта была подключена к каналу IDE и работала в режиме DMA.

Заключение

По результатам тестирования видно, что карта не совсем плохая и при подключении к рейд 0 будет давать средние результаты при минимальных затратах. Это также будет хорошо для запуска портативных приложений. Это точно не подходит для мест с частыми заходами.

Сегодня я думал о вас и купил очень дешево (около 15$/2GB) Compact Flash карту Speedy 2GB от A-Data. Мне было интересно, как быстро работает эта дерьмовая карта.[БОЛЬШЕ]

Я провожу тесты с HDtachu, SiSoft Sandra 2007 и супер-прокачиваемой утилитой hwBench v3.12. Графики и результаты налицо. Карта относительно быстра в операциях чтения. Письмо — это катастрофа. Не используйте в качестве записывающего диска! 🙂 Карту не разбирал, чтобы не знать, какой чип внутри — лучше бы поподробнее.

SiSoft Sandra измеряет

[ГРАФИКИнтересно, чего я еще не сделал? Ну, это было бы ненормально, если бы все не пошло к черту. Я встал довольно медленно в десять часов в субботу, и на улице было относительно хорошо. Немного ветрено и пасмурно. Но уже в одиннадцать часов над нашим городом пронеслась предсказанная буря. Коллега Кирилл. Довольно шумихи. И тут ИБП начал пищать. Я не бездельник, поэтому у меня есть ИБП, оснащенный автомобильным аккумулятором на случай более длительного отключения. Примерно через полчаса гудка я решил покончить с мучениями и выключил все. И это было также последнее, что я сделал в тот день. [МОРЕ]

Внезапно человек обнаруживает, как невероятно электричество влияет на жизнь. Ничего нельзя было сделать. К обеду я думал, может быть, я начну читать, но тьфу. Потом мне дали задание приготовить пюре, и я смешал пюре под звуки УПСки. Это прекрасное чувство, когда вокруг тихо и темно, а миксер жужжит. Во второй половине дня я погрузился в работу, которую все еще откладывали. Оштукатурил весь еловый уголок. Он отряхнулся и привел себя в порядок. А потом я бросился чистить корпус компьютера. Который, как я знал, был сильно засорен и нуждался в удалении гумуса.

IHS больше не используется

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

Отключение длилось вполне приличные 5 часов. Тогда они были такими маленькимиперерывы в несколько минут. Урок ясен из этого:

Одного автомобильного аккумулятора недостаточно для ИБП. Ожидайте неожиданного.

В следующий раз я мог бы модернизировать резервный источник с некоторыми из этих суперконденсаторов, и солнечная панель тоже не была бы потеряна. Однако на ветру я подумал о ветрогенераторе, адаптированном к быстрому ветру (100 км/ч и более). Классическая ветряная электростанция — вещь хорошая, но эта могла бы быть и полезнее.

Поделиться с друзьями
ОС советы