Код для запуски программы с Windows

Оглавление (нажмите, чтобы раскрыть)

  • Как запустить внешнюю программу и дождаться окончания её выполнения
  • Как запустить внешнюю программу без ожидания окончания её выполнения
  • Как открыть сайт в браузере по умолчанию
  • Как открыть сайт в Internet Explorer
  • Как открыть файл word или excel
  • Как открыть конкретную папку в проводнике
  • Как выделить нужный файл в проводнике
  • Как запустить приложение с параметрами
  • Как выполнить команду операционной системы из приложения
  • Как получить имя компьютера
  • Как получить каталог исполняемых файлов
  • Как получить каталог для временных файлов
  • Как получить стандартный каталог документов
  • Как получить информацию об экранах (dpi, разрешение) клиента
  • Как получить рабочий каталог данных пользователя
  • Как узнать текущий язык, используемый в приложении
  • Как получить список пользователей операционной системы
  • Скачать и выполнить эти примеры на компьютере

Работа с операционной системой в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Источник: helpme1s.ru

Запуск приложений (ShellExecute, ShellExecuteEx, SHELLEXECUTEINFO)

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

  • Использование ShellExecute и ShellExecuteExecuteEx
  • Команды объектов
  • Использование ShellExecuteEx для предоставления служб активации с сайта
  • Использование ShellExecute для запуска диалогового окна поиска

Использование ShellExecute и ShellExecuteExecuteEx

Чтобы использовать ShellExecute или ShellExecuteExecuteEx, приложение должно указать объект файла или папки, с которым необходимо выполнить действие, и команду, указывающую операцию. Для ShellExecute назначьте эти значения соответствующим параметрам. Для ShellExecuteEx введите соответствующие элементы структуры SHELLEXECUTEINFO . Существует также несколько других элементов или параметров, которые можно использовать для точной настройки поведения двух функций.

Читайте также:
Как закрепить окно поверх всех окон Windows 10 без программ сторонних

Объекты файлов и папок могут быть частью файловой системы или виртуальных объектов, и их можно определить по путям или указателям на списки идентификаторов элементов (PIDLs).

Команды объектов

Команды, доступные для объекта, по сути являются элементами, которые находятся в контекстном меню объекта. Чтобы найти доступные команды, перейдите в реестр в разделе

HKEY_CLASSES_ROOT CLSID ОболочкиГлагол

где object_clsid — это идентификатор класса (CLSID) объекта, а команда — имя доступной команды. Подраздел verbcommand содержит данные, указывающие, что происходит при вызове этой команды.

Чтобы узнать, какие команды доступны для предопределенных объектов оболочки, просмотрите раздел реестра в разделе

HKEY_CLASSES_ROOT object_name ОболочкиГлагол

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

К общим доступным командам относятся:

Команда Описание
изменение; Запускает редактор и открывает документ для редактирования.
поиск Инициирует поиск, начиная с указанного каталога.
open Запускает приложение. Если этот файл не является исполняемым файлом, запускается связанное с ним приложение.
print Выводит файл документа.
properties Отображает свойства объекта.
запуск от имени Запускает приложение от имени администратора. Контроль учетных записей пользователей (UAC) предложит пользователю предоставить согласие на запуск приложения с повышенными привилегиями или ввести учетные данные учетной записи администратора, используемой для запуска приложения.

Каждая команда соответствует команде, которая будет использоваться для запуска приложения из окна консоли. Открытая команда является хорошим примером, так как она обычно поддерживается. Для .exe файлов откройте приложение. Однако чаще используется для запуска приложения, работающего с определенным файлом. Например, .txt файлы можно открыть с помощью Microsoft WordPad. Таким образом , открытая команда для файла .txt будет соответствовать следующей команде:

«C:Program FilesWindows NTAccessoriesWordpad.exe» «%1»

При использовании ShellExecute или ShellExecuteExecuteEx для открытия файла .txt Wordpad.exe запускается с указанным файлом в качестве аргумента. Некоторые команды могут иметь дополнительные аргументы, такие как флаги, которые можно добавить по мере необходимости для правильного запуска приложения. Дополнительные сведения о контекстных меню и командах см. в разделе «Расширение контекстных меню».

Читайте также:
Что за программа Windows search

Как правило, попытка определить список доступных команд для определенного файла несколько сложна. Во многих случаях можно просто задать для параметра lpVerbзначение NULL, которое вызывает команду по умолчанию для типа файла. Обычно эта процедура эквивалентна установке lpVerb значения «открыть», но некоторые типы файлов могут иметь другую команду по умолчанию. Дополнительные сведения см. в справочной документации по расширению контекстных меню и ShellExecuteEx .

Использование ShellExecuteEx для предоставления служб активации с сайта

Службы цепочки сайтов могут управлять множеством действий активации элементов. По состоянию на Windows 8 можно указать указатель на цепочку сайтов в ShellExecuteExecuteEx для включения этих действий. Чтобы предоставить сайт ShellExecuteExecuteEx:

  • Укажите флаг SEE_MASK_FLAG_HINST_IS_SITE в элементе fMaskshellEXECUTEINFO.
  • Укажите IUnknown в элементе hInstAppshellEXECUTEINFO.

Использование ShellExecute для запуска диалогового окна поиска

Когда пользователь щелкает правой кнопкой мыши значок папки в обозревателе Windows, одно из пунктов меню — «Поиск». Если он выбирает этот элемент, оболочка запускает программу поиска. Эта программа отображает диалоговое окно, которое можно использовать для поиска файлов для указанной текстовой строки. Приложение может программно запустить служебную программу поиска для каталога, вызвав ShellExecute, с параметром lpVerb и путем к каталогу в качестве параметра lpFile . Например, следующая строка кода запускает служебную программу поиска для каталога c:MyPrograms.

ShellExecute(hwnd, «find», «c:\MyPrograms», NULL, NULL, 0);

Простой пример использования ShellExecuteExecuteEx

В следующем примере консольного приложения показано использование ShellExecuteExecuteEx. Большинство кодов проверки ошибок опущен для ясности.

#include #include #include main() < LPITEMIDLIST pidlWinFiles = NULL; LPITEMIDLIST pidlItems = NULL; IShellFolder *psfWinFiles = NULL; IShellFolder *psfDeskTop = NULL; LPENUMIDLIST ppenum = NULL; STRRET strDispName; TCHAR pszParseName[MAX_PATH]; ULONG celtFetched; SHELLEXECUTEINFO ShExecInfo; HRESULT hr; BOOL fBitmap = FALSE; hr = SHGetFolderLocation(NULL, CSIDL_WINDOWS, NULL, NULL, hr = SHGetDesktopFolder( hr = psfDeskTop->BindToObject(pidlWinFiles, NULL, IID_IShellFolder, (LPVOID *) hr = psfDeskTop->Release(); hr = psfWinFiles->EnumObjects(NULL,SHCONTF_FOLDERS | SHCONTF_NONFOLDERS, while( hr = ppenum->Next(1,celtFetched) == S_OK (celtFetched) == 1) < psfWinFiles->GetDisplayNameOf(pidlItems, SHGDN_FORPARSING, StrRetToBuf( CoTaskMemFree(pidlItems); if(StrCmpI(PathFindExtension(pszParseName), TEXT( «.bmp»)) == 0) < fBitmap = TRUE; break; >> ppenum->Release(); if(fBitmap) < ShExecInfo.cbSize = sizeof(SHELLEXECUTEINFO); ShExecInfo.fMask = NULL; ShExecInfo.hwnd = NULL; ShExecInfo.lpVerb = NULL; ShExecInfo.lpFile = pszParseName; ShExecInfo.lpParameters = NULL; ShExecInfo.lpDirectory = NULL; ShExecInfo.nShow = SW_MAXIMIZE; ShExecInfo.hInstApp = NULL; ShellExecuteEx( >CoTaskMemFree(pidlWinFiles); psfWinFiles->Release(); return 0; >

Читайте также:
Как переименовать программу Windows

Приложение сначала получает PIDL каталога Windows и перечисляет его содержимое, пока не найдет первый .bmp файл. В отличие от предыдущего примера, IShellFolder::GetDisplayNameOf используется для извлечения имени синтаксического анализа файла вместо отображаемого имени. Так как это папка файловой системы, имя синтаксического анализа представляет собой полный путь, который необходим для ShellExecuteExecuteEx.

После того как первый файл .bmp будет найден, соответствующие значения назначаются членам структуры SHELLEXECUTEINFO . Элемент lpFile имеет имя синтаксического анализа файла, а член lpVerb имеет значение NULL, чтобы начать операцию по умолчанию. В этом случае операция по умолчанию — «open». Затем структура передается в ShellExecuteExecuteEx, которая запускает обработчик по умолчанию для растровых файлов, как правило, MSPaint.exe, чтобы открыть файл. После возврата функции пин-коды освобождаются, а интерфейс IShellFolder папки Windows освобождается.

Источник: learn.microsoft.com

VBScript: Запуск приложения с нужными параметрами запуска

VBScript: Запуск приложения с нужными параметрами запуска

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

Set objShell = CreateObject(«WScript.Shell») objShell.Run «»»C:Program Filescmdowcmdow.exe»» /TV»»»

Как вы можете догадаться, C:Program Filescmdowcmdow.exe в данном примере это путь и сам исполняемый файл приложения, а /TV это его параметры. В прочем, может случится и так, что нужно в параметрах запуска указать какой-то путь с пробелами, который в свою очередь нужно поместить в кавычки. Тогда правильно должно выглядеть это так:

Set objShell = CreateObject(«WScript.Shell») objShell.Run «»»C:Program FilesVideoLANVLCvlc.exe»» «»E:eto testMisfits.S01E05.mkv»»»

Или так, если нужно скомбинировать путь в кавычках с какой-то другой командой без них:

Set objShell = CreateObject(«WScript.Shell») objShell.Run «»»C:Program FilesVideoLANVLCvlc.exe»» —fullscreen «»E:eto testMisfits.S01E05.mkv»»»

Самым важным во всех этих примерах — это соблюдение количества кавычек, будьте внимательны!

Источник: pc.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru