Архив метки: COM-объекты, WMI, WSH

COM-объекты, WMI, WSH

Как сохранить значение в реестр Windows?

Как прочитать значение, хранящееся в реестре Windows?

Имитация (программное) нажатия Клавиш

В системе "1С:Предприятие" часто возникает ситуация, когда нужно закрыть окно сообщений, появляющееся при вызове метода Сообщить. Стандартно это окно закрывается при нажатии комбинации клавиш <Ctrl>+<Shift>+<Z>, но можно сделать это и программно.

В результате выполнения данного кода окно сообщений будет закрыто. Теперь поясним работу этого небольшого куска программы. SendKeys(String) — имитируется нажатие клавиши или последовательности клавиш, указанных в параметре String. В качестве параметра можно указывать как алфавитно-цифровые символы, так и символы специальных клавиш, например "Enter", "Tab", "F1", "Alt", "Shift", "Ctrl" и т.д. Для указания клавиш "Alt", "Shift", "Ctrl" существуют специальные коды:
· "Shift" — +;
· "Ctrl" — ^;
· "Alt" — %.
Если возникнет необходимость передать специальные символы именно как символы, а не команды, нужно заключать их в фигурные скобки, например {+}.

Получение списка принтеров и Подключение сетевого принтера

Для работы с сетевыми ресурсами в WSH предназначен объект WshNetwork. Из "1С:Предприятие" можно напрямую управлять сетевыми ресурсами, в том числе и принтерами.

Получить список принтеров

Подключение сетевого принтера

Объект WshNetwork позволяет определить список подключенных сетевых принтеров. Для этого используется метод EnumPrinterConnections, который возвращает коллекцию принтеров. Данную коллекцию можно перебрать с помощью конструкции

Прямое подключение к сторонним Базам Данных

Иногда необходимо подключиться к другим (не 1С-ным) БД на том же SQL.
Вот примерный код такого подключения:

Прямой SQL запрос к базе 7.7 из базы 8.x

Как определить IP адрес текущего компьютера?

Подсказал: smaharbA

Подключение к 1С Предприятию из PHP с помощью COM соединения.

Данный пример работает для 1С Предприятия v8 и реализует соединение с ним через COM интерфейс посредство PHP класса COM.

Код
<?
// Создаем новое COM соединение
$app = new COM("v8.COMConnector") or die("Невозможно создать COM соединение");

print "Loaded 1Cn";

//Путь к базе и имя пользователя. Третьим параметром
//может выступать пароль пользователя (если задан
//в конфигураторе)

$path = "G:/1cv80/Bases/Test/";
$user = "Test";

//Подсоединяемся к нужной базе
$con = $app->Connect("File=$path;Usr =$user");

//В качестве проверки результата получаем глобальную
//переменную glCurrUser определенную в модуле внешенего
//соединения 1С Предприятия v8 и инициализированную
//при начале работы системы

print "Current 1C user is {$con->glCurrUser}n";

//освобождаем объект
$app->Release();
$app= null;
?>

Получить имя принтера выбранного по умолчанию

Как сделать, задать паузу при выполнении кода?

Если это какая-нибудь обработка и запускается на клиенте(у пользователя) то можно использовать обработчик ожиданий у встроенных функций:

Для паузы можно использовать следующие примеры:

Создание ярлыка файла программно

На Рабочем столе

Как получить выборку запросом из таблиц базы MySql

Немного кривое решение… но как шаблон вполне
Megas

Пример простой реализации OLE доступа из 8 к 77

Функция формирует объект Структура, содержащая метаданные 77 для составления прямых запросов

Формируется конечно не быстро, но Структура — объект сериализуемый, поэтому ее надо просто хранить в ХранилищеЗначения в базе 8ки, и восстанавливать перед каждым переносом данных, а не формировать заново. Обновлять ее можно периодически при изменении конфигурации, ито если изменения влияют на перенос данных.

Обратите внимание: все идентификаторы объектов в 10ой системе, а идентификаторы значений перечислений в 36ой.

DmitrO

Функция выборки данных из SQL сервера и передача во временную таблицу 1С

Пример подключения к базе 1С 7.7 из 1С 8.0-8.1

Экземпляр COM-объекта 1С 7.7 уничтожается (по завершению работы с ним) следующим образом:

Использование программы rundll32.exe в 1С

Программа rundll32.exe входит в стандартную поставку всех операционных систем семейства Windows и позволяет выполнять различные функции, описанные в библиотеках, драйверах или ActiveX-объектах, как будто они выполняются из программы. Также эта программа входит в состав новой операционной системы Windows Vista, поэтому обзор новой операционной системы, предназначенный для опытных пользователей, никак нельзя назвать законченным, если он не будет содержать описание команд rundll32.exe, доступных в Windows Vista.

Синтаксис использования программы rundll32.exe следующий: rundll32.exe «библиотека», «функция» «параметры». При этом очень важно понимать, что название функции, хранящейся в библиотеке, зависит от регистра, которым вы ее написали. То есть, например, функции MessageBox и messageBox, в понимании программы rundll32.exe, являются различными функциями, поэтому если в названии функции вы напишете вместо прописной буквы строчную, программа rundll32.exe выдаст ошибку. Название же самой программы rundll32.exe и название библиотеки можно указывать как строчными, так и прописными символами.

Пример:

Приведу список наиболее значимых команд (в котором найдете ОЧЕНЬ интересные команды, ну а как их использовать, думайте сами!):
* rundll32 shell32.dll,Control_RunDLL hotplug.dll — диалоговое окно Отключение или извлечение аппаратного устройства
* rundll32 diskcopy,DiskCopyRunDll — вызов диалога "Копирование диска".
* rundll32 keyboard,disable — отключение клавиатуры, действует до следующей перезагрузки.
* rundll32 mouse,disable — отключение мыши вплоть до перезагрузки.
* rundll32 krnl386.exe,exitkernel — выгрузить ядро системы, выход из Windows.
* rundll32 mshtml.dll,PrintHTML "HtmlFileNameAndPath" — распечатать документ HTML, где "HtmlFileNameAndPath" — путь к файлу и его имя.
* rundll32 мсprint2.dll,RUNDLL_PrintTestPage — распечатать тестовую страницу на принтере.
* rundll32 netplwiz.dll,AddNetPlaceRunDll — вызов мастера подключения нового сетевого ресурса "Добавление в сетевое окружение".
* rundll32 rnaui.dll,RnaWizard — вызов мастера "Удаленный доступ к сети".
* rundll32 rnaui.dll,RnaWizard /1 — вызов мастера "Удаленный доступ к сети" без отображения начального окна.
* rundll32 shell,ShellExecute — открыть Проводник (папка "Рабочий стол").
* rundll32 shell32,Control_RunDLL — открыть в Проводнике папку "Панель управления".
* rundll32 shell32,Control_RunDLL appwiz.cpl,,n — вызов диалогового окна "Установка и удаление программ", в котором будет открыта вкладка с номером "n" (от 1 до 3).
* rundll32 shell32,Control_RunDLL main.cpl @0 — открыть диалог "Свойства мыши".
* rundll32 shell32,Control_RunDLL main.cpl @1 — открыть диалог "Свойства клавиатуры".
* rundll32 shell32,Control_RunDLL main.cpl @2 — открыть папку "Принтеры".
* rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintersFolder — открыть папку "Принтеры" (другой способ).
* rundll32 shell32,Control_RunDLL main.cpl @3 — открыть папку "Шрифты".
* rundll32 SHELL32,SHHelpShortcuts_RunDLL FontsFolder — открыть папку "Шрифты" (другой способ).
* rundll32 SHELL32,Control_RunDLL modem.cpl, add — открыть диалог "Свойства модема".
* rundll32 shell32,Control_RunDLL timedate.cpl — открыть диалог "Дата и время".
* rundll32 shell32,OpenAs_RunDLL — вызвать диалог "Открыть с помощью…".
* rundll32 shell32,ShellAboutA WINHOWTO.RU — информация о версии Windows.
* rundll32 shell32,SHExitWindowsEx 0 — закрыть все программы, перегрузить оболочку.
* rundll32 shell32, SHExitWindowsEx 1 — выключить ПК.
* rundll32 SHELL32, SHExitWindowsEx -1 — перегрузить оболочку Windows.
* rundll32 shell32, SHExitWindowsEx 2 — перегрузить ПК.
* rundll32 shell32,SHExitWindowsEx 4 — принудительно закрыть все программы.
* rundll32 shell32,SHExitWindowsEx 8 — выход из Windows и выключение ATX-совместимого ПК.
* rundll32 shell32,SHFormatDrive — вызов диалога форматирования диска А:.
* rundll32 SHELL32,SHHelpShortcuts_RunDLL AddPrinter — запуск "Мастера установки принтера".
* rundll32 shell32,SHHelpShortcuts_RunDLL Connect — запуск мастера подключения сетевого диска.
* rundll32 SHELL32,SHHelpShortcuts_RunDLL PrintTestPage — распечатать тестовую страницу.
* rundll32 sysdm.cpl,InstallDevice_Rundll — вызов мастера установки оборудования.
* rundll32 url.dll,FileProtocolHandler %1 — открыть веб-страницу, где %1 — URL сайта (включая http://).
* rundll32 url.dll,MailToProtocolHandler %1 — создать новое письмо, где %1 — e-mail адресата.
* rundll32 user,CASCADECHILDWINDOWS — расположить все окна каскадом.
* rundll32 user,TILECHILDWINDOWS — расположить все окна по экрану.
* rundll32 user,disableoemlayer — сбой системы (!) — выключить все функции ввода-вывода
(клавиатура, дисплей, мышь). В результате будет черный экран с курсором и ни на что не реагирующая система, однако Windows продолжает работать.
* rundll32 user,ExitWindowsExec — быстрая перезагрузка Windows.
* rundll32 user,RepaintScreen — выполнить команду "Обновить".
* rundll32 user,SetCaretBlinkTime n — задать частоту мигания курсора, соответствующую значению параметра n.
* rundll32 user,SetCursorPos — переместить курсор мыши в верхний левый угол экрана.
* rundll32 user,SetDoubleClickTime n — задать скорость двойного нажатия левой кнопки мыши (Double Click), соответствующую параметру n.
* rundll32 user,SwapMouseButton — поменять местами клавиши мыши (обратная смена невозможна).
* rundll32 user,WNetConnectDialog — вызов диалога "Подключение сетевого диска".
* rundll32 user,WNetDisconnectDialog — вызов диалога "Отключение сетевого диска".
* rundll32 AppWiz.Cpl,NewLinkHere %1 — запуск мастера создания нового ярлыка, где %1 — путь к исходному файлу.
* rundll32.exe shell32.dll, SHHelpShortcuts_RunDLL Connect. Вызвать мастер подключения сетевых дисков.
* rundll32.exe shell32.dll, ShellAboutA. Вызвать диалог, отображающий версию операционной системы Windows. Также данный диалог можно отобразить, выполнив команду winver.exe.
* rundll32.exe IEAKENG.dll, BrowseForFileA. Отображает дерево файловой системы жесткого диска компьютера.
* rundll32.exe ndfapi.dll, NdfRunDllHelpTopic «html-страница». Вызвать диалог HELP AND SUPPORT на указанной странице. Например, в качестве html-страницы можно использовать вызов mshelp://Windows/?id=33307acf-0698-41ba-b014-ea0a2eb8d0a8.
* rundll32.exe shell32.dll, OpenAs_RunDLL "путь и имя файла". Вызвать диалог OPEN AS… для открытия данного файла.
* rundll32.exe shell32.dll, Control_RunDLL Cliconfg.dll. Отображает диалог SQL Server Client Network Utility.
* rundll32.exe shell32.dll, Control_RunDLL Hotplug.dll. Отображает диалог удаления съемного устройства.
* rundll32.exe admparse.dll, CheckDuplicateKeysA "путь и имя файла". Переписывает содержимое данного файла.
* rundll32.exe IEAKENG.dll, BToolbar_SaveA "путь к папке". Создает папку. Если данная папка уже существует, тогда все ее содержимое будет удалено.
* rundll32.exe appwiz.cpl, GetProgramsOnline. Запускает браузер Internet Explorer и загружает страницу http://g.msn.com/WMHFUSEN/101724.
* rundll32.exe shell32.dll, ShellExec_RunDLL "команда". Выполняет команду.
* rundll32.exe url.dll, FileProtocolHandler "каталог". Открыть папку. Если вы не укажете папки, тогда будет открыта папка вашего профиля.
* rundll32.exe WININET.dll, RunOnceUrlCache "путь к папке". Удаляет все файлы указанной папки, имеющие атрибут FILEATTRIBUTETAGINFORMATION.
* rundll32.exe xwizards.dll, ProcessXMLFile "путь и имя xml-файла". Выполнить xml-файл.
* rundll32.exe user32.dll, mouse_event. Выполнить нажатие правой клавиши мыши.
* rundll32.exe user32.dll, SetCursorPos. Установить курсор в правый нижний угол экрана.
* rundll32.exe dfshim.dll, KillService. Остановить работу службы фонового обновления dfsvc.exe
* rundll32.exe IERNONCE.dll, RunOnceExProcess. Выполняет команды, описанные в ветви реестра HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx (или в ветви корневого раздела HKCU).

Получения новостей с RSS-канала сайта buh.ru

Код для получения новостей с сайта buh.ru, используется RSS-канал http://www.buh.ru/rss/rss-2.0.jsp
Данный код для 7.7, при использовании в 8-ой версии нужно заменить СоздатьОбъект( на Новый COMОбъект(, остальное вроде так же.

К сожалению, автор не известен.

Как проиграть wav, mp3 файл

Получения курса валют из Интернет