Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Перезагрузка компьютера из командной строки

02.07.2011 | Категория: Software | Автор: ManHunter
В некоторых случаях требуется перезагрузить компьютер из командной строки, пакетного файла, через удаленный доступ или в автоматическим режиме без участия человека (например, через планировщик). В этом случае привычная комбинация меню "Пуск" - "Завершение работы", естественно, недоступна. Можно, конечно, воспользоваться сторонними утилитами различных разработчиков, скриптами AutoIt и другими вспомогательными средствами, но они могут быть не всегда доступны. Здесь я собрал несколько способов перезагрузки компьютера с использованием команд самой операционной системы. Некоторые из них работают только на определенных версиях Windows, а некоторые универсальные.

Первая универсальная команда перезагрузки через shutdown, работающая на Windows XP и Windows 7. Параметры команды: -r - перезагрузка (reboot), -f - остановить все запущенные приложения, -t 0 - перезагрузить сразу же, без ожидания.

shutdown -t 0 -r -f
Вторая команда экзотичная, выполняется через команду ping. Работает также на Windows XP и Windows 7:

ping -n 0 127.0.0.1>nul&wmic OS WHERE Primary="TRUE" CALL Win32Shutdown 6
Следующие две команды специфичны только для Windows XP. Эта работает на всех версиях Windows XP:

rundll32 user.exe,ExitWindowsExec 2
А эта работает только до версии SP2 включительно. Останавливается служба журнала событий, после чего система автоматически уходит в перезагрузку. На более новых системах подобный фокус не срабатывает.

echo y|net stop eventlog
Следующий метод перезагрузки самый громоздкий и основан на использовании скрипта VBS. Скрипт состоит из нескольких строчек, поэтому его придется создавать через команды консоли copy con имя_файла.vbs или через перенаправление вывода команды echo в файл. Зато сохраненный файл можно использовать в будущем. Такой способ подходит для Windows XP и Windows 7.

Читать статью целиком »
Просмотров: 119867 | Комментариев: 18

Установка Windows 7 с флешки

03.05.2011 | Категория: Software | Автор: ManHunter

Установка Windows 7 с флешки

Рынок электронной техники уверенно движется в сторону минимализма. Все большую популярность набирают нетбуки, не оснащенные оптическими приводами, да и сами CD/DVD-диски постепенно отходят в прошлое. Зато на смену им приходят компактные USB-накопители высокой емкости. В связи с этим иногда возникает проблема с установкой, обновлением или восстановлением операционных систем, которые распространяются на загрузочных дисках или в виде образов таких дисков. Так, например, на своем нетбуке мне пришлось выкорчевывать хоть и лицензионную, но невероятно убогую Windows 7 Starter и поставить вместо нее полноценную пиратскую Windows 7 Ultimate. В этой статье я расскажу как можно сделать установочную флешку с Windows 7, с которой можно легко поставить систему. Преимущества флешек очевидны: они более компактны, менее подвержены механическим воздействиям, на них можно записать какой-нибудь дополнительный софт и периодически его обновлять, а главное, скорость установки системы с флешки будет гораздо выше, чем с компакт-диска.

Читать статью целиком »
Просмотров: 79262 | Комментариев: 26

Обработка подключения и отключения съемного накопителя

18.04.2011 | Категория: Образ мышления: Assembler | Автор: ManHunter
С расширением рынка переносных устройств и USB-накопителей становится актуальной задача по обработке их взаимодействия с компьютером. Сегодня разберем обработку подключения и отключения съемных накопителей, таких как Flash-диски, карты памяти и USB-диски. Начинаем с теории. При подключении или отключении съемного накопителя система посылает всем окнам (через глобальный хэндл HWND_BROADCAST) сообщение WM_DEVICECHANGE. Но это сообщение всего лишь о самом факте изменения состояния съемного накопителя, а более подробные значения содержатся в параметрах lParam и wParam этого сообщения. В wParam приходит расшифровка произошедшего события: подключение, отключение, изменения состояния, отмена отключения и т.п. Нас пока интересует только два: DBT_DEVICEARRIVAL - подключение сменного накопителя и DBT_DEVICEREMOVECOMPLETE - извлечение накопителя. Основной обработчик событий приложения ничем не отличается от обычных обработчиков. Нам также понадобятся несколько констант, которые по умолчанию не определены в FASM:
  1. DBT_DEVICEARRIVAL        = 0x8000
  2. DBT_DEVICEREMOVECOMPLETE = 0x8004
  3.  
  4. DBT_DEVTYP_VOLUME        = 0x00000002
И, собственно, сам обработчик. Я оставил только нужные фрагменты кода:
  1. proc DialogProc hwnddlg,msg,wparam,lparam
  2.         push    ebx esi edi
  3.         ...
  4.         ; Пришло сообщение об изменении состояния съемного накопителя
  5.         cmp     [msg],WM_DEVICECHANGE
  6.         je      update_usb
  7.         ...
  8. update_usb:
  9.         ; Устройство подключено?
  10.         cmp     [wparam],DBT_DEVICEARRIVAL
  11.         je      usb_connected
  12.  
  13.         ; Устройство извлечено?
  14.         cmp     [wparam],DBT_DEVICEREMOVECOMPLETE
  15.         je      usb_disconnected
  16.  
  17.         jmp     processed
  18.  
  19. usb_connected:
  20.         ; Обработка подключения устройства
  21.         ...
  22.         jmp     processed
  23.  
  24. usb_disconnected:
  25.         ; Обработка отключения устройства
  26.         ...
  27.         jmp     processed
  28.         ...
  29. processed:
  30.         mov     eax,1
  31. finish:
  32.         pop     edi esi ebx
  33.         ret
  34. endp
Для полноты картины осталось узнать, какой именно диск был подключен или извлечен. В параметре lParam сообщения WM_DEVICECHANGE передается указатель на структуру, которая содержит подробную информацию о случившемся событии. FASM про нее тоже ничего не знает, поэтому придется и ее описать самостоятельно.

Читать статью целиком »
Просмотров: 6395 | Комментариев: 19

Отключение режима гибернации в Windows 7

27.03.2011 | Категория: Software | Автор: ManHunter

Файл свопа памяти hiberfil.sys

При переходе компьютера в режим гибернации создается снимок (своп) памяти, то есть всех запущенных программ, открытых окон, рабочего стола, загруженных в память файлов и т.п., который записывается на жесткий диск в файл hiberfil.sys. Его размер соответствует общему объему установленной памяти и поэтому может достигать нескольких гигабайт. При выходе из гибернации система загружает этот файл обратно в память и возвращается в то состояние, которое было до "засыпания". Такой режим работы позволяет экономно расходовать заряд аккумуляторов на ноутбуках при простое. На стационарных компьютерах режим гибернации используется очень редко, а файл hiberfil.sys только занимает место на жестком диске. Его можно удалить вручную, но если не отключить режим гибернации, то файл будет создан снова. Казалось бы все просто: надо зайти в настройки электропитания и отключить там все, что относится к гибернации (меню Пуск - Панель управления - Электропитание - Настройка плана электропитания - Изменить дополнительные параметры питания - Сон - Гибернация после).

Читать статью целиком »
Просмотров: 255037 | Комментариев: 116

Управление лотком CD-ROM на Ассемблере

06.02.2011 | Категория: Образ мышления: Assembler | Автор: ManHunter
Открывать и закрывать лоток CD-ROM можно программными способами. Это может оказаться полезным в случаях, когда системный блок стоит в труднодоступном месте или по каким-либо иным причинам нет возможности управлять им при помощи механической кнопки. Также я читал истории, когда на лоток CD-ROM возлагались полезные функции, например, при выдвижении он замыкал контакты питания и отправлял сервер в перезагрузку, а администратор таким образом удаленно управлял им. Так что программное управление лотком CD-ROM имеет место быть, и наша задача научиться его делать. Чаще всего в разных интернетах описывается способ управления при помощи MCI (Media Control Interface). Кстати, именно этот способ приводится в качестве одного из примеров программ в пакете FASM.
  1.         ...
  2.         ; Открыть лоток CD-ROM
  3.         invoke  mciSendString,cmd_open,0,0,0
  4.         invoke  mciSendString,cmd_eject,0,0,0
  5.         invoke  mciSendString,cmd_close,0,0,0
  6.         ...
  7.         ; Закрыть лоток CD-ROM
  8.         invoke  mciSendString,cmd_open,0,0,0
  9.         invoke  mciSendString,cmd_load,0,0,0
  10.         invoke  mciSendString,cmd_close,0,0,0
  11.         ...
  12. cmd_open   db 'open cdaudio',0
  13. cmd_eject  db 'set cdaudio door open',0
  14. cmd_load   db 'set cdaudio door closed',0
  15. cmd_close  db 'close cdaudio',0
У данного метода есть недостатки. Главный заключается в том, что при наличии в системе нескольких приводов CD-ROM нет возможности указать, лоток которого из них необходимо выдвигать, всегда открывается первый по счету. Второй существенный недостаток - некоторые антивирусы считают наличие таких функций в программах потенциально опасными. Видимо из-за того, что иногда несанкционированное открытие лотка CD-ROM используется в различных программах-шутках для окошмаривания доверчивых пользователей.

Читать статью целиком »
Просмотров: 9181 | Комментариев: 6

Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2021
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.16 сек. / MySQL: 3 (0.0699 сек.) / Память: 5 Mb
Наверх