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

пятница, 25 октября 2024 г.

Запуск UltraVNC сервера на удаленном компьютере в локальной сети через PsExec

Есть такой программный комплекс LANDesk Remote Control, который используется для удаленного подключения к компьютерам в локальной сети. Данная программа состоит: 

- из программы LANDesk Remote Control Agent - это агент, который устанавливается на все компьютеры к которым нужно подключаться.  
- из программа LANDesk Remote Control Viewer – это удаленный просмоторщик, с помощью неё мы подключаемся к нужному компьютеру, где установлен агент.
- из  LANDesk Remote Control Console — это консоль управления, что-то вроде каталога базы данных, куда агенты посылают информацию о компьютерах.

Данный программный комплекс можно использовать по назначению, но есть несколько проблем, которые я бы хотел перечислить:

1) Агент бывает иногда некорректно устанавливается на компьютер
2) Каталог базы данных бывает иногда глючит и не может корректно общаться с агентом
3) Агент иногда теряет связь с каталогом базы данных

Данные проблемы с горем пополам удается решить, но на решение данных проблем уходит большое количество времени от 30 минут до 4 часов в зависимости от характеристик компьютера.

По этой причине мне пришлось искать другие решения для удаленного управления компьютерами в локальной сети. Пора научиться пользоваться программой под названием UltraVNC.

Поискав в Google информацию по настройке сервера UltraVNC я наткнулся на сайт, где рассказывается как можно автоматизировать установку и настройку сервера UltraVNC. Вот это ссылка. На основе этой статьи я написал свои batch файлы для автоматизации развертывания сервера UltraVNC и по необходимости его удаление.           

Первым делом качаем портативную версию UltraVNC с официального сайта она поставляется в заархивированном виде (ZIP файл) https://uvnc.com/component/jdownloads/summary/470-ultravnc-1-4-6-zip.html . На момент написания статьи последняя версия представленная на официальном сайте 1.4.3.6 версия. На всякий случаю оставлю ссылку на главную страницу скачивания UltraVNC https://uvnc.com/downloads/ultravnc.html . Распакуйте архив и вы увидите в нем UltraVNC для платформы x86 и x64. Тут принцип простой если вы подключаетесь к компьютеру с 32-х битной системой Windows, то используйте сервер UltraVNC (winvnc.exe) из папки x86, если вы подключаетесь к компьютеру с 64-х битной системой Windows, то используйте сервер UltraVNC (winvnc.exe) из папки x64. Теперь запустите у себя на компьютере файл winvnc.exe из папки x86 или х64 в зависимости от разрядности вышей Windows. В результате этого у вас откроется окно показанное на рисунке 1.

Рисунок 1. Настройка сервера UltraVNC

В этом окне необходимо выполнить два действия:

1) Установить разные пароли для режима управления и режима просмотра удаленного компьютера (Смотрите рисунок 1 цифра 1)
2) Установить опцию отключения значка в трее на панели задач рядом с часами (Смотрите рисунок 1 цифра 2)
Нажмите кнопку Apply и Ok для сохранения всех настроек сервера UltraVNC в файл UltraVNC.ini.

Так же скачайте утилиту PsExec с официального сайта Microsoft по этой ссылке. Или по прямой ссылке. Достаем из архива файл PsExec.exe сохраняем его в папку cmd2 на диске F или в другую любую папку на ваш выбор. За одно в папку cmd2 копируем файл winvnc.exe и файл UltraVNC.ini.  

Переходим к написанию batch файлов.  В папке cmd2 создайте файл uvnc.bat и файл uvnc_del.bat.

Важно! У вас должны быть права администратора на удаленном компьютере. Файлы uvnc.bat и uvnc_del.bat необходимо запускать в командной строке Windows. Синтаксис запуска скриптов следующий: 

 uvnc.bat pc01
 uvnc_del.bat pc01

pc01 - это имя удаленного компьютера, куда вы запускаете сервер UltraVNC.    

Содержимое файла uvnc.bat c комментариями:

@echo off
cls

net use O: /delete /y

if exist \\%1\C$\Temp\ (
   net use O: \\%1\C$\Temp
) else (
  net use O: \\%1\C$
  mkdir O:\Temp
  net use O: /delete /y
  net use O: \\%1\C$\Temp
)
mkdir O:\uvnc
copy "%~d0%~p0\winvnc.exe" "O:\uvnc" /y
copy "%~d0%~p0\UltraVNC.ini" "O:\uvnc" /y

psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -install

pause 

Комментарий по коду выше:
net use O: /delete /y (Удаляем сетевой диск O: если он существует)

if exist \\%1\C$\Temp\ (Этой строкой проверим существует ли на удаленном компьютере папка Temp в корне диска C, где %1 — автоматически подставится имя удаленного компьютера)
Если папка Temp существует, то строкой  net use O: \\%1\C$\Temp создаем сетевой диск O, который указывает на папку C:\Temp на удаленном компьютере.  
Если папка Temp не существует, то строкой  net use O: \\%1\C$ создаем сетевой диск O, который указывает в корень диска C на удаленном компьютере, строкой mkdir O:\Temp на сетевом диске O: создаем папку Temp, строкой net use O: /delete /y удаляем сетевой диск O:, строкой  net use O: \\%1\C$\Temp создаем сетевой диск O, который указывает на папку C:\Temp на удаленном компьютере.
Строкой  mkdir O:\uvnc создадим папку uvnc на сетевом диске O.

Строками
copy "%~d0%~p0\winvnc.exe" "O:\uvnc" /y
copy "%~d0%~p0\UltraVNC.ini" "O:\uvnc" /y      
скопируем из папки F:\cmd2 файл winvnc.exe и файл UltraVNC.ini в папку uvnc на сетевом диске O. (%~d0%~p0 — это строка означает путь откуда выполняется скрипт uvnc.bat, в частности это F:\cmd2)

Строками
psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -install

мы на удаленном компьютере останавливаем службу uvnc_service сервера UltraVNC (psexec \\%1 net stop uvnc_service), потом выгружаем на удаленном компьютере процессы из памяти с именем winvnc если такие имеют место быть (psexec \\%1 "taskkill.exe" /f /im winvnc*), потом устанавливаем на удаленном компьютере сервер UltraVNC в виде службы с именем uvnc_service (psexec \\%1 C:\Temp\uvnc\winvnc.exe -install).

Содержимое файла uvnc_del.bat c комментариями: 

@echo off
cls

psexec \\%1 net stop uvnc_service
psexec \\%1 "taskkill.exe" /f /im winvnc*

psexec \\%1 C:\Temp\uvnc\winvnc.exe -uninstall

del /q O:\uvnc\*
rd O:\uvnc

net use O: /delete /y
pause  

Строкой psexec \\%1 net stop uvnc_service мы на удаленном компьютере останавливаем службу uvnc_service сервера UltraVNC.
Строкой psexec \\%1 "taskkill.exe" /f /im winvnc* выгружаем на удаленном компьютере процессы из памяти с именем winvnc если такие есть.
Строкой psexec \\%1 C:\Temp\uvnc\winvnc.exe -uninstall удаляем на удаленном компьютере службу с именем uvnc_service

Строкой del /q O:\uvnc\* удаляем на удаленном компьютере все файлы в папке uvnc на сетевом диске O.
Строкой rd O:\uvnc удаляем на удаленном компьютере папку uvnc на сетевом диске O.
Строкой net use O: /delete /y удаляем сетевой диск O: если он существует.

Всё. Как только сервер UltraVNC заработает на удаленном компьютере, то вам останется запустить vncviewer.exe программу удаленный просмоторщик, ввести имя удаленного компьютера к которому мы хотим подключится, вводим пароль который мы установили при настройке сервера UltraVNC и нажимаем кнопку Connect (Смотрите рисунок 2).

Рисунок 2. Окно программы просмоторщика UltraVNC

В данном примере мы запустили сервер UltraVNC в режиме службы, я пытался запустить также сервер в режиме приложения, но данный режим по какой-то причине не работает, скорее всего не хватает прав, смотрите рисунок 3 как это выглядит при попытке подключения к удаленному компьютеру.
 
Рисунок 3. Просмоторщик UltraVNC запущенный в режиме приложения

понедельник, 7 октября 2024 г.

Проблемы подключения принтеров HP LaserJet P2014 и HP LaserJet P2015 в Windows 10 Pro 64 bit или 32 bit по USB

Сразу скажу, что принтера HP LaserJet P2014, HP LaserJet P2015 с Windows 10 Pro 64 bit или 32 bit дружат плохо (в частности пробовал заставить работать данный принтер на Windows 10 Pro 64 bit 20H2). У меня возникала проблема подключения принтера по USB кабелю. Даже при наличии в Windows предустановленных драйверов на принтер, он не желает устанавливаться ни автоматическом, ни в ручном режимах.

Симптомы проблемы следующие:

- в диспетчере устройств в разделе "Контроллеры USB устройств" вы видите устройство "Поддержка USB принтера", которое висит с восклицательным знаком. Если зайти в свойства этого устройства, то во вкладке общие в секции состояния устройства вы видите код ошибки 10 (Запуск это устройства прервано или остановлено).

Что пробовал делать:

- Переключение принтера в другие свободные USB порты на системном блоке проблему не решает

- Перезагрузка компьютера проблему не решает

- Выключение и включение принтера проблему не решает

Путем долгих часов поиска решения проблемы выяснилось, что для это принтера необходимо установить в Windows 10 Pro 64 bit программу (драйвер порта от HP) который называется Dot4x64.msi (Windows 10 Pro 64 bit) или Dot4x86.msi (Windows 10 Pro 32 bit).

На сайте HP на странице скачивания драйверов к принтеру HP LaserJet 1320 для Windows 10 можно скачать файл (Dot4x86.msi) (Windows 10 Pro 32 bit) и (Dot4x64.msi) (Windows 10 Pro 64 bit). Внимание! Обязательно проверяйте скаченные файлы антивирусом.

Данные принтеры (HP LaserJet P2014, HP LaserJet P2015) в Windows 10 Pro 64 bit после отключения системного блока или перезагрузке самопроизвольно создают порты DOT4USB и создают новый логический принтер с новым именем (добавляется в конце имени Копия 1,2,3..N). Так же наблюдается периодическое отвал этих моделей принтеров от USB разъёма компьютера, что требуется переключение их в другой свободный USB порт, после этого данные модели принтеров будут работать до следующего отвала от USB. Данная проблема наблюдается в Windows 10 Pro 64 bit, замечу что в Windows 7 Pro 32 bit такой проблемы нет, в Winndows 7 данные модели принтеров работают отлично.

четверг, 6 мая 2021 г.

Установка драйвера сканера Mustek BearPaw 2448TA Pro 2 под Windows 7 32 bit и 64 bit

 1. Скачиваем драйвера с официального сайта Mustek по следующей прямой ссылке:

http://ftp3.mustek.com/pub/new/driver/0_Old_BearPaw%20Series/BearPaw%202448TA%20Pro%20II/Windows_Vista/23LV10/web.EXE

Или не по прямой http://ftp3.mustek.com/pub/new/, для этого вам необходимо найти драйвер самостоятельно.

2. Если у вас 64-ая система Windows 7, то вам достаточно запустить в режиме совместимости с Windows Vista скаченный файл web.EXE и установить. После этого сканер должен заработать после перезагрузки компьютера. Должны заработать как twain, так и wia драйвера. Единственное неудобство это то, что сканер Mustek BearPaw 2448TA Pro 2 долго прогревается, так как он ламповый. Прогрев может длиться от 40 до 90 секунд перед каждым запуском сканирования, как и в twain режиме, так и в wia режиме. Если сканер повиснет в процессе сканирования, то отключите питание сканера и опять включите. Потом перезагрузите компьютер. После этого сканирование должно заработать.

 3. Если у вас 32-ая система Windows 7, то вам необходимо сначала установить на свой компьютер программу VirtualBox с официального сайта https://www.virtualbox.org/ и в эту виртуальную машину необходимо установить гостевую операционную систему Windows XP. Потом в гостевой ОС Windows XP необходимо скачать драйвер с официального сайта Mustek по следующей прямой ссылке:

http://ftp3.mustek.com/pub/new/driver/0_Old_BearPaw%20Series/BearPaw%202448TA%20Pro%20II/Windows_Vista/23LV10/web.EXE

и запустить в режиме совместимости с Windows XP и установить. Далее после установки в гостевой ОС Windows XP открываем папку C:\Windows\Temp, в ней находим подпапку WinXP32. Скопируйте папку WinXP32 на флэшку или в общую папку гостевой ОС Windows XP. Также скопируйте папку A12U16KU2, которая расположена в C:\Windows\twain_32\.

Закройте программу VirtualBox, она нам больше не понадобится. Теперь на Windows 7 32 bit запустите в режиме совместимости с Windows Vista файл web.EXE и установите. Перезагрузите компьютер. На Windows 7 32 bit перейдите в папку C:\Windows\twain_32\ и удалите там папку A12U16KU2 и вместо нее скопируйте папку A12U16KU2, которую мы скопировали из Windows XP. Таким образом мы установили Twain - драйвер. Далее в Windows 7 32 bit открываем диспетчер устройств. Щелкаем правой кнопкой мыши на значке «Компьютер» на «Рабочем столе» или в меню «Пуск» щелкаем правой кнопкой мыши на значке «Компьютер» выбираем пункт меню «Управление» (смотрите рисунок 1).


Рисунок 1. Открытие диспетчер устройств

 Так же диспетчер устройств можно открыть из «Панели управления». В диспетчере устройств находим раздел «Другие устройства» и подраздел «USB2.0 Scanner» (смотрите рисунок 2), нажимаем на нем правой кнопкой мыши и выбираем пункт меню «Обновить драйверы...».  


Рисунок 2. Выбор устройства для обновления драйвера

 Далее в окне обновления драйверов нажимаем кнопку «Выполнить поиск драйверов на этом компьютере», потом нажимаем кнопку «Обзор» и указываем папку WinXP32, которую мы скопировали из Windows XP. Нажимаем кнопку «Далее». Таким образом мы установили Wia — драйвер. Перезагрузите компьютер. После этого сканирование должно заработать.

В процесс использования этого сканера могут быть глюки и зависания, так как Mustek по ходу не поддерживают в драйверах для этой модели сканера более новые операционные системы, чем Windows XP. Я рекомендую не мучиться с этой моделью сканера и приобрести какой нибудь новый, современный сканер, только не Mustek, так как с драйверами у них какая-то засада.

суббота, 27 марта 2021 г.

Отличные бесплатные программы для записи CD и DVD дисков, для сканирования в PDF

Small CD Writer - портативная бесплатная программа для записи CD и DVD дисков (смотрите рисунок 1). Скачать можно по следующей ссылке: http://avt-lab.ru/scdwriter.htm

Рисунок 1. Внешний вид программы Small CD Writer

WinScan2PDF - портативная бесплатная программа для сканирования и сохранения отсканированных документов в многостраничный PDF документ (смотрите рисунок 2). Скачать можно по следующей ссылке: http://www.softwareok.com/?seite=Microsoft/WinScan2PDF

Рисунок 2. Внешний вид программы WinScan2PDF

NAPS2 - бесплатная программа для сканирования и сохранения отсканированных документов в многостраничный PDF документ (смотрите рисунок 3). Скачать можно по следующей ссылке: https://www.naps2.com/

Рисунок 3. Внешний вид программы NAPS2

среда, 19 июня 2019 г.

Outlook при запуске выдает сообщение "..Ошибка операции клиента"

При запуске Outlook выдается сообщение «Файл C:\Users\ [Имя пользователя] \AppData\Local\Microsoft\Outlook\Outlook.ost» используется и в данное время недоступен. Закройте использующее файл приложение и повторить попытку. Возможно, потребуется перезагрузить компьютер». (Смотрите рисунок 1)

Рисунок 1. Первое сообщение об ошибке при запуске Outlook

После нажатия на кнопку Ok выдается второе сообщение «Не удается запустить приложение Microsoft Outlook. Невозможно открыть окно Outlook. Невозможно открыть набор папок. Ошибка операции клиента.» (Смотрите рисунок 2). После нажатия на кнопку Ok запуск Outlook не происходит.


Рисунок 2. Второе сообщение об ошибке "..Ошибка операции клиента" 

После нажатия на кнопку Ok запуск Outlook не происходит.

Данная проблема замечена в Outlook 2013 Pro 32 bit, Windows 7 64 bit. Для решения данной проблемы необходимо пересоздать профиль Outlook. Для этого откройте «Панель управления» > далее кнопку «Mail (Microsoft Outlook 2013)» и добавьте новый профиль, выставьте новый профиль по умолчанию. Откройте Outlook заново.

четверг, 16 мая 2019 г.

Перезагрузка компьютера при подключении компьютера к сети или при выборе типа сети под Windows 7 32-64

Несколько раз сталкивался с такой проблемой, что при подключении компьютера к сети или при выборе типа сети «Сеть предприятия» в окне «Настройка сетевого размещения» (Смотрите рисунок 1) компьютер (под управлением Windows 7 32bit и Windows 7 64bit) уходит в перезагрузку.

Рисунок 1. Выбор типа сети в Windows 7

Методом проб и ошибок удалось выяснить, что проблема связана с включённым DEP в Windows 7 или включенным DEP в BIOS компьютера. По крайней мере после отключения DEP в Windows 7 проблема пропала.

Чтобы отключить DEP под управлением Windows 7, то необходимо открыть командную строку от имени администратора и выполнить команду:

bcdedit.exe /set {current} nx AlwaysOff

Когда команда выполнится, то появится сообщение, что «Операция успешно выполнена».  Далее необходимо перезагрузить компьютер.

Чтобы убедится, что DEP отключен, то необходимо:
1. Открыть «Свойства системы»
2. Выбрать пункт «Дополнительные параметры системы»
3. На вкладке «Производительность» нажать кнопку «Настройка»
4. На вкладке «Предотвращение выполнение данных» убедится, что включение DEP запрещена (Смотрите рисунок 2).

Рисунок 2. Отключенный DEP

Если вам понадобится включить DEP, то запустите опять командную строку от имени администратора и выполните следующую команду:

bcdedit.exe /set {current} nx OptIn

Когда команда выполнится, то появится сообщение, что «Операция успешно выполнена».  Далее необходимо перезагрузить компьютер.

Что такое DEP и зачем он нужен можно почитать в Википедии (https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B5%D0%B4%D0%BE%D1%82%D0%B2%D1%80%D0%B0%D1%89%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D1%85).
Команды на отключения и включения взяты из статьи по ссылке (http://netler.ru/ikt/windows7-dep.htm).


Сообщение Microsoft Word "Приложению Word не удалось отобразить нужный шрифт, так как недостаточно памяти или места на жестком диске"

Если после обновления с Windows 7 x64 до Windows 10 x64 при открытии документа Word (Office 365 x64) вы получаете сообщение «Приложению Word не удалось отобразить нужный шрифт, так как недостаточно памяти или места на жестком диске» (Смотрите рисунок 1), то исправить данную проблему можно путем копирования шрифтов из папки C:\Windows\Fonts, с нуля установленной Windows 10 на чистый жесткий диск, в папку C:\Windows\Fonts обновленной Windows 10 с Windows 7. Для копирования шрифтом необходимо загрузится с любого загрузочного Live-DVD. Возможно придется воспользоваться программой Unlocker для того чтобы скопировать заблокированные шрифты.

Рисунок 1. Сообщение Microsoft Word

Дополнение 1: Обновление производилось по сценарию «Обновление на месте до Windows 10 с помощью Configuration Manager».
Дополнение 2: Если файл Excel до обновления с Windows 7 на Windows 10 открывался нормально, то после обновления перестал открываться, зависая с надписью файл не отвечает. И не важно каким Microsoft Office это файл пытаются открыть Office 365 x64-x32 или Office 2016. Это тоже связана с проблемой работы шрифтов в Windows 10. Поэтому необходимо произвести замену шрифтов скопированных с Windows 10 установленной с нуля.

Папки в Outlook отображаются на английском языке

В том случае если вы обновили Microsoft Office на более новую версию и при открытие Outlook папки отображаются на английском языке, то необходимо в командной строке перейти в папку, где у вас расположен файл outlook.exe. Для этого выполните следующую команду:

cd /d C:\Program Files\Microsoft Office\root\Office16 

Теперь из командной строки запустите outlook.exe c параметром resetfoldernames, а потом с параметром resetfolders.

outlook.exe /resetfoldernames

outlook.exe /resetfolders

Перезапустите Outlook и проверьте правильно ли отображаются имена папок в Outlook.

Идеи взяты с сайта https://www.dmosk.ru/polezno.php?review=outlook-en

Использование VBScript’s в проектах Delphi

Внимание! Проект создавался в среде программирование Delphi 7 и в операционной системе Windows 7 64 bit.

1. Зачем это нужно? Язык VBScript широко используется для администрирования операционных систем семейства Windows. Delphi в этом плане более ограничена.

2. Например, если вы не можете получить какой-нибудь результат или какую-нибудь информацию от Windows средствами Delphi, то возможно это сможет VBScript.

3. Таким образом наша задача состоит в том, чтобы под средством VBScript получить какую-то информацию в виде строки, передать эту строку в приложение Delphi и вывести результат.

4. Что мы будем проектировать? Не будем ничего выдумывать и напишем программу в Delphi, которая складывает два числа, вводимые нами с клавиатуры. В программу в Delphi мы вводим только два складываемых числа, эти числа передаются VBScript-скрипту. Скрипт их суммирует и результат сложения передает назад в приложение Delphi.

5. С постановкой задачи все. Самое важное, что нам необходимо сделать это установить и подключить компонент, который занимается запуском VBScript-скрипта, приемом и передачей параметров в скрипт и из него.

6. Чтобы установить компонент необходима выбрать пункт меню Component -> Import ActiveX Control (Смотрите рисунок 1).

Рисунок 1. Открытие окна выбора компонента для установки

В списке компонентов найти и выбрать компонент «Microsoft Script Control 1.0» и нажать кнопку Install (Смотрите рисунок 2).

Рисунок 2. Выбор компонента для установки

В окне с именем Install нажать кнопку Ok (Смотрите рисунок 3).

Рисунок 3. Выбор пути установки

В окне Package нажать кнопку Install (Смотрите рисунок 4).

Рисунок 4. Установка компонента

После этого проверить, что компонент установился. Для этого выберите палитру компонентов ActiveX (Смотрите рисунок 5).

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

 7. Создайте новый проект. Для этого выберите пункт меню File -> New -> Application (Смотрите рисунок 6). 

Рисунок 6. Создание нового проекта в Delphi

Сохраните проект под именем, например, p16, как у меня. Перетащите на форму с именем Form1 одну кнопку Button1, два поля ввода Edit1 и Edit2, шесть текстовых меток c Label1 по Label6, и один компонент ScriptControl1. Расположите все элементы как у меня (Смотрите рисунок 7).

Рисунок 7. Расстановка элементов на форме

8. Перейдем к написанию кода приложения Delphi и VBScript-скрипта. Создайте в папке проекта с именем p16 под папку c именем vbscripts. Создайте в этой папке VBScript-скрипт файл с именем sum.vbs. Код скрипта будет следующий:

On Error Resume Next
Function Sum(a,b)
 Sum = a + b
End function

Таким образом скрипт состоит из команды On Error Resume Next, которая продолжает выполнять код даже если возникла какая-то ошибка, и функции с именем Sum, которая выполняет суммирование двух переменных и в качестве результата возвращает их сумму:

Function Sum(a,b)
Sum = a + b
End function

9. Теперь напишем код нашего приложения Delphi. Первым делом рассмотрим обработчик создание формы.

procedure TForm1.FormCreate(Sender: TObject);
var
  ScriptFile: TextFile;
  LineScript: String;
begin
  AssignFile(ScriptFile,'vbscripts/sum.vbs');
  Reset(ScriptFile);

  if IOResult <> 0 then
 begin
   MessageBox(0,'File access error.','Error',0);
  exit;
  end;

  while not EOF(ScriptFile) do
  begin
    readln(ScriptFile, LineScript);
    Script := Script + LineScript+#13+#10;
  end;

  CloseFile(ScriptFile);
end;

В представленном коде мы открываем наш скрипт файл sum.vbs, считываем построчно и сохраняем результат считывания в переменную Script типа String.

10. Далее рассмотрим код обработчика нажатия на кнопку Button1. Данный код выполняет передачу значений Edit1 и Edit2 скрипт файлу. Запуск скрипта на выполнение и получение результат выполнения скрипта.

procedure TForm1.Button1Click(Sender: TObject);
var
  varr, res:Variant;
  pPar:PSafeArray;
  SA : TSafeArrayBound;
  a: Integer;
  b: Integer;
  ValErrorCode: Integer;
begin
  Val(Edit1.Text, a, ValErrorCode);
  Val(Edit2.Text, b, ValErrorCode);

  try
    ScriptControl1.Language := 'VBScript';
    ScriptControl1.AddCode(Script);
    SA.cElements := 2;
    pPar := SafeArrayCreate(varVariant, 1, SA);
    varr := VarArrayCreate([0, 1], varVariant);
    varr[0]:=a;
    varr[1]:=b;
    pPar:=PSafeArray(TVarData(varr).VArray);
    res:=ScriptControl1.Run('Sum',pPar);
    Label5.Caption := VarToStr(res);
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), mtError, [mbOK], 0);
  end;
end;

Далее рассмотрим код более подробно. В этих строчках кода мы берем значения полей ввода Edit1 и Edit2, и сохраняем эти значения в переменных a и b.

Val(Edit1.Text, a, ValErrorCode);
Val(Edit2.Text, b, ValErrorCode);

В следующей строчке кода мы указываем компоненту загрузки и выполнению скрипта, что нужно выполнить скрипт файл типа VBScript. 

ScriptControl1.Language := 'VBScript';

В следующей строчке кода мы указываем откуда загружать скрипт из переменной Script типа String.

ScriptControl1.AddCode(Script); 

Следующими строчками кода мы передаем складываемые значения a и b скрипту, и запускаем скрипт на исполнение, и получаем результат, который мы выводи в текстовую метку Label5.

SA.cElements := 2;
pPar := SafeArrayCreate(varVariant, 1, SA);
varr := VarArrayCreate([0, 1], varVariant);
varr[0]:=a;
varr[1]:=b;
pPar:=PSafeArray(TVarData(varr).VArray);
res:=ScriptControl1.Run('Sum',pPar);
Label5.Caption := VarToStr(res);

11. Вот как бы и все. Теперь можно ознакомится с работой программы (Смотрите рисунок 8).

Рисунок 8. Результат работы программы

Ниже представлен код полностью:

unit p16_unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, OleCtrls, MSScriptControl_TLB;

type
  TForm1 = class(TForm)
    ScriptControl1: TScriptControl;
    Edit1: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label5: TLabel;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
var
  Script: String;

implementation

{$R *.dfm}

uses ActiveX;

procedure TForm1.FormCreate(Sender: TObject);
var
  ScriptFile: TextFile;
  LineScript: String;
begin
  AssignFile(ScriptFile,'vbscripts/sum.vbs');
  Reset(ScriptFile);

  if IOResult <> 0 then
 begin
   MessageBox(0,'File access error.','Error',0);
  exit;
  end;

  while not EOF(ScriptFile) do
  begin
    readln(ScriptFile, LineScript);
    Script := Script + LineScript+#13+#10;
  end;

  CloseFile(ScriptFile);
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  varr, res:Variant;
  pPar:PSafeArray;
  SA : TSafeArrayBound;
  a: Integer;
  b: Integer;
  ValErrorCode: Integer;
begin
  Val(Edit1.Text, a, ValErrorCode);
  Val(Edit2.Text, b, ValErrorCode);

  try
    ScriptControl1.Language := 'VBScript';
    ScriptControl1.AddCode(Script);
    SA.cElements := 2;
    pPar := SafeArrayCreate(varVariant, 1, SA);
    varr := VarArrayCreate([0, 1], varVariant);
    varr[0]:=a;
    varr[1]:=b;
    pPar:=PSafeArray(TVarData(varr).VArray);
    res:=ScriptControl1.Run('Sum',pPar);
    Label5.Caption := VarToStr(res);
  except
    on E: Exception do
      MessageDlg(PWideChar(E.Message), mtError, [mbOK], 0);
  end;
end;

end.

Скрипт sum.vbs:

On Error Resume Next

Function Sum(a,b)
 Sum = a + b
End function

вторник, 19 марта 2019 г.

Не удается запустить приложение Microsoft Outlook. Невозможно открыть окно Outlook. Невозможно открыть набор папок. Не удается открыть банк сообщений.

Проблема проявилась с Office 2016 Home&Business под управлением Windows 7. Outlook не под каким предлогом не хотел открываться, каждый раз выдавая неинформативное сообщение (Смотрите рисунок 1), что «Не удается запустить приложение Microsoft Outlook. Невозможно открыть окно Outlook. Невозможно открыть набор папок. Не удается открыть банк сообщений.»

Рисунок 1. Сообщение об ошибке

Для попытки восстановления работоспособности были выполнены следующие неэффективные действие:

- Пытался удалить почтовый профиль
- Пытался запустить Outlook в безопасном режиме
- Удалить папки Outlook в [Профиль пользователя]\AppData\Local\Microsoft\, [Профиль пользователя]\AppData\Roaming\Microsoft\

После этого пришлось прибегнуть к радикальным мерам, полностью удалению профиля пользователя в Windows 7.  После этого проблема исчезла, и почта стала открываться. Перед тем как удалить профиль пользователя в Windows 7, полностью скопируйте все важные данные профиля. Для удаления профиля пользователя в Windows 7 откройте Панель управления, выберите опцию «Система». В окне «Система» выберите опцию «Дополнительные параметры системы». В окне Свойства системы на вкладке «Дополнительно» в разделе «Профили пользователей» нажмите на кнопку «Параметры…». В окне «Профили пользователей» выберите профиль какой хотите удалить и нажмите кнопку «Удалить» (Смотрите рисунок 2). 

 Рисунок 2. Удаление профиля пользователя

вторник, 16 октября 2018 г.

Ошибка Microsoft Word Web App на портале SharePoint

Если при попытке открыть файл Word или Excel на портале SharePoint вы получаете сообщение об ошибке Microsoft Word Web App с текстом "К сожалению, не удается открыть файл из-за неизвестной ошибки. Если проблема продолжает возникать, попробуйте открыть файл в приложении Microsoft Word." (Смотрите рисунок 1), то вам необходимо проверить какая редакция Microsoft Office у вас установлена, и скорее всего это зависит от версии Microsoft Office. Чтобы решить проблему необходимо установить Microsoft Office 2016 Professional Plus или Microsoft Office 2016 Standard, другие редакции и версии Microsoft Office, ниже 2016, не будут работать.

Рис. 1. Ошибка Microsoft Word Web App на портале SharePoint

Дополнение 1: По ходу данная ошибка с редакцией Microsoft Office 2016 ни как не связана. Есть подозрение, что данная ошибка связана с тем, что пользователь не правильно завершает сессию на портале SharePoint, потому-что ошибка исчезает, только после очистки браузера Internet Explorer (Очистки временных файлов, журнала, файлов cookie).

Дополнение 2: Прежде чем выполнять выше описанные действия, для начала попробуйте перезагрузить компьютер. Есть подозрения, что проблема отпадет сама собой.

воскресенье, 14 октября 2018 г.

Thunderbird получает некорректное письмо с вложением winmail.dat отправленное из Outlook 2016 с правельным вложением

Если отправленное сообщение с вложенным файлом из Outlook 2016 приходит получателю клиенту Thunderbird с некорректным вложением, вместо вложенного файла приходит не понятный файл winmail.dat, то это проблема связано с тем что почтовый клиент Thunderbird по какой-то причине не правильно обрабатывает формат сообщения с вложением (смотрите рис. 1).

Рисунок 1. Некорректное вложение в Thunderbird

Для решения этой проблемы воспользуйтесь методами предлагаемые на сайте Microsoft по этой ссылке: https://support.microsoft.com/en-au/help/278061/email-received-from-a-sender-using-outlook-includes-a-winmail-dat-atta

Я расскажу о втором методе который помог решить данную проблему. Для этого необходимо удалить адрес получателя из списка сохраненных адресов Outlook 2016. Потом вбить адрес получателя в новое сообщение Outlook 2016 и отправить письмо, при этом адрес сохранится заново в адресной книге Outlook 2016. После этого проблема должна исчезнуть. Если проблема не исчезла пробуем выполнить все остальные методы перечисленные в статье выше. Еще дополнительно можно почитать информацию по этой ссылке https://answers.microsoft.com/en-us/msoffice/forum/msoffice_outlook-mso_win10-mso_365hp/outlook-2016-winmaildat-problem-have-tried-all/f9f15b95-7fdc-4f1c-a1d9-047358747ef8


Ошибка при запуске Outlook 2013. Недействительный XML-формат, невозможно загрузить представление.

При запуске Outlook 2013 возникает ошибка: "Не удается запустить приложение Microsoft Outlook. Невозможно открыть окно Outlook. Недействительный XML-формат; невозможно загрузить представление" (смотрите рис. 1)

Рисунок 1. Ошибка при запуске Outlook 2013

Удаление почтового профиля и переустановка Office - не помогает. Решением данной проблемы будет сброс настроек профиля Outlook командой: Outlook /resetnavpane

Оригинальная информация взята с сайта: https://answers.microsoft.com/ru-ru/msoffice/forum/msoffice_outlook-mso_other-mso_2013_release/%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0/f9cc91ed-dc97-4172-baf3-73865f42ab46


Kaspersky 11.0.0.6499, синий экран смерти, bsod, windows 7 32-64

Публикую чтобы не забыть. Kaspersky 11.0.0.6499 вызывает выпадание синего экрана смерти под Windows 7 32-64. Нужно ставить патч pf5074. 

Нерешенные или частично решенные проблемы с программой VipNet Client 4.3.3.47224

1. Kaspersky 11.0.0.6499 конфликтует с программой Vipnet Client 4.3.3.47224. В последствии под любой учетной записью не грузится графическая оболочка Windows 7 (х64) (Виден черный экран без ярлыков с курсором мыши). Сочетания клавиш Ctrl+Alt+Del при этом работают, можно запустить диспетчер задач. Скорее всего конфликт с крипто-провайдером Vipnet CSP, который ставится вместе с Vipnet Client 4.3.3.47224. Если Vipnet CSP удалить, то перестает работать Vipnet Client. Выход установить версию Vipnet Client 4.3.2.37273, с этой версией работает нормально.

воскресенье, 17 июня 2018 г.

Получения обновлений не только для Windows, но и для других продуктов Microsoft

Если у вас по какой-то причине центр обновлений настроен на получения обновлений только для Windows, то есть два способа включить обновления и для других продуктов Microsoft, которые я нашел на сайте http://windows.mixed-spb.ru/updates/7_windows_only.php. У меня заработал второй, альтернативный способ. Далее я его и опишу.

1. В браузере Internet Explorer откройте ссылку http://windowsupdate.microsoft.com/ или http://update.microsoft.com/microsoftupdate/. У вас должен открыться запрос на принятие лицензионного соглашения. Если лицензионное соглашение не открылось, то вам необходимо узнать версию Internet Explorer, который у вас установлен. Если у вас установлен браузер Internet Explorer 11, то вам необходимо открыть эти ссылки в режиме совместимости. Для того чтобы открыть ссылки в режиме совместимости, вам необходимо в браузере Internet Explorer выбрать меню "Сервис" (нажать кнопку со значком шестеренка) открыть окно "Параметры просмотра в режиме совместимости". Далее включить "Использовать списки совместимости Microsoft". Потом добавить сайт *.microsoft.com в список сайтов, открываемых в режиме совместимости.

2. Примите лицензионное соглашение Microsoft и нажмите "Далее"

3. По нажатию на кнопку "Далее" у вас на компьютере запустится Центр обновлений Windows и в источнике получения обновлений будет написано не "Только для Windows", а "Для Windows и других программных продуктов из Microsoft Update" (Смотрите рисунок 1).

Рисунок 1. Центр обновлений Windows и других продуктов Microsoft

пятница, 9 февраля 2018 г.

Удаленная установка 1С 8.3 в сайлент режиме под управлением Windows 7

0. Сетевое имя удаленного компьютера, например pc01.domain.ru (ip - 192.168.20.100)
1. Скопируйте дистрибутив 1c на удаленный компьютер через админскую шару (например d:\1c)
2. Команда установки 1с в silent режиме: d:\1c\setup.exe /S
3. Скачайте на свой компьютер программу PsExec.exe по ссылке https://technet.microsoft.com/ru-ru/sysinternals/bb897553.aspx с сайта Microsoft
4. Распакуйте на своем компьютере скаченный архив, например в директорию d:\cmd
5. Путь до программы PsExec.exe на вашем компьютере следующий: d:\cmd\PsExec.exe
6. Откройте командную строку, перейдите в директорию d:\cmd. Для этого введите команду перехода на другой раздел cd /d d:\cmd
7. Теперь выполните в командной строке следующую команду

PsExec.exe \\pc01.domain.ru -u administrator -p password cmd /c d:\1c\setup.exe /S

или

PsExec.exe \\192.168.20.100 -u administrator -p password cmd /c d:\1c\setup.exe /S

8. Убедитесь что на удаленном компьютере есть локальный администратор administrator с паролем password
9. Убедитесь что удаленный компьютер pc01.domain.ru (192.168.20.100) доступен по сети
10. Ждите завершение введенной команды

11. Заходим по по сети через админскую шару на удаленный компьютер и проверяем версию установленной 1С 8.3   

четверг, 10 августа 2017 г.

Центр обновлений Windows 7 выдает сообщение "Несовместимое оборудование" или ошибку №80240037

Проблема следующая: Microsoft запретила выполнять сканирование на наличие или загружать обновления через Центр обновления Windows или Центр обновления Microsoft для владельцев устройств с Windows 8.1 и Windows 7 с процессорами седьмого поколения или даже более поздних версий. Смотрите рисунок 1 и рисунок 2.

Рисунок 1. Сообщение "Несовместимое оборудование"

Рисунок 2. Ошибка Центра обновления

Причина следующая: Для поддержки процессоров нового поколения требуется самая последняя версия Windows, т.е. Windows 10.


Если у вас в компьютере установлен процессор седьмого поколения Intel Core i7 (Kaby Lake) и выше, или AMD “Bristol Ridge” и вы установили Windows 7 или 8.1, то есть неофициальный способ заставить работать Центр обновлений Windows.

Проблему можно решить, скачав и установив неофициальный патч, который выложили  на github добрые люди и распространяют в исходных кодах, и в бинарном виде как установочные файлы. Данный патч отключает сообщение Центра обновлений о несовместимости оборудование и разрешает продолжить установку обновлений на Windows 7 и 8.1. Последние версии установочных файлов патча для архитектур x86 и x86_64 можно по этой ссылке:
https://github.com/zeffy/wufuc/releases/latest

Ссылка на исходники патча: https://github.com/zeffy/wufuc

четверг, 9 февраля 2017 г.

Сканирование по сети с задержкой по времени на МФУ HP LaserJet M1214nf под Windows XP, Windows 7, Windows 7 64bit



Недавно столкнулся с проблемой под Windows XP, проявилась также под Windows 7 и Windows 7 64bit, что МФУ HP LJ M1214nf сканирует по сети с задержкой по времени. Т.е. сканировать МФУ начинала спустя полторы минуты с момента нажатия кнопки «Сканирование».  Так же, сама программа для сканирования, которая устанавливается вместе с драйверами, проявляет  зависания на полторы минуты, если зайти в параметры настройки сканирования, там, где меняется разрешение сканера.  IP адрес, маска подсети, шлюз были вбиты в МФУ вручную. Сначала думали на сеть, что она медленно работает, но потом эта версия отпала, когда мы подключили МФУ к другой сетевой розетке,  сканер так же начинал сканировать по сети с задержкой по времени. Хотя печать по сети начиналась сразу же.  Установка последней версии драйверов и последней версии прошивки не решило проблему. Сканирование проводилось при помощи Twain драйвера и при помощи Wia драйвера. Хотя через Wia драйвер сканировалось с меньшей задержкой по времени. Решение проблемы было найдено на форуме OSZone (http://forum.oszone.net/thread-143212.html). Нужно прописать в файл hosts, который расположен по следующему пути: C:\windows\system32\drivers\etc\hosts, правильный hostname МФУ, и используемый МФУ IP адрес, например, так:

192.168.0.51 NPI7DA316

После этой манипуляции МФУ начала сканировать по сети сразу без задержки по времени, как с Twain драйверами, так и с Wia драйверми. Видимо МФУ тратило время на определение своего hostname.