Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

Оболочка

Привет!
Прошу прощения за откровенно ламерский вопрос, но у меня такая задача:
надо сделать прогу с тремя кнопочками, чтобы при нажатии одной
кнопочки происходило открытие одного файла (открытие прогой, которая
сопоставлена для данного файла операционной системой), второй второго
и тд. Как это сделать (желательно на Delphi или Visual Basic.

С уважением, Акулич СЕ

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Mon, 8 Dec 2003 22:37:36 +0300 (#31914)

 

Ответы:

Здравствуйте, Hacktus.

в uses пропиши shellapi

потом в обработчике Onclick используешь функцию
ShellExecute(HWND hwnd,LPCTSTR lpOperation,LPCTSTR lpFile,LPCTSTR lpParameters,LPCTSTR
lpDirectory,INT nShowCmd);

HWND - дескриптор окна
lpOperation - строка. Содержит в общем случае(и в твоем тоже) 'open'
lpFile - строка, содержащая путь к файлу
lpParameters- строка с параметрами(если есть)
lpDirectory - строка, содержащая рабочую папку программы
nShowCmd - описывает, как будет открываться окно, те минимизированным,
по умолчанию итд.
Подробней в Windows SDK

Ответить   dEmon Mon, 8 Dec 2003 23:29:47 +0300 (#31935)

 

Здравствуйте !

Ну, да, в предыдущем ответе была указана функция ShellExecute.
Была дана декларация на C.

На VB это будет выглядеть :

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

Параметры :

Parameter Description
hwnd Identifies the parent window. This window receives any
message boxes an application produces (for example, for error
reporting).

lpszOp Points to a null-terminated string specifying the operation
to perform. This string can be "open" or "print." If this
parameter is NULL, "open" is the default value.

lpszFile Points to a null-terminated string specifying the file
to open.

lpszParams Points to a null-terminated 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 null-terminated string specifying the default
directory.

FsShowCmd Specifies whether the application window is to be shown when
the application is opened.

Пример :

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 StartDoc(DocName As String) As Long
Dim Scr_hDC As Long
Scr_hDC = GetDesktopWindow()
StartDoc = ShellExecute(Scr_hDC, "Open", DocName, _
"", "C:\", SW_SHOWNORMAL)
End Function

Private Sub Form_Click()
Dim r As Long, msg As String
r = StartDoc("C:\WINDOWS\ARCADE.BMP")
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

С уважением, Вахтуров Виктор.
Информационный сайт для программистов http://SoftMaker.com.ru

-*Информационный канал Subscribe.Ru
Написать в лист: mailto:comp.soft.prog.prog-list@subscribe.ru
Отписаться: http://subscribe.ru/member/unsub?grp=comp.soft.prog.prog&email=
http://subscribe.ru/ mailto:ask@subscribe.ru

Ответить   Tue, 9 Dec 2003 22:18:03 +0300 (#32446)