пятница, 23 марта 2018 г.

Памятка. Последние (не точно последние) версии программ которые работают в Windows XP

1. Java RE 7u80
2. Chrome Browser 49.0.2623.112
3. Skype 7.36.0.150
- Чтобы Skype заработал необходимо чтобы на компьютере было установлено обновление WINDOWSXP-KB936929-SP3-X86-RUS и IE8-WindowsXP-x86-RUS
4. Tree Size Free 3.45.343
5. Daemon Tools Lite 4.40.2.0131
6. TeamSpeak 3.0.19.4
7. Microsoft Visual Studio 2010 Express
8. FileZilla 3.5.3
9. Firefox ESR 52.7.3
10. XAMPP 1.8.0
11. VLC Player 2.2.8 (Правильно работает всплывающая панель управления плеера в полноэкранном режиме)
12. LibreOffice 5.4.7.2
13. Gimp 2.8.22
14. WireShark 1.10.14
15. TortoiseHg 3.9.0
16. TeamViewer 13
17. Geany 1.27
18. foobar2000 1.3.17
19. RaidCall 8.2.0

понедельник, 5 марта 2018 г.

Написание VBA макросов в LibreOffice

Внимание! Написание макроса выполнялось в LibreOffice 4.4.3.2 и Windows XP.

Запустите LibreOffice Calc. Выберите пункт меню Сервис -> Макросы -> Управление макросами -> LibreOffice Basic

В окне Макросы Libre Office BASIC в поле "Имя макроса" пишем "Main". В поле "Макрос из" выбираем "Мои макросы" - "Standard" и нажимаем кнопку "Создать". Смотрите рисунок 1.

Рисунок 1. Окно макросы LibreOffice Basic

В окне Новый модуль задаем название "Module1" и нажимаем кнопку "OK". Смотрите рисунок 2.

Рисунок 2. Создание нового модуля

Далее в окне редактора макрасов LibreOffice Basic приступаем к созданию диалога и написанию макроса. Смотрите рисунок 3.

Рисунок 3. Редактор макросов LibreOffice Basic

Сам модуль Module1 с главной процедурой Main у нас созданы. Чтобы создать диалог выберите в редакторе макросов LibreOffice Basic пункт меню Сервис -> Макросы -> Управление диалогами...

Выбираем вкладку "Диалоги". В разделе "Диалог" выбираем "Мои диалоги" -> "Standard" и нажимаем кнопку "Создать". Смотрите рисунок 4.

Рисунок 4. Создание диалога макроса

В окне Новый диалог задаем название "Dialog1" и нажимаем кнопку "OK". Смотрите рисунок 5. Потом кнопку "Закрыть" окна Управление макросами LibreOffice Basic.

Рисунок 5. Создание нового диалога

Далее в окне редактора макросов LibreOffice Basic дважды нажимаем на нашем только что созданом диалоге с именем "Dialog1", смотрите цифру 1 на рисунке 6. После этого откроется визуальный редактор диалога, смотрите цифру 2 на рисунке 6.

Рисунок 6. Редактор диалога LibreOffice Basic

Теперь перенесите на наш диалог визуальный элемент под именем метка и визуалный элемент кнопка. Визуальные элементы можно перетащить из панели визуальных элементов, смотрите цифру 3 на рисунке 6.

Если выделить визуальный элемент Метку, то откроется набор свойств данного элемента. Через эти свойства можно настроить элемент. Присвоим имя lblNow элементу метка и текст оставим пустым. Для элемента кнопка имя присвоем OKButton и текст зададим OK. Смотрите цифры 1,2,3 рисунка 7.

Рисунок 7. Добавление визуальных элементов в редакторе диалогов LibreOffice Basic

Как я писал выше, модуль Module1 с главной процедурой Main создана (смотрите рисунок 8), но она еще не заполнена.

Рисунок 8. Добавляем исходный код макроса

Процедура Main является основной, в ней мы загружаем диалоговое окно с именем Dialog1, это следующие строчки кода:

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)

Формируем строку с текущей датой и временем, это следующие строчки кода:

Dim strNow As String

strNow = Format(Now(), "yyyy-mm-dd ")
strNow = strNow + Format(Time(), "hh:mm")

Присваеваем строку с датой и временем визуальному элементу метка с именем lblNow, это следующие строчки кода:

Dim clblNow As Object

clblNow = Dlg.getControl("lblNow")
clblNow.Text = strNow

Последней строчкой кода в процедуре Main мы выполняем диалоговое окно с именем Dialog1:

Dlg.Execute()

Есть еще одна процедура, ее имя OKButton_execute, это событийная процедура, она выполняется в момент нажатия кнопки с именем OKButton, и выполняет она закрытие диалогового окна с именем Dialog1, это следующая строчка кода:

Dlg.endExecute()

Теперь присвойте процедуру с именем OKButton_execute кнопке с именем OKButton как событие на "Отпускание клавишы мыши". Для этого откройте визкальный редактор диалога Dialog1, смотрите цифру 1 на рисунке 9. Выделите Кнопку с именем OKButton и перейдите на вкладку "События", смотрите цифру 2 на рисунке 9. В событие "Отпускание клавиши мыши" укажите процедуру с именем OKButton_execute, нажав конопку с тремя точками, смотрите цифру 3 на рисунке 9. 

Рисунок 9. Назначение события кнопке ОК

Все необходимое для запуска макроса мы сделали. Для начала посмотрим что у нас делает макрос. Под цифрой 2 рисунка 10 вы видите созданное диалоговое окно с отображаемой текущей датой и временем. Если нажать кнопку OK, то диалоговое окно закроется.

Рисунок 10. Окно нашего макроса

Далее рассмотрим все варианты запуска нашего макроса по порядку. 

1. Запуск макроса из редактора макросов LibreOffice Basic.Откройте в редакторе макросов LibreOffice Basic наш код и выполнтите его нажав клавишу F5 или нажав на кнопку выполнения макроса, смотрите цифру 1 рисунка 10.

2. Запуск макроса из диалогового окна "Выбор макроса", смотрите цифру 1 на рисунке 11. В диалоговом окне нам нужно выбрать наш макрос и нажать кнопку "Выполнить", смотрите цифру 2 на рисунке 11. 

Рисунок 11. Запуск макроса из диалога "Выбор макроса"


3. Запуск макроса из меню и подменю в приложениях LibreOffice Calc или LibreOffice Writer, смотрите цифру 0 рисунка 12. Для создания меню и подменю выберите пункт меню "Сервис" и подменю "Настройка", смотрите цифры 1 и 2 рисунка 12. В диалоговом окне "Настройка" на вкладке "Меню" нажмите кнопку "Создать...", введите имя нашего меню (например "Макросы"), смотрите цифру 3 рисунка 12. Чтобы создать подменю нашего меню "Макросы" нажмите кнопку "Добавить..." (смотрите цифру 4 рисунка 12.). 

Рисунок 12. Запуск макроса из меню и подменю в приложениях LibreOffice Calc или LibreOffice Writer

Потом в диалоговом окне "Добавить команды" выберите команду которая будет выполнятся при выборе нашего подменю (смотрите цифры 1 и 2 рисунка 13), т.е. мы выбираем наш макроc с именем Main. 

Рисунок 13. Добавляем команду для подменю

Переименуйте наше подменю выбрав пункт меню "Переименовать..." кнопки "Изменить"  диалогового окна "Настройка" вкладки "Меню" (смотрите цифры 1,2,3,4 рисунка 14). Подменю назовите "Макрос окно с датой".

Рисунок 14. Переименование подменю

4. Запуск макроса в приложениях LibreOffice Calc или LibreOffice Writer по нажатию сочетания клавиш на клавиатуре. Для это откройте диалог "Настройка" и выбирите вкладку "Клавиатура" (смотрите цифру 1 рисунка 15). Потом выбираем команду, которая является нашим макросом с именем "Main" (смотрите цифру 2 рисунка 15). Потом выбираем свободную комбинацию клавиш и назначаем их нашей команде, т.е. макросу с именем Main (смотрите цифры 3,4,5 рисунка 15).

Рисунок 15. Назначение комбинации клавиш для запуска макроса

5. Запуск макроса в приложениях LibreOffice Calc или LibreOffice Writer по нажатию кнопки на панели инструментов (смотрите цифру 4 рисунка 16). Для создания кнопки на панели инструментов выберите пункт меню "Сервис" и подменю "Настройка", смотрите цифру 1 рисунка 16. В диалоговом окне "Настройка" на вкладке "Панели инструментов" нажмите кнопку "Создать...", введите имя нашей панели инструментов (например "Панель макросов"), смотрите цифру 2 рисунка 16. Чтобы создать кнопку на панели инструментов нажмите кнопку "Добавить..." (смотрите цифру 3 рисунка 16). 

Рисунок 16. Запуск макроса из панели инструментов

Потом в диалоговом окне "Добавить команды" выберите команду которая будет выполнятся при нажатие по нашей кнопке нашей панели инструментов  (смотрите цифры 1 и 2 рисунка 13), т.е. мы выбираем наш макроc с именем Main. 

 Переименуйте нашу кнопку нашей панели инструментов выбрав пункт меню "Переименовать..." кнопки "Изменить"  диалогового окна "Настройка" вкладки "Панели инструментов" (смотрите цифры 1,2,3,4 рисунка 17). Кнопку назовите "Макрос окно с датой".

Рисунок 17. Переименование кнопки панели инструментов

6. Запуск макроса в приложениях LibreOffice Calc или LibreOffice Writer в ответ на какое-то событие, например события запуска приложения. Таким образам наш макрос выполняется когда запускается приложение LibreOffice Calc или LibreOffice Writer. Для создания события выберите пункт меню "Сервис" и подменю "Настройка", смотрите цифру 1 рисунка 18.  В диалоговом окне "Настройка" на вкладке "События" выберите событие "Запуск приложения" и нажмите кнопку "Макрос...", смотрите цифру 2 рисунка 18.

Рисунок 18. Назначение события для запуска макроса

Далее выберите макрос Main в окне "Выбор макроса" (смотрите цифры 1,2,3 рисунка 19). 

Рисуной 19. Диалог выбора макроса

Перезапустите приложение LibreOffice Calc или LibreOffice Writer и вы увидете что наш макрос запускается.

Ниже размещен полный код макроса.

REM  *****  BASIC  *****

Dim Dlg As Object

Sub OKButton_execute 
Dlg.endExecute()
End Sub


Sub Main

DialogLibraries.LoadLibrary("Standard")
Dlg = CreateUnoDialog(DialogLibraries.Standard.Dialog1)
Dim strNow As String
strNow = Format(Now(), "yyyy-mm-dd ")
strNow = strNow + Format(Time(), "hh:mm")
Dim clblNow As Object
clblNow = Dlg.getControl("lblNow")
clblNow.Text = strNow
Dlg.Execute()

End Sub

воскресенье, 4 марта 2018 г.

После запуска Outlook 2016 зависает на этапе "Обработка"

Столкнулся с очередным приколом от Microsoft. Данная проблема в Outlook 2016 проявлялась два или три раза. Если у вас Outlook 2016 при запуске повисает на этапе "Обработка" (смотрите рисунок 1), то может вам поможет следующие решение от Microsoft.

Рисунок 1. Окно запуска Outlook 2016 этап "Обработка"

Зайдите в свойства ярлыка с которого вы осуществляете запуск Outlook 2016. Для этого выделите ярлык и щелкните на нем правой кнопкой мыши, в выпавшем меню выберите пункт меню свойства. В диалоговом окне свойств выберите вкладку "Ярлык". Напротив опции "Запуск" выберите из выподающего списка "Развернутое на весь экран". Нажмите кнопку "Применить" и закройте диалоговое окно свойств ярлыка.

После этой процедуры, при запуске с этого ярлыка, Outlook 2016 будет запускаться нормально.

Идея взята с сайта Microsoft. Microsoft называет это временным решением. Возможно будут обновления, которые исправят эту проблему.

https://support.microsoft.com/az-latn-az/help/3188434/outlook-2016-hangs-at-processing-on-the-start-up-screen

Получение скриншота удаленного рабочего стола Windows при помощи программ psexec и nircmd

1. Скачайте программы PsExec.exe и nircmd.exe с официальных сайтов:

Скачать PsExec.exe https://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx
Скачать nircmd.exe http://www.nirsoft.net/utils/nircmd.html

2. Скопируйте эти программы в папку с именем cmd на диск D. (У меня этот путь D:\cmd\).

3. Пусть IP адрес удаленного компьютера будет 192.168.20.100, так же на удаленном компьютере создана учетная запись administrator с провами администратора и паролем password. Сохранять скриншот на удаленный компьютер будем в папку с именем scr на диске D. (На ужаленном компьютере это путь D:\scr\). Убедитесь что эта папка создана. Имя файла скриншота будет screenshot.png

4. Откройте командную строку, перейдите в директорию d:\cmd. Для этого введите команду перехода на другой раздел cd /d d:\cmd

5.Теперь выполните в командной строке следующую команду

PsExec.exe \\192.168.20.100 -u administrator -p password -i -c nircmd.exe savescreenshotfull d:\scr\screenshot.png

6. Ну вот и все. На удаленном компьютере по пути d:\scr\ вы найдете файл screenshot.png со снимком экрана удаленного компьютера.

7. Идея взята с сайта http://rawtechnology.blogspot.ru/2012/11/take-screenshot-of-remote-computer-with.html