Блог Ерёмина Андрея обо всём на свете…

Posts tagged ‘Windows Vista’

И все же Apple: MacBook PRO


Я начинал писать этот пост раза 3, каждый раз пытаясь донести мысль, о том, что Microsoft — сакс, а Apple — форевер), однако, ничего идеального нет. Сейчас у меня есть 2 яблоко-девайса. Я доволен ими на все 90% (вот если бы ещё и цена была не такой кусачей), но я абсолютно не спорю, что в них есть недостатки — они есть везде, поэтому каждый выбирает то,чем ему удобнее пользоваться.

Мне нравится MacBook Pro и MacOS X, установленная на нём, за то, что мне не нужно «париться» из-за проблем с utf-8 в cmd и PowerShell’e, за то, что мне не нужно искать дополнительные компоненты (вроде всяких там фреймворков), чтобы установить ту или иную программу, за то, что мне не нужно думать куда ставить софт, куда этот софт будет класть свои временные файлы и как потом полностью удалить этот софт и весь мусор, что он успел оставить, за то, что мне не нужно думать где найти драйвера для того или иного устройства (если заявлено, что девайс работает с MacOS, значит он с ней работает, а не как с Windows — с Windows XP девайс работает, а под Vista и 7 производитель драйвера дописывать не стал), за то, что я могу использовать теже компоненты (gem’ы) для ruby, что и на Linux (т.е. на ОС, которая в 99,9% случаях будет стоять на продакшен-сервере), за то, что даже, когда свободных ресурсов у компьютера будет мало система всё равно работает плавно — без зависаний, без «падений», за то, что с каждой новой версией ОС интерфейс не перекраивается заново, а логически улучшается, за то, что, например, тачпад является частью ноутбука и ОС в целом, а не в виде неудобного девайса с кривыми драйверами, которые срабатывают не во всех приложениях.

Как я уже писал — каждый выбирает себе то, что ему удобнее. Я 11 лет пользовался продукцией Microsoft — да, это красиво, функционально, понятно в какой-то степени. Теперь мне хочется не только красоты, но и удобства, хочется чтобы самые маленькие, простые задачи ОС делала сама, а я мог на 100% погрузиться в работу — будь то программирование, просмотр фильмов, игры или посещение веб-сайтов.

 

 

Загружаем Media Center вместо Explorer’a


Моё предположение, как ускорить загрузку Media Center в Windows 7, к сожалению, оказалось не эффективным, т.к. в большинстве случаев разница во времени загрузки минимальна.

Но тут вот родилась идейка не без помощи Михаила Кутьина – что если заменить Shell с explorer’a на eshell от Media Center? Получается всё вообще шоколадно.

Итак, открываем regedit и создаём  параметр Shell в ключе: HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon и в него записываем значение: %windir%\\ehome\\ehshell.exe

Всё! дело сделано.

Так же можете создать файл с расширением *.reg и  скопировать в него следующий текст (это будет быстрее ;)):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Winlogon]
«Shell»=»%windir%\\ehome\\ehshell.exe /directmedia:general»

ЗЫ: данный способ подойдёт для всех систем на которых можно запустить Media Center: XP, Vista, Windows 7.

Glass-прозрачность в WPF


Как сделать Glass-прозрачность в WPF-приложении?

1) Разместите следующий код в файле класса окна к которому вы хотите добавить glass:

[StructLayout(LayoutKind.Sequential)]
public struct MARGINS
{
    public int cxLeftWidth;      // width of left border that retains its size
    public int cxRightWidth;     // width of right border that retains its size
    public int cyTopHeight;      // height of top border that retains its size
    public int cyBottomHeight;   // height of bottom border that retains its size
};

[DllImport("DwmApi.dll")]
public static extern int DwmExtendFrameIntoClientArea(
    IntPtr hwnd,
    ref MARGINS pMarInset);

2)свойство окна Background сделайте Transparent и добавьте следующий код к событию Loaded:

try
   {
      // Obtain the window handle for WPF application
      IntPtr mainWindowPtr = new WindowInteropHelper(this).Handle;
      HwndSource mainWindowSrc = HwndSource.FromHwnd(mainWindowPtr);
      mainWindowSrc.CompositionTarget.BackgroundColor = Color.FromArgb(0, 0, 0, 0);

      // Get System Dpi
      System.Drawing.Graphics desktop = System.Drawing.Graphics.FromHwnd(mainWindowPtr);
      float DesktopDpiX = desktop.DpiX;
      float DesktopDpiY = desktop.DpiY;

      // Set Margins
      NonClientRegionAPI.MARGINS margins = new NonClientRegionAPI.MARGINS();

      // Extend glass frame into client area
      // Note that the default desktop Dpi is 96dpi. The  margins are
      // adjusted for the system Dpi.
      margins.cxLeftWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cxRightWidth = Convert.ToInt32(5 * (DesktopDpiX / 96));
      margins.cyTopHeight = Convert.ToInt32(((int)topBar.ActualHeight + 5) * (DesktopDpiX / 96));
      margins.cyBottomHeight = Convert.ToInt32(5 * (DesktopDpiX / 96));      int hr = NonClientRegionAPI.DwmExtendFrameIntoClientArea(mainWindowSrc.Handle, ref margins);
      //
      if (hr < 0)
      {
         //DwmExtendFrameIntoClientArea Failed
      }
   }
   // If not Vista, paint background white.
   catch (DllNotFoundException)
   {
      Application.Current.MainWindow.Background = Brushes.White;
   }

3) вот и всё.

image

Technorati Теги: ,,,,,

Облако меток