FoxShip
Какой параметр скрытия ShellExecute если не секрет?
Когда-то повыбирал для себя справку для разных методов загрузки.
Может пригодится еще когда кому:
*!* API функция Windows - ShellExecute
*!* Синтаксис:
DECLARE Long ShellExecute in Shell32 ;
Long hWnd, ; && хэндл родительского окна, обычно можно = 0
String lpOperation, ; && действия с файлом = "open", "print", "explore", если '', по умолчанию "open"
String lpFile, ; && имя файла - можно с путем доступа
String lpParameters, ; && доп.параметры запуска - только для исполняемых файлов
String lpDirectory, ; && директория, относительно которой искать файл
Integer ShowCmd && режим открытия приложения
*!* Режимы открытия приложения:
*!* 0 - скрытое окно.
*!* 1 - нормальное окно.
*!* 2 - минимизированное окно.
*!* 3 - максимизированное окно.
*!* 4 - окно в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
*!* 5 - запустить приложение с окном в текущем состоянии.
*!* 7 - минимизированное окно. Текущее активное окно останется активным.
*!* 10 - состояние окна по умолчанию для приложения.
*!* Код возврата - число, анализируя которое можно задавать необходимые дальнейшие действия
*!* Если функции ShellExecute вернула значение больше 32, команда выполнена успешно.
*!* В противном случае произошла какая-то ошибка.
*!* Примеры использования.
*!* Сначала всегда загружается в память сама функция строкой:
DECLARE Long ShellExecute in Shell32 ;
Long hWnd, String lpOperation, String lpFile, String lpParameters, String lpDirectory, Integer ShowCmd
*!* а затем уже можно запускать ее на выполнение сколько угодно раз:
*!* открытие файла PDF программой по умолчанию
mKod = ShellExecute(0, "open", "sample.pdf", '', "C:\Мои документы", 1)
*!* отправка текстового файла на печать:
mKod = ShellExecute(0, "print", "sample.txt", '', "C:\Мои документы", 0)
*!* Запуск хранителя экрана (системные пути можно не указывать):
mKod = ShellExecute(0, '', 'logon.scr', '', '', 1)
*!* Запуск экранной лупы (системная утилита):
mKod = ShellExecute(0, '', 'magnify.exe', '', '', 1)
*!* Запуск ярлыка какой-то программы с Рабочего стола:
mKod = ShellExecute(0, '', "SomeApp.lnk", '', "c:\Documents and Settings\User\Рабочий стол\", 1)
*!* Открытие проводника Windows на указанной директории:
mKod = ShellExecute(0, "explore", "C:\Мои документы", '', '', 1)
*******************************
*******************************
*!* Метод оболочки Shell Windows - ShellExecute
*!* Назначение: выполняет указанное действие над указанным файлом. Возвращаемого значения нет.
*!* Синтаксис:
ShellExecute(<File>, <Arguments>, <Directory>, <Operation>, <Show> )
*!* <File> - строка. Имя файла.
*!* <Arguments> - строка (необязательный). Параметры для <Operation>.
*!* <Directory> - строка (необязательный). Путь к каталогу с указанным файлом. Если не указан, используется текущий каталог.
*!* <Operation> - строка (необязательный). Действие ("глагол"), которое необходимо выполнить. Если не указан, используется действие по умолчанию.
*!* <Show> - число (необязательный). Рекомендуемое состояние окна при выполнении. Запускаемое приложение может проигнорировать этот параметр.
*!* Возможные значения:
*!* 0 - скрытое окно.
*!* 1 - нормальное окно.
*!* 2 - минимизированное окно.
*!* 3 - максимизированное окно.
*!* 4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
*!* 5 - запустить приложение с окном в текущем состоянии.
*!* 7 - минимизированное окно. Текущее активное окно останется активным.
*!* 10 - состояние окна по умолчанию для приложения.
*!* Примеры:
*!* Аналогично, как и c предыдущем случае, объект оболочки создается один раз. После чего его методы можно использовать сколько угодно раз.
objShellApp = CREATEOBJECT("Shell.Application")
*!* Редактирование текстового файла программой по умолчанию:
objShellApp.ShellExecute("sample.txt", '', "C:\", "edit", 1)
*!* Редактирования текстового файла программой AkelPad:
objShellApp.ShellExecute("AkelPad.exe", "c:\sample.txt", "c:\Program Files\AkelPad\", "open", 1)
*!* Открытие проводника Windows на указанной директории:
objShellApp.ShellExecute('', '', "c:\Мои документы", "explore", 1)
*******************************
*******************************
*!* Функция скриптовой оболочки WshShell Windows - Run
*!* Синтаксис:
Run(<Command>, <WindowStyle>, <WaitOnReturn> )
*!* Назначение: создаёт новый независимый процесс, который запускает заданное приложение.
*!* Параметры:
*!* <Command> - строка, командная строка запуска приложения.
*!* <WindowStyle> - необязательный, число. Определяет вид окна запускаемого приложения.
*!* Возможные значения:
*!* 0 - скрытое окно.
*!* 1 - нормальное окно.
*!* 2 - минимизированное окно.
*!* 3 - максимизированное окно.
*!* 4 - запустить приложение с окном в том состоянии, в котором оно было последний раз. Текущее активное окно останется активным.
*!* 5 - запустить приложение с окном в текущем состоянии.
*!* 7 - минимизированное окно. Текущее активное окно останется активным.
*!* 10 - состояние окна по умолчанию для приложения.
*!* <WaitOnReturn> - необязательный, булево (число).
*!* True - сценарий возобновит работу только после завершения вызванного процесса.
*!* False (по умолчанию) - управление передаётся сразу обратно в сценарий.
*!* Описание: если параметр "WaitOnReturn" установлен в True, метод возвращает код выхода вызванного приложения. Иначе метод всегда возвращает ноль.
*!* Примеры (также объект оболочки создается один раз, далее его методы используются сколько угодно раз):
WshShell = CREATEOBJECT("WScript.Shell")
*!* Открытие блокнота Windows:
RetCode = WshShell.Run("notepad.exe", 1, .T.)
*******************************
*******************************
*!* Метод скриптовой оболочки WshShell Windows - Exec
*!* Синтаксис:
Exec(<Command> )
*!* Назначение: создаёт новый дочерний процесс (т.е. процесс с теми же переменными среды), который запускает заданное консольное приложение.
*!* Возвращается объект "WshScriptExec", который позволяет контролировать ход выполнения запущенного приложения и обеспечивает доступ к
*!* потокам StdIn, StdOut и StdErr этого приложения.
*!* Параметры:
*!* <Command> - строка, командная строка запуска приложения.
*!* Описание: с помощью данного метода можно запускать и графические оконные приложения.
*!* В этом случае возвращаемый объект "WshScriptExec" полезен тем, что позволяет получить идентификатор запущенного процесса,
*!* который можно использовать, например, для активизации приложения с помощью метода AppActivate.
*!* Примеры.
*!* создается объект оболочки:
WshShell = CREATEOBJECT("WScript.Shell")
*!* Запускается блокнот Windows:
WshExec = WshShell.Exec("notepad.exe")
*******************************
*******************************
*!* Фундаментальный класс VFP - Shell Execute
*!* Запускает приложения или документы с ассоциированными с ними приложениями.
*!* Синтаксис:
ShellExecute(tcFileName, tcWorkDir, tcOperation)
*!* Возврат: nSuccess
*!* Аргументы:
*!* tcFileName - указывает файл для запуска.
*!* tcWorkDir - указывает путь к запускаемому файлу.
*!* tcOperation - указывает производимую операцию.
*!* nSuccess - определяет успешной или неуспешной была попытка запуска, используя одно из приведеннных значений:
*!* 2 = Плохая ассоциация (например, недопустимый URL)
*!* 29 = Ошибка при загрузке приложения
*!* 30 = Приложение занято
*!* 31 = Не имеется ассоциированного приложения
*!* Значения более 32 представляют признак успешного выполнения и возвращают дескриптор для запущенного приложения.
*!* Примеры
*!* загрузка библиотеки:
SET CLASSLIB TO (HOME()+"Ffc\_environ.vcx")
*!* создание экземпляра класса:
oShell = CREATEOBJECT("_shellexecute")
*!* делается один раз в программе, затем многократное использование:
*!* запуск AkelPad:
mKod = oShell.ShellExecute("AkelPad.exe", "c:\Program Files\AkelPad\", "open")
------------------
В действительности все иначе, чем на самом деле.
(Антуан де Сент-Экзюпери)
Исправлено 1 раз(а). Последнее : Crispy, 18.01.19 20:37