Консультация № 68971
28.12.2006, 21:43
0.00 руб.
0 2 2
Здравствуйте! Можно ли и в VBA использовать API функцию
ShellExecute(Handle,NULL,"mailto:newcb@narod.ru?subject=Tema",NULL,NULL,SW_SHOWNORMAL);

Обсуждение

Неизвестный
29.12.2006, 06:45
общий
это ответ
Здравствуйте, Rewer8!
Конечно, можно.
в приложении пример ее использования.
Успехов.


Приложение:
Option Explicit Private Declare Function ShellExecute Lib "shell32.dll" Alias _ "ShellExecuteA" (ByVal hwnd As Long, ByVal lpszOp As _ String, ByVal lpszFile As String, ByVal lpszParams As String, _ ByVal lpszDir As String, ByVal FsShowCmd As Long) As Long Private Declare Function GetDesktopWindow Lib "user32" () As Long Const SW_SHOWNORMAL = 1 Const SE_ERR_FNF = 2& Const SE_ERR_PNF = 3& Const SE_ERR_ACCESSDENIED = 5& Const SE_ERR_OOM = 8& Const SE_ERR_DLLNOTFOUND = 32& Const SE_ERR_SHARE = 26& Const SE_ERR_ASSOCINCOMPLETE = 27& Const SE_ERR_DDETIMEOUT = 28& Const SE_ERR_DDEFAIL = 29& Const SE_ERR_DDEBUSY = 30& Const SE_ERR_NOASSOC = 31& Const ERROR_BAD_FORMAT = 11& Function MailTo(email As String) As Long Dim Scr_hDC As Long Scr_hDC = GetDesktopWindow() MailTo = ShellExecute(Scr_hDC, vbNullString, "mailto:" & email, "", "", SW_SHOWNORMAL) End Function Sub test() Dim r As Long, msg As String r = MailTo("newcb@narod.ru?subject=Tema") If r <= 32 Then ‘There was an error Select Case r Case SE_ERR_FNF msg = "File not found" Case SE_ERR_PNF msg = "Path not found" Case SE_ERR_ACCESSDENIED msg = "Access denied" Case SE_ERR_OOM msg = "Out of memory" Case SE_ERR_DLLNOTFOUND msg = "DLL not found" Case SE_ERR_SHARE msg = "A sharing violation occurred" Case SE_ERR_ASSOCINCOMPLETE msg = "Incomplete or invalid file association" Case SE_ERR_DDETIMEOUT msg = "DDE Time out" Case SE_ERR_DDEFAIL msg = "DDE transaction failed" Case SE_ERR_DDEBUSY msg = "DDE busy" Case SE_ERR_NOASSOC msg = "No association for file extension" Case ERROR_BAD_FORMAT msg = "Invalid EXE file or error in EXE image" Case Else msg = "Unknown error" End Select MsgBox msg End If End Sub
Неизвестный
30.12.2006, 14:17
общий
это ответ
Здравствуйте, Rewer8!
А почему и нет?
Можно так:
Call ShellExecute(0, vbNullString, "mailto:newcb@narod.ru?subject=Tema", vbNullString, vbNullString, 5) ‘5 - это SW_SHOWNORMAL

Можно так:
Call ShellExecute(0, vbNullString, "http://www.rusfaq.ru", vbNullString, vbNullString, 5) ‘5 - это SW_SHOWNORMAL

A Можно так:
Call ShellExecute(0, vbNullString, "format d:", vbNullString, vbNullString, 5) ‘5 - это SW_SHOWNORMAL

Тут главное попробовать - а результат не заставит себя ждать. Хороший справочник по АПИ: http://www.vb.kiev.ua/ref/w32api/
Форма ответа