За месяц Июль, 2009

Управление окнами windows из консоли

Захотелось мне как-то с окнами поиграться… Чтобы бегали они по монитору… Если быть точным - по нескольким мониторам…

Ну а, если уж совсем точным быть - чтобы несколько программ запускались в нескольких мониторах, и разворачивались на весь экран в этих мониторах… И чтоб всё это было без человеческого участия.. Ну или с минимальным… Зеленая кнопка. Одна. И не больше. :)

Маленькое “но”. Сохранение позиции, открытие программы в нужном мониторе (разворачивание на весь экран) и закрытие… не приводили к желаемому результату - После повторного запуска, программа все равно запускалась на “основном” мониторе…

Мониторы все расположены “горизонтально”.. То есть чисто теоретически задача должна свестись к смещению окна вправо на ширину монитора * (номер монитора-1) и разворачиванию на весь экран.

Недолгие поиски увенчались успехом. Утилита cmdow.exe позволяет кроме этих двух “оконных операций” производить еще более десятка управляющий и действий с окнами windows из консоли.

Опции запуска программы cmdow.exe разделены на четыре группы:

1. Получение информации об окнах
2. Групповые операции с окнами
3. Управление отдельным окном
4. Запуск приложений при помощи Cmdow

Краткий, но достаточный для работы “help” зашит в саму программу - ознакомиться с ним можно, выполнив программу с параметром:
cmdow.exe /?

CMDOW [window | /T] [/B] [/F] [/P]
CMDOW /TH | /TV | /MA | /CW | /UW | /AT | /FS | /WM
CMDOW window {[/ACT] [/INA] [/ENA] [/DIS] [/VIS] [/HID] [/MIN] [/MAX] [/RES]
[/TOP] [/NOT] [/REN caption] [/MOV left top] [/SIZ width height] [/CLS]
[/END]}
CMDOW /RUN [state] file [args]

window  List specified window (if omitted, all windows are listed).
/T      List windows only shown on the taskbar.
/B      List windows using bare format (no heading information).
/F      List windows showing full information (don't truncate any fields).
/P      List windows showing position and size (left, top, width and height).

/TH     Tile windows horizontally.    /TV     Tile windows vertically.
/MA     Minimize all windows.         /CW     Cascade windows.
/UW     Undo tile/minimize/cascade.   /AT     Intelligent [Alt]-[Tab]
/FS     Switch to full screen mode.   /WM     Switch to window mode.

/ACT    Activate specified window.    /INA    Inactivate specified window.
/ENA    Enable specified window.      /DIS    Disable specified window.
/VIS    Unhide specified window.      /HID    Hide specified window.
/MIN    Minimize specified window.    /MAX    Maximize specified window.
/RES    Restore specified window.     /REN    Rename specified window.
/TOP    Make window always on top.    /NOT    Make window not always on top.
/MOV    Move specified window.        /SIZ    Resize specified window.
/CLS    Close specified window.       /END    Kill process linked to window.

/RUN    Executes or opens specified file using associated application.
state   Initial show state of window (/MIN, /MAX or /HID). Default is normal.
args    Optional commandline arguments passed to launched application.

Specify a window by its caption (case insensitive) or handle in hex format.
The At symbol '@' may be used to refer to this window. For more help on any
parameter use CMDOW /?
<parameter>. Eg CMDOW /? /RUN or CMDOW /? window.</parameter>

Как и следовало ожидать, перемещение окна и увеличение на весь экран приводит к его разворачиванию в нужном мониторе:
start “Программа второго монитора”
ping 127.0.0.1 -n 3 >nul
cmdow.exe “Программа второго монитора” /MOV 1280 0
cmdow.exe “Программа второго монитора” /MAX
Пинг во второй строке выполняет функцию задержки - для запуска программы требуется некоторое время. Если CMDOW не найдет нужное окно, она выдаст ошибку в консоль, но выполнение дальнейших команд продолжится.
Поместив аналогичные строки для каждой программы в нехитрый bat-файл, получаем “Зеленую кнопку”, которая запускает и расставляет приложения по нескольким мониторам “на весь экран”.

Опубликовано Июль 22, 2009 | автор: levik  |  Комментарии (2) »

Синхронизация контактов КПК и телефона через Outlook на компьютере

Бывает, что нужно синхронизировать контакты двух телефонов (Pocket PC/КПК и телефона). Один из наиболее простых вариантов - синхронизация через “посредника” - компьютер с установленным MS Outlook (возможно, подойдет и просто Outlook, который входит в комплект MS Windows).

подключение к компьютеру телефона и КПК (PDA)

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

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

Программное обеспечение для синхронизации контактов с компьютером

Для синхронизации контактов КПК и настольного  компьютера удобно воспользоваться программным обеспечением MS Active Sync, которое можно бесплатно скачать с сайта производителя. При подключении устройства программа автоматически распознает его и выполнит синхронизацию КПК и компьютера в соответствии с заданными настройками. Настройки для синхронизации задаются при первом подключении КПК.

Синхронизацию контактов телефона и компьютера можно производить программным обеспечением от производителя (если такое поставляется в комплекте или есть на сайте), либо сторонними программами, которые поддерживают данную модель телефона. Одной из таких программ является MOBILedit! Программа условно-бесплатная (shareware).

Проводя синхронизацию компьютера с одним устройством (например, КПК), затем - с другим (телефоном), а после - опять с КПК, получим три почти одинаковых адресных книги. Почему “почти”?

Особенности синхронизации контактов КПК и телефона

В адресной книге КПК отсутствует поле Other Phone (телефон “другой”). Какие поля достуны на телефоне, можно посмотреть в спецификации телефона или в инструкции. В зависимости от модели и производителя они могут различаться. Эту особенность следует учитывать при синхронизации контактов - на КПК поле “другой телефон” просто не будет перенесено.

Возникли проблемы при синхронизации контактов? Пишите в комментарии…

При синхронизации контактов телефона и КПК, обнаружил, что телефоны, сохраненные в ячейке “Другой” (Other phone) на КПК недоступны.

Синхронизацию делал через Настольный компьютер - там всё в порядке (правда “Другой” телефон по умолчанию не отображается, но это исправляется довольно легко -  настройкой колонок, если вид “Список телефонов”, или “отображать пустые поля”, если вид “Визитных карточек”…)

Сначала думал, что на КПК поле “другой телефон” тоже где-то запрятано. После неудачных поисков по “Контактам”, менеджерам контактов (Pocket Informant, Agenda), которые всего-навсего являются надстройками-оболочками для удобного управления теми же контактами Windows Mobile.

После длительных поисков по интернету (поиск по словам “контакт другой телефон”, “адресная книга поле другой телефон” и похожим, выводил много интересного… но не то, что нужно…) все-таки смирился с тем, что придется уходить от поля “Другой телефон”, или жертвовать синхронизацей.
http://www.handy.ru/board/viewtopic.php?t=67348&view=previous

Опубликовано Июль 16, 2009 | автор: levik  |  Нет комментариев »

Пропали сетевые подключения - что делать?

Что делать, если заходишь в “Сетевые подключения”, а там - пусто… Нет, они не то, чтобы пропали совсем - сеть, похоже работает… иногда.. а может и нет.. В общем, непонятно. Итак, пропали сетевые подключения…

На всякий случай, проверяем еще раз - Пуск - Настройка - Сетевые подключения … и.. пусто

Мне помогло следующее (найдено на просторах интернета):
1. Открываем редактор реестра.
2. Проходим до раздела:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network
3. Экспортируем его (на всякий случай) - правой кнопкой мыши на подразделе Network, выбираем пункт “Экспорт” и сохраняем раздел реестра в файле.
4. Выделяем подраздел Network и удаляем параметр Config. Сам подраздел Network не удаляем. Параметр Config будет заново создан после перезагрузки компьютера.
5. Перезагружаемся жестким ресетом… (выключаем вручную, т.е. кнопкой)

Возможно, причина другая - на сайте производителя целая статья:
http://support.microsoft.com/kb/825826/ru

Опубликовано Июль 11, 2009 | автор: levik  |  Нет комментариев »

javascript изменяем свойство action формы - объекта form

Потребовалось перед отправкой формы изменить “адресат” - action у формы. По идее ничего сложного -
document.form1.action = 'new_address.html';
или аналогичные

document.getElementById('form1').action = 'new_address.html';
document.forms[0].action = 'new_address.html';

однако, такого рода конструкция работает везде, кроме internet explorer…
Объясняется это тем, что в IE нет различий между свойствами и атрибутами.
Поиск подсказал, что для изменения action у формы можно использовать setAttribute
document.form1.setAttribute("action","'new_address.html")
Но и в этом случае, internet explorer не порадовал.
Однако, различия, все-таки обнаружены - оба варианта для internet explorer:
- для случая “form1.action = …” браузер выдал ошибку “object doesn’t support …”;
- для случая “form1.setAttribute();” ie отправляет по старому адресу;

После очередной порции поисков по интернету, размышления над JavaScript мануалами изобразил что-то вроде:

o=document.getElementById('form1');
o.setAttribute("action","new_address.html"); // в IE "пустышка", но ошибку не выдает
// рабочая конструкция для IE - изменяет action для формы путем перебора всех атрибутов
for (var i=0; i < o.attributes.length; i++) {
if (o.attributes[i].nodeName == 'action') {
o.attributes[i].nodeValue = 'new_address.html';
break;
}
}

Понимаю, что решение далеко от идеального, однако, работает :)
Да здравствует IE!..
ps. В очередной раз встает вопрос “А для кого стандарты?” :)

Опубликовано Июль 1, 2009 | автор: levik  |  Комментарий (1) »