Перейти до основного
Підтримка
Вхід
Вхід за допомогою облікового запису Microsoft
Увійдіть або створіть обліковий запис.
Вітаємо,
Виберіть інший обліковий запис.
У вас є кілька облікових записів
Виберіть обліковий запис, за допомогою якого потрібно ввійти.

Загальні відомості

Можна використати функцію ShellExecute функції Windows API за допомогою Visual Basic для застосунків макрос для запуску іншої програми, у Microsoft Windows. Використовувати функцію ShellExecute замість оболонки (Visual Basic, звіт) або WinExec() (функція Windows API) для усунення обмеження останньої команди:

Оболонки та WinExec()не вдається запустити застосунок, указавши лише ім'я файлу. Наприклад, не вдасться наведену нижче інструкцію для оболонки :

x = Shell("C:\My Documents\Book1.Xls")

Додаткові відомості

Корпорація Майкрософт надає приклади програмного коду тільки для ілюстрації без гарантії або, – прямих або непрямих. Це включає, але не обмежується, будь-яких гарантій придатності до продажу та придатності для певної мети. У цій статті припускається, що ви знайомі з, що демонструє мову програмування та інструменти, які використовуються для створення та налагодження процедури. Співробітники служби підтримки корпорації Майкрософт можуть пояснити функціональні особливості кожної конкретної процедури, але вони не будуть змінювати приклади для реалізації додаткових можливостей або створювати процедури на вимогу окремих користувачів. Ось приклад Visual Basic для застосунків макросу, який викликає функцію ShellExecute функції Windows API. Функцію ShellExecute визначає, чи вже інстальовано Microsoft Excel; Якщо це так, він завантажує Книга1. xls поточного сеансу Microsoft Excel. Якщо Microsoft Excel не запущено, функцію ShellExecute запуску Microsoft Excel і завантажує Книга1. xls.

Declare Function ShellExecute Lib "shell32.dll" Alias _
"ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation _
As String, ByVal lpFile As String, ByVal lpParameters _
As String, ByVal lpDirectory As String, ByVal nShowCmd _
As Long) As Long

Declare Function apiFindWindow Lib "User32" Alias "FindWindowA" _
(ByVal lpclassname As Any, ByVal lpCaption As Any) As Long

Global Const SW_SHOWNORMAL = 1

Sub ShellExecuteExample()
Dim hwnd
Dim StartDoc
hwnd = apiFindWindow("OPUSAPP", "0")

StartDoc = ShellExecute(hwnd, "open", "C:\My Documents\Book1.xls", "", _
"C:\", SW_SHOWNORMAL)
End Sub

Функція функцію ShellExecute , відкриття або друкуються вказаний файл. Нижче наведено відомості про функцію ShellExecute зі сторінок 901-904 з Microsoft Windows програмне забезпечення розробки Kit (SDK) "Програмування на посилання, тому 2:Functions".

Параметри

                
Parameter Description
---------------------------------------------------------------------------

hwnd Identifies the parent window.

lpszOp A string specifying the operation to perform. This
string can be "open" or "print".

lpszFile Points to a string specifying the file to open.

lpszParams Points to a string specifying parameters passed to
the application when the lpszFile parameter
specifies an executable file. If lpszFile points to
a string specifying a document file, this parameter
is NULL.

lpszDir Points to a string specifying the default
directory.

fsShowCmd Specifies whether the application window is to be
shown when the application is opened. This
parameter can be one of the following values:

Value Meaning
---------------------------------------------------------------------

0 Hides the window and passes activation to another
window.

1 Activates and displays a window. If the window is
minimized or maximized, Windows restores it to its
original size and position (same as 9).

2 Activates a window and displays it as an icon.

3 Activates a window and displays it as a maximized
window.

4 Displays a window in its most recent size and
position. The window that is currently active remains
active.

5 Activates a window and displays it in its current
size and position.

6 Minimizes the specified window and activates the
top-level window in the system's list.

7 Displays a window as an icon. The window that is
currently active remains active.

8 Displays a window in its current state. The window
that is currently active remains active.

9 Activates and displays a window. If the window is
minimized or maximized, Windows restores it to its
original size and position (same as 1).

Повернення

Значення, це маркер екземплярі застосунку, який відкрив або друку, якщо функцію. (Цей маркер може бути маркер з серверного застосунку DDE). Повернення значення дорівнює 32 визначає, повідомлення про помилку.

Помилки

Функцію ShellExecute функція повертає значення, 31, якщо не зіставлення для типу вказаного файлу або немає зв'язку для виконання вказаної дії за типом файлу. Інші значення можливих помилок наведено нижче.


Value Meaning
---------------------------------------------------------------------------

0 System was out of memory, executable file was corrupt, or
relocations were invalid.

2 File was not found.

3 Path was not found.

5 Attempt was made to dynamically link to a task, or there
was a sharing or network-protection error.

6 Library required separate data segments for each task.

8 There was insufficient memory to start the application.

10 Windows version was incorrect.

11 Executable file was invalid. Either it was not a Windows
application, or there was an error in the .exe image.

12 Application was designed for a different operating system.

13 Application was designed for MS-DOS 4.0.

14 Type of executable file was unknown.

15 Attempt was made to load a real-mode application
(developed for an earlier version of Windows).

16 Attempt was made to load a second instance of an
executable file containing multiple data segments that
were not marked read-only.

19 Attempt was made to load a compressed executable file. The
file must be decompressed before it can be loaded.

20 Dynamic-link library (DLL) file was invalid. One of the
DLLs required to run this application was corrupt.

21 Application requires Microsoft Windows 32-bit extensions.

Примітки

Файли, які вказані у параметрі lpszFile, може бути файл документа або виконуваний файл. Якщо файл документа, ця функція відкриття або друку, в залежності від значення параметра lpszOp. Якщо це виконуваний файл, ця функція відкриває його, навіть, якщо додаток "Друк" наводяться для lpszOp.

Посилання

Щоб отримати додаткові відомості про використання прикладів коду в цій статті клацніть номер статті в базі знань Microsoft Knowledge Base:

212536 OFF2000: запуск зразок коду зі статті бази знань
Щоб отримати додаткові відомості про отримання допомоги з Visual Basic для застосунків див. такі статті бази знань Майкрософт:

226118 OFF2000: ресурси програмування Visual Basic для застосунків


Microsoft Windows SDK "програмування на посилання, Том 2: функції" сторінки 901-904

Потрібна додаткова довідка?

Потрібні додаткові параметри?

Ознайомтеся з перевагами передплати, перегляньте навчальні курси, дізнайтесь, як захистити свій пристрій тощо.

Спільноти допомагають ставити запитання й відповідати на них, надавати відгуки та дізнаватися думки висококваліфікованих експертів.

Чи ця інформація була корисною?

Наскільки ви задоволені якістю мови?
Що вплинуло на ваші враження?
Натиснувши кнопку "Надіслати", ви надасте свій відгук для покращення продуктів і служб Microsoft. Ваш ІТ-адміністратор зможе збирати ці дані. Декларація про конфіденційність.

Дякуємо за відгук!

×