Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Как запускать... Добавлено: 17.11.03 00:17  

Автор вопроса:  -=Neo=- | ICQ: 252708240 

Как в Visual Basic 6.0 запускать программы и не выолняемые файлы?

Ответить

  Ответы Всего ответов: 12  

Номер ответа: 1
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #1
Добавлено: 17.11.03 03:42
Private 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

Ответить

Номер ответа: 2
Автор ответа:
 Pendalf



ICQ: 281656216 

Вопросов: 10
Ответов: 14
 Профиль | | #2 Добавлено: 18.11.03 03:32

' Pishi eto v module *************************************************************

Public 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

Public Declare Function GetDesktopWindow _

Lib "user32" () As Long

Public Function StartDoc(DocName As String, Parameters As String, WindowsStyle As Byte)

Dim Scr_hDC As Long

Scr_hDC = GetDesktopWindow()

StartDoc = ShellExecute(Scr_hDC, "Open", DocName, Parameters, "c:\", WindowsStyle)

End Function

Ответить

Номер ответа: 3
Автор ответа:
 -=Neo=-



ICQ: 252708240 

Вопросов: 3
Ответов: 13
 Профиль | | #3 Добавлено: 22.11.03 23:29
Justas: А как вызывать твой пример?

Ответить

Номер ответа: 4
Автор ответа:
 -=Neo=-



ICQ: 252708240 

Вопросов: 3
Ответов: 13
 Профиль | | #4 Добавлено: 22.11.03 23:47

А что, относительные ссылки типа ie6sp1\setup.exe не работают?

Ответить

Номер ответа: 5
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #5
Добавлено: 23.11.03 01:21

есть ВБ функция "Shell" чем она не нравится ?

Ответить

Номер ответа: 6
Автор ответа:
 -=Neo=-



ICQ: 252708240 

Вопросов: 3
Ответов: 13
 Профиль | | #6 Добавлено: 23.11.03 02:05

А тем не нравится что невозможно запускать относительные ссылки. как например указать чтоб при нажатии на Label1 автоматически определялась буква CD-ROM, а дальше из корневой папки запускать IE6\setup.exe? просто ie6\setup.exe не работает при том что папка ie6 находится в папке исходников.

Ответить

Номер ответа: 7
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #7
Добавлено: 23.11.03 03:49

хм... хм почему нельзя определить что это сидиром ?.... можно ... определить все устройства ну и соотсвеннго выбрать .... из них СД ром .. и всё.... а потом сделать следующие..

Shell cd_path & my_path

П.С: АПИ (GetLogicalDriveStrings, GetDriveType)

Ответить

Номер ответа: 8
Автор ответа:
 -=Neo=-



ICQ: 252708240 

Вопросов: 3
Ответов: 13
 Профиль | | #8 Добавлено: 23.11.03 04:09

А конкретней? Ну вставил я апи функцию, а как ее вызывать? Я новичок понимаете так что мне все по буквочкам...

Ответить

Номер ответа: 9
Автор ответа:
 Fallout



Вопросов: 10
Ответов: 387
 Web-сайт: mudator.by.ru
 Профиль | | #9
Добавлено: 23.11.03 16:31

'Example by Alexey (alexeyka2001@rambler.ru)

Private Const DRIVE_UNKNOWN = 0

Private Const DRIVE_ABSENT = 1

Private Const DRIVE_REMOVABLE = 2

Private Const DRIVE_FIXED = 3

Private Const DRIVE_REMOTE = 4

Private Const DRIVE_CDROM = 5

Private Const DRIVE_RAMDISK = 6

' returns errors for UNC Path

Private Const ERROR_BAD_DEVICE = 1200&

Private Const ERROR_CONNECTION_UNAVAIL = 1201&

Private Const ERROR_EXTENDED_ERROR = 1208&

Private Const ERROR_MORE_DATA = 234

Private Const ERROR_NOT_SUPPORTED = 50&

Private Const ERROR_NO_NET_OR_BAD_PATH = 1203&

Private Const ERROR_NO_NETWORK = 1222&

Private Const ERROR_NOT_CONNECTED = 2250&

Private Const NO_ERROR = 0

Private Declare Function WNetGetConnection Lib "mpr.dll" Alias _

"WNetGetConnectionA" (ByVal lpszLocalName As String, _

ByVal lpszRemoteName As String, cbRemoteName As Long) As Long

Private Declare Function GetLogicalDriveStrings Lib "kernel32" Alias _

"GetLogicalDriveStringsA" (ByVal nBufferLength As Long, _

ByVal lpBuffer As String) As Long

Private Declare Function GetDriveType Lib "kernel32" Alias "GetDriveTypeA" _

(ByVal nDrive As String) As Long

Private Function fGetDrives() As String

'Returns all mapped drives

Dim lngRet As Long

Dim strDrives As String * 255

Dim lngTmp As Long

lngTmp = Len(strDrives)

lngRet = GetLogicalDriveStrings(lngTmp, strDrives)

fGetDrives = Left(strDrives, lngRet)

End Function

Private Function fGetUNCPath(strDriveLetter As String) As String

On Local Error GoTo fGetUNCPath_Err

Dim Msg As String, lngReturn As Long

Dim lpszLocalName As String

Dim lpszRemoteName As String

Dim cbRemoteName As Long

lpszLocalName = strDriveLetter

lpszRemoteName = String$(255, Chr$(32))

cbRemoteName = Len(lpszRemoteName)

lngReturn = WNetGetConnection(lpszLocalName, lpszRemoteName, _

cbRemoteName)

Select Case lngReturn

Case ERROR_BAD_DEVICE

Msg = "Error: Bad Device"

Case ERROR_CONNECTION_UNAVAIL

Msg = "Error: Connection Un-Available"

Case ERROR_EXTENDED_ERROR

Msg = "Error: Extended Error"

Case ERROR_MORE_DATA

Msg = "Error: More Data"

Case ERROR_NOT_SUPPORTED

Msg = "Error: Feature not Supported"

Case ERROR_NO_NET_OR_BAD_PATH

Msg = "Error: No Network Available or Bad Path"

Case ERROR_NO_NETWORK

Msg = "Error: No Network Available"

Case ERROR_NOT_CONNECTED

Msg = "Error: Not Connected"

Case NO_ERROR

' all is successful...

End Select

If Len(Msg) Then

MsgBox Msg, vbInformation

Else

fGetUNCPath = Left$(lpszRemoteName, cbRemoteName)

End If

fGetUNCPath_End:

Exit Function

fGetUNCPath_Err:

MsgBox Err.Description, vbInformation

Resume fGetUNCPath_End

End Function

Private Function fDriveType(strDriveName As String) As String

Dim lngRet As Long

Dim strDrive As String

lngRet = GetDriveType(strDriveName)

Select Case lngRet

Case DRIVE_UNKNOWN 'The drive type cannot be determined.

strDrive = "Unknown Drive Type"

Case DRIVE_ABSENT 'The root directory does not exist.

strDrive = "Drive does not exist"

Case DRIVE_REMOVABLE 'The drive can be removed from the drive.

strDrive = "Removable Media"

Case DRIVE_FIXED 'The disk cannot be removed from the drive.

strDrive = "Fixed Drive"

Case DRIVE_REMOTE 'The drive is a remote (network) drive.

strDrive = "Network Drive"

Case DRIVE_CDROM 'The drive is a CD-ROM drive.

strDrive = "CD Rom"

Case DRIVE_RAMDISK 'The drive is a RAM disk.

strDrive = "Ram Disk"

End Select

fDriveType = strDrive

End Function

Sub sListAllDrives()

Dim strAllDrives As String

Dim strTmp As String

strAllDrives = fGetDrives

If strAllDrives <> "" Then

Do

strTmp = Mid$(strAllDrives, 1, InStr(strAllDrives, vbNullChar) - 1)

strAllDrives = Mid$(strAllDrives, InStr(strAllDrives, vbNullChar) + 1)

Select Case fDriveType(strTmp)

Case "Removable Media":

Debug.Print "Removable drive : " & strTmp

Case "CD Rom":

Debug.Print " CD Rom drive : " & strTmp

Case "Fixed Drive":

Debug.Print " Local drive : " & strTmp

Case "Network Drive":

Debug.Print " Network drive : " & strTmp

Debug.Print " UNC Path : " & _

fGetUNCPath(Left$(strTmp, Len(strTmp) - 1))

End Select

Loop While strAllDrives <> ""

End If

End Sub

Private Sub Form_Load()

Debug.Print "All available drives: "

sListAllDrives

End Sub

вот тебе примерчик ..... который показывает как использовать эти АПИ функции .... выводит в Дебаг окно именна всех дисков и их тип .....

да кстати насчёт относительных ссылок всё.... можно ....

как понимаю относительно ... твоей прнограммки ?... то просто

App.path & my_path

app.path - возвращает путь к твоей программки...

Ответить

Номер ответа: 10
Автор ответа:
 -=Neo=-



ICQ: 252708240 

Вопросов: 3
Ответов: 13
 Профиль | | #10 Добавлено: 23.11.03 16:47

Whoa! Ну и примерчик! Небось долго писал ?

Ну,  спасибо, а попробую. Если я понимаю,то можно использовать так:

Shell (App.Path & "file.exe")?

Ответить

Номер ответа: 11
Автор ответа:
 Justas



ICQ: 259418212 

Вопросов: 24
Ответов: 325
 Web-сайт: justas.newmail.ru
 Профиль | | #11
Добавлено: 24.11.03 02:31

ну почти..., App.Path тебе выдаст путь к exe_шнику без "\", значит перед file.exe вставляй "\"

т.е. код должен быть : Shell (App.Path & "\file.exe")

2. - "Justas: А как вызывать твой пример? "

это не пример, это API-функция, а как вызвать - ответ №2.

Ответить

Номер ответа: 12
Автор ответа:
 Pendalf



ICQ: 281656216 

Вопросов: 10
Ответов: 14
 Профиль | | #12 Добавлено: 24.11.03 06:26

Функция "StartDoc(DocName As String, Parameters As String, WindowsStyle As Byte)" запускает программки и документы связанные с этими прогами.

Параметр "DocName" - имя файла который ты хош запускать.

Параметр "Parameters" - дополнительные параметры для запуска проги, т.е. ключи.

Параметр "WindowsStyle" - вид окна запущенной проги, т.е. свернутый, развернутый, свернутый в окно, с фокусом или без него, и.т.п..

Вота тебе констаны "WindowsStyle": vbNormalNoFocus, vbNormalFocus, vbMinimizedNoFocus, vbMinimizedFocus, vbMaximizedFocus, vbHide.

Если чё обращайся

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам