Показаны сообщения с ярлыком internal. Показать все сообщения
Показаны сообщения с ярлыком internal. Показать все сообщения

суббота, 12 марта 2011 г.

Приостановка и возобновление процессов

   Механизм приостановки и возобновления потоков в Windows есть. А как насчет процессов?

вторник, 1 февраля 2011 г.

Секреты контекстного меню проводника в Windows 7 - Copy as Path.

   Как известно, в Windows 7 разработчики Microsoft добавили много новых возможностей, некоторые из скрыты. Например "Секреты контекстного меню проводника", когда удерживая клавишу Shift, можно получить доступ к различным скрытым пунктам меню проводника операционной системы.

   Таким образом, например, щелкнув правой клавишей мыши по ярлыку, можно активировать пункты Run as different user и Copy as Path, а если аналогичным образом кликнуть по папке, то список доступных команд пополнится инструкциями Open in New Process и Open Command Window Here.

понедельник, 29 ноября 2010 г.

Как завершает свою работу Outlook 2007

   Оказывается, что для этого он использует TerminateProcess, а не ExitProcess...

четверг, 14 октября 2010 г.

Autoruns

   В операционных системах Microsoft Windows XP, Windows Vista и Windows 7 разделы автозапуска обрабатываются в таком порядке:
  1. <Запрос на вход>
  2. [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnceEx]
  3. [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce]
  4. [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run]
  5. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run]
  6. Папка «Автозагрузка»
  7. [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce]

вторник, 1 июня 2010 г.

Запись строк в реестр и Delphi

   Программируя в Delphi очень желательно записывать строковые данные в реестр в соответствии с документацией.

вторник, 11 мая 2010 г.

Обработка ошибок и GetLastError()

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

среда, 5 мая 2010 г.

WM_QUERYENDSESSION и WM_ENDSESSION (Windows Shutdown)

   Завершение работы Windows или как система завершает пользовательские приложения при Shutdown-e.

понедельник, 3 мая 2010 г.

Маленькая особенность OutputDebugString

   Начиная с Windows 2000, все операционные системы Microsoft линейки NT целиком и полностью построены на Unicode. Все ключевые функции для создания окон, вывода текста, операций со строками и т.д. требуют Unicode-строк. Если какой-то функции Windows передается ANSI-строка, она сначала преобразуется в Unicode и лишь потом передается операционной системе.
   В реализации это выглядит так: для функции доступной через API может существовать две версии: Ansi (принимает строки ANSI) и Wide (принимает строки Unicode) - например CreateProcessA и CreateProcessW. И Ansi-версия является оболочкой (шлюзом) к Wide.

   Но оказывается есть и исключения...

четверг, 15 апреля 2010 г.

SHFileOperation и двойной бэкслеш в MS Vista+

   Код Windows Vista был значительно переработан по сравнению с XP. Я думаю, это хорошо - внутренние ошибки исправляются (а на их место приходят другие - но это уже совсем другая история :)).
   И внешние проявление внутренних переработок могут быть весьма многообразны и совершенно не очевидны.

   Здесь я расскажу об одной особенности функции SHFileOperation, которая проявляется на Висте и выше.

понедельник, 12 апреля 2010 г.

Deadlock при вызове CoRegisterClassObject в DllMain

   В процессе разработки одного плагина для браузера Chrome было замечено, вызов CoRegisterClassObject (ole32.dll) в точке входа динамической библиотеки (DLLMain) в Microsoft Windows Vista/7 приводит к зависанию потока.

   Эксперимент показал, что эта проблема может возникнуть не только с хромом.

воскресенье, 11 апреля 2010 г.

Особенность InitCommonControlsEx в Windows XP

   В Windows XP вызов функции DialogBoxParamW может сразу возвращать управление вместо отображения диалогового окна, при выполнении следующих условий:
  1. у исполняемого файла есть манифест с name="Microsoft.Windows.Common-Controls" в <assemblyIdentity>
  2. в таблице импорта нет ссылок на comctl32.dll

суббота, 10 апреля 2010 г.

CreateToolhelp32Snapshot и многопоточность

   В процессе поиска причины, по который программа аварийно завершается с ошибкой (другими словами просто вылетает), возникло предположение, что функция CreateToolhelp32Snapshot потоко-небезопасна.