Показ дописів із міткою windows. Показати всі дописи
Показ дописів із міткою windows. Показати всі дописи

неділя, 9 жовтня 2011 р.

О часовых поясах..

Украина в этом году на зимнее время часы не переводит и дальше остаётся в GMT+3 (это важно, так как мы были в GMT+2 + DST). То есть просто выключить галочку "Автоматический перевод на летнее/зимнее время" не подходит - ведь текущая таймзона сейчас выбрана GMT+2!
В то время, как космические корабли... в Ubuntu уже приехал свежий tzdata (в Debian, кстати, пока не вижу! но думаю, что скоро выйдет), Microsoft извещает, что плановое обновление, которое содержит свежее описание таймзоны для Украины, выйдет аж в декабре! (а мы-то "не переходим" в конце месяца)
И вместо того, чтоб выпустить отдельный хот-фикс, который автоматически загрузится и приведёт систему в нужное состояние, предлагает:
  • скачать хотфикс KB 2570791
  • перевести тайм-зону системы на "Калининград GMT+3"
  • после установки свежего обновления с новой таймзоной для Украины опять же руками выбрать новую тайм-зону
То есть, как обычно, через Ж.. А если таких компьютеров на один и не два??
PS: Кстати, для старых систем наверное проще всего выбрать тайм-зону "Москва" и не включать автоматический перевод времени.

вівторок, 15 березня 2011 р.

VirtualBox + Unidentified network

Как оказалось, это решение нифига не работает - достаточно оказаться в другой сети (т.е. дома), как Windows 7 опять перестраивает сеть и вновь появляется unidentified network.

Но вроде есть более правильное решение - перевести VirtualBox Host-Only Ethernet Adapter в режим end-point.

Вот небольшой скриптик на PowerShell:

$devices = "HKLM:\SYSTEM\CurrentControlSet\Control\Class\*"
$adapters = Get-ItemProperty $devices | Where-Object {$_.Class -eq "Net"} | Foreach-Object { $_.PSPath }
Get-ChildItem $adapters -erroraction silentlycontinue | Foreach-Object { get-itemproperty -path $_.PSPath } | Where-Object {$_.ComponentId -eq "sun_vboxnetadp"} | Foreach-Object { Set-ItemProperty -path $_.PSPath -name "*NdisDeviceType" -Type DWORD -Value 1}
Get-WmiObject -Class Win32_NetworkAdapter | Where-Object {$_.Name -like "*Virtualbox Host*"} | Foreach-Object {$_.Disable(); $_.Enable()}

Пока вроде полет нормальный!

середа, 9 березня 2011 р.

VirtualBox + Unidentified network

В последнее время для web-разработки использую VirtualBox — у меня локально Win7x32 + Apache + PHP довольно часто шалят:
PHP Warning:  Unknown: open_basedir restriction in effect. File...is not within the allowed path(s): ...

(хотя open_basedir не выставлен вообще!)

Настроил VirtualBox согласно статье. А так как мой ноутбук может работать в разных сетях, завёл ещё одну через VirtualBox Host-Only Network адаптер.

Всё хорошо, пока мне не понадобилось использовать MySQL сервер основной системы. Вроде бы всё банально просто, но не получается! Win7 считает эту сеть как "неизвестная", блокирует входящие firewall-ом, поменять тип тоже не даёт.

Короче, вот тут нашёл "решение" — небольшой PowerShell скрипт поменяет тип у всех активных неизвестных сетей в "рабочая":

- запускаем виртуалку (т.е. адаптер имеет подключение)
- создаём PowerShell скрипт unidentified-to-work.ps1:

# 
# Name: ChangeCategory.ps1
# Copyright: Microsoft 2009
# Revision: 1.0
#
# This script can be used to change the network category of
# an 'Unidentified' network to Private to allow common network
# activity. This script should only be run when connected to
# a network that is trusted since it will also affect the
# firewall profile used.
# This script is provided as-is and Microsoft does not assume any
# liability. This script may be redistributed as long as the file
# contains these terms of use unmodified.
#
# Usage:
# Start an elevated Powershell command window and execute
# ChangeCategory.ps1
#
$NLMType = [Type]::GetTypeFromCLSID('DCB00C01-570F-4A9B-8D69-199FDBA5723B')
$INetworkListManager = [Activator]::CreateInstance($NLMType)

$NLM_ENUM_NETWORK_CONNECTED = 1
$NLM_NETWORK_CATEGORY_PUBLIC = 0x00
$NLM_NETWORK_CATEGORY_PRIVATE = 0x01
$UNIDENTIFIED = "Unidentified network"

$INetworks = $INetworkListManager.GetNetworks($NLM_ENUM_NETWORK_CONNECTED)

foreach ($INetwork in $INetworks)
{
$Name = $INetwork.GetName()
$Category = $INetwork.GetCategory()

if ($INetwork.IsConnected -and ($Category -eq $NLM_NETWORK_CATEGORY_PUBLIC) -and ($Name -eq $UNIDENTIFIED))
{
$INetwork.SetCategory($NLM_NETWORK_CATEGORY_PRIVATE)
}
}

- запускаем PowerShell с правами администратора
- меняем execution policy, чтобы скрипт мог работать: set-executionpolicy remotesigned
- выполняем скрипт unidentified-to-work.ps1
- возвращаем execution policy: set-executionpolicy restricted

вівторок, 25 січня 2011 р.

Интернет на Android без GPRS/EDGE

Для таких как я (которые используют мобильный интернет оператора только тогда, когда он реально нужен, (к примеру, срочно по работе) и не хотят впустую тратить деньги: Киевстар XL берёт 5грн при первом подключении в этот день и дальше 0,05грн/МБ, что будет выливаться минимум в 150грн ежемесячно для того, чтоб иметь свежую погоду и твиттер на своем коммуникаторе, что я считаю излшиним), есть пара решений.

Просто я привык, что на WinMobile интернет автоматически есть, как только я подключил его по USB к своему ноутбуку. Андроид через USB штатно принимать ничего не умеет, раздавать — да, есть варианты.

Короче, вот нашёл статью как получить интернет именно в USB кабеле. Но тут надо получить права root, что мне пока не сильно хочется делать.

Там же в комментариях нашёл упоминания Connectify и Virtual Router. На самом деле обе программы просто интерфейс поверх настроек в Windows 7.
В этой статье очень подробно всё расписано.

Я потратил фактически целый день, пытаясь запустить эту идею. Вроде всё просто: установил, указал настройки, запустил и подключил клиентов. Ан нет. Последний шаг не проходит. Просто клиент пытается подключиться и.. неизвестная ошибка.

Короче, где-то случайно вычитал, что у кого-то завелось после перезагрузки раздающего ноута/компа. Перегружаюсь и сразу же всё работает!

PS: Да, самое главное: на раздающем должен работать Internet Connection Sharing (ICS). Настраивать ничего не нужно, обе софтинки настроят сами.

четвер, 19 серпня 2010 р.

How to Enable CTRL+V Paste in the Windows Command Prompt (+Far)

Некоторые исправляния к первоначальному скрипту: поломалась вставка из буфера обмена в Far.

Поэтому вначале скрипта объявляем группу (все cmd за исключением Far):
GroupAdd, cmd, ahk_class ConsoleWindowClass,,, Far


(обычно до первого определения клавиш, убедитесь в логе AutoHotKey, что группа объявлена)

А затем уже привязка к группе:

#IfWinActive, ahk_group Cmd
^V::
+Insert::
SendInput {Raw}%clipboard%
return
#IfWinActive

вівторок, 17 серпня 2010 р.

How to Enable CTRL+V Paste in the Windows Command Prompt

Ванятка нашёл, за что ему большое спасибо.
CMD я не так часто пользуюсь, всё равно Far намного удобнее ;)

И всё же, если есть удобный и простой способ сделать жизнь проще, почему бы и нет?
Вот он, этот скриптик, единственное — я добавил ещё и комбинацию Shift-Insert:

#IfWinActive ahk_class ConsoleWindowClass
^V::
+Insert::
SendInput {Raw}%clipboard%
return
#IfWinActive

четвер, 12 серпня 2010 р.

AutoHotKey

Ну буду разводить полемику на тему большего количества настроек интерфейса в X-ах по-сравнению с Windows, а расскажу об одной небольшой, но очень полезной программке, которая как раз и позволяет мне иметь дополнительные возможности в интерфейсе Windows.
Сия чудная програмка называется AutoHotKey.
При запуске она радостно прячется в трей и вообще не мешает, но реагирует на определённые события от мыши или клавиатуры и выполняет какие-либо действия.
Вот об этих событиях и действиях далее и пойдёт речь.

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

Итак, поехали!
Начало (в принципе тут ничего существенного: константы, мелкие настройки):


WS_EX_APPWINDOW = 0x40000
WS_EX_TOOLWINDOW = 0x80
GW_OWNER = 4

SetTitleMatchMode RegEx
DetectHiddenWindows, On
SetWinDelay,2


Далее идут события от клавиатуры, Win-Z минимизирует окно:


#z::PostMessage, 0x112, 0xF020,,,A ; 0x112 = WM_SYSCOMMAND, 0xF020 = SC_MINIMIZE


Win-X максимизирует окно:


#x::
WinGet MX, MinMax, A
If MX
WinRestore, A
Else
WinMaximize, A
return


Win-minus (-) закроет приложение:

#-::WinClose, A


Win-PgDown добавить прозрачности окну (заглянуть под окно), но я этой функцией не пользуюсь, да и под Win7, похоже, не совсем работает:

#PgDn::
WinGet, list, List
loop, %list%
{
wid := list%A_Index%
WinGet, es, ExStyle, ahk_id %wid%
if ( ( ! DllCall( "GetWindow", "uint", wid, "uint", GW_OWNER ) and ! ( es & WS_EX_TOOLWINDOW ) )
or ( es & WS_EX_APPWINDOW ) )
WinSet, Transparent, 10, ahk_id %wid%
}
return


Win-PgUp, соответственно, уберёт прозрачность:

#PgUp::
WinGet, list, List
loop, %list%
{
wid := list%A_Index%
WinGet, es, ExStyle, ahk_id %wid%
if ( ( ! DllCall( "GetWindow", "uint", wid, "uint", GW_OWNER ) and ! ( es & WS_EX_TOOLWINDOW ) )
or ( es & WS_EX_APPWINDOW ) )
WinSet, Transparent, 255, ahk_id %wid%
}
return


Объявляем пару функций:

WMove(dx, dy) {
WinGetPos, X, Y, , , A
WinMove, A, , (X + dx), (Y + dy)
}

WResize(dw, dh) {
WinGetPos, , , W, H, A
WinMove, A, , , , (W + dw), (H + dh)
}


Следующие сочетания клавиш перемещают или изменяют размер окна, к примеру Win-Up подвинет окно вверх на 50 пикселей, Shift-Right увеличит ширину на 50 пикселей (модификаторы: # — Win, + &mdash Shift, ^ — Control), не работает с putty (но с ним ничего не работает — он полностью сам управляет окном и перекрывает системные события):

+^#Up::WResize(0, -10)
+^#Down::WResize(0, 10)
+^#Left::WResize(-10, 0)
+^#Right::WResize(10, 0)
+#Up::WResize(0, -50)
+#Down::WResize(0, 50)
+#Left::WResize(-50, 0)
+#Right::WResize(50, 0)
^#Up::WMove(0, -10)
^#Down::WMove(0, 10)
^#Left::WMove(-10, 0)
^#Right::WMove(10, 0)
#Up::WMove(0, -50)
#Down::WMove(0, 50)
#Left::WMove(-50, 0)
#Right::WMove(50, 0)


Как оказалось для меня, управление окнами с клавиатуры — очень полезная вещь!

Далее запуск приложений: Win-S — Far Manager и т.д.

#s::Run, "C:\home\share\quicklaunch\FAR manager.lnk"
#v::Run, gvim.exe
#j::Run, c:\home\bin\eject.exe
#c::Run, c:\windows\system32\calc.exe


В давние времена я пользовался Thunderbird:

#m::
SetTitleMatchMode, 2
Process, Exist, Thunderbird.exe
if %ErrorLevel% = 0
{
Run, c:\usr\thunderbird\thunderbird.exe
WinWait, Thunderbird
WinShow, Thunderbird
}
;#WinActivateForce
IfWinNotActive, Thunderbird
{
WinActivate, Thunderbird,
;WinWaitActive, Thunderbird,
;WinActivateBottom, Thunderbird
;WinWaitActive, .* - Thunderbird
}
return


.. и Оперой:

#w::
IfWinExist, Opera
WinActivate
else
Run, c:\Program Files\Opera\opera.exe
return


Запуск Outlook (или из трея вытащить), плюс Win-Ctrl-t покажет окно для ввода новой задачи:

#o::
IfWinExist, .* - Microsoft Outlook
WinActivate
else
Run, "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE"
return
^#t::Run, "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE" -c ipm.task


Win-y запустит (или вытащит — грубо, но работает) Skype из трея (хотя сам Skype клавиатурой практически не управляется):

#y::Run, C:\Program Files\Skype\Phone\Skype.exe


Для размонтирования флешек или внешних винтов использую USB Disk Eject (Win-u)

#u::
Process, Exist, USB_Disk_Eject.exe
if %ErrorLevel% = 0
{
Run, C:\usr\USB-disk-eject\USB_Disk_Eject.exe
WinWait, Safely Remove USB Disks
WinShow, Safely Remove USB Disks
}
IfWinNotActive, Safely Remove USB Disks
{
WinActivate, Safely Remove USB Disks
}
return


Который теперь спокойно закрывается по Escape (а не Alt-F4):

~Escape::
IfWinActive, Safely Remove USB Disks
WinClose
return


Работа в X-Window быстро меня приучила к использованию Caps-Lock для переключения раскладок, и стандартные Alt-Shift или Ctrl-Shift в Windows меня абсолютно не привлекают. Далее код, который переключает состояние Caps Lock по нажатию Shift-CapsLock, а раскладки переключает просто по CapsLock:

;; Toggle CapsLock state on Shift-CapsLock
+CapsLock::
state := GetKeyState("Capslock", "T")
if state
SetCapsLockState, Off
else
SetCapsLockState, On
return

;; Switch language on CapsLock
CapsLock::
SetStoreCapslockMode, Off
Send {LAlt down}{Shift}{LAlt up}
return


Опять же, работа в X-Window также приучила к тому, что намного быстрее перетащить окно, если зажать Alt, а затем левую кнопку мыши, если курсор внутри этого окна, чем пытаться навести курсор мыши на заголовок окна, а также Alt плюс правая кнопка мыши будет менять размер этого окна:

; http://www.autohotkey.com/docs/scripts/EasyWindowDrag_(KDE).htm

CoordMode,Mouse
return

!LButton::
CoordMode, Mouse ; Switch to screen/absolute coordinates.
MouseGetPos, EWD_MouseStartX, EWD_MouseStartY, EWD_MouseWin
WinGetPos, EWD_OriginalPosX, EWD_OriginalPosY,,, ahk_id %EWD_MouseWin%
SetTimer, EWD_WatchMouse, 10 ; Track the mouse as the user drags it.
return

EWD_WatchMouse:
GetKeyState, EWD_LButtonState, LButton, P
if EWD_LButtonState = U ; Button has been released, so drag is complete.
{
SetTimer, EWD_WatchMouse, off
return
}
GetKeyState, EWD_EscapeState, Escape, P
if EWD_EscapeState = D ; Escape has been pressed, so drag is cancelled.
{
SetTimer, EWD_WatchMouse, off
WinMove, ahk_id %EWD_MouseWin%,, %EWD_OriginalPosX%, %EWD_OriginalPosY%
return
}
; Otherwise, reposition the window to match the change in mouse coordinates
; caused by the user having dragged the mouse:
CoordMode, Mouse
MouseGetPos, EWD_MouseX, EWD_MouseY
WinGetPos, EWD_WinX, EWD_WinY,,, ahk_id %EWD_MouseWin%
SetWinDelay, -1 ; Makes the below move faster/smoother.
WinMove, ahk_id %EWD_MouseWin%,, EWD_WinX + EWD_MouseX - EWD_MouseStartX, EWD_WinY + EWD_MouseY - EWD_MouseStartY
EWD_MouseStartX := EWD_MouseX ; Update for the next timer-call to this subroutine.
EWD_MouseStartY := EWD_MouseY
return

!RButton::
CoordMode, Mouse
MouseGetPos, Resize_PrevX, Resize_PrevY, Resize_Win
WinGetPos, Resize_OrigX, Resize_OrigY, Resize_OrigW, Resize_OrigH, ahk_id %Resize_Win%
SetTimer, Resize_Watch, 10
return

Resize_Watch:
GetKeyState, Resize_RB, RButton, P
if Resize_RB = U
{
SetTimer, Resize_Watch, off
return
}
GetKeyState, Resize_Esc, Escape, P
if Resize_Esc = D
{
SetTimer, Resize_Watch, off
WinMove, ahk_id %Resize_Win%,, %Resize_OrigX%, %Resize_OrigY%, %Resize_OrigW%, %Resize_OrigH%
return
}
CoordMode, Mouse
MouseGetPos, Resize_MouseX, Resize_MouseY
WinGetPos, ,, Resize_WinW, Resize_WinH, ahk_id %Resize_Win%
SetWinDelay, -1
WinMove, ahk_id %Resize_Win%,, Resize_OrigX, Resize_OrigY, Resize_WinW + Resize_MouseX - Resize_PrevX, Resize_WinH + Resize_MouseY - Resize_PrevY
Resize_PrevX := Resize_MouseX
Resize_PrevY := Resize_MouseY
return


Вот собственно и всё ;)
Очень много полезных скриптов можно найти в интернете — дерзайте!

понеділок, 19 липня 2010 р.

редактирование реестра запрещено администратором системы

Бывает такая ситуация, когда на Windows XP Home всплывает такое сообщение при попытке запуска редактора реестра.
Помогло вот это решение (gpedit.msc в Home версии недоступен):
— Task Manager:
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f


— Registry Editor
REG add HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System /v DisableRegistryTools /t REG_DWORD /d 0 /f


Вышеперечисленный код нужно просто выполнить (Start -> Run или Win-R).

неділя, 18 жовтня 2009 р.

Win 7, проба первая

Как-то вдруг выяснилось, что на домашнем компе MediaPortal не может играть .ts (да и не только он, явно дело в кодеках), плюс уж очень он был забит всяким ненужным, а тут мне ещё и rmrf в ухо шепчет, что Win 7 нынче это самое из самых... решился переустановить.

Сама-то система вроде установилась нормально, но дальше дело стало. Видео не поддерживается, драйверов для ATI Radeon 9200 нет (можно вот так, и я так и сделал и регулярно видел BSOD при завершении работы), дальше — веселее: ни для встроенного звука, ни для SB Live! драйверов тоже найти не смог.

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

Посему установил Win XP Pro SP3 и всё стало хорошо ;)
А вы всё Win 7, да Win 7.