Новое расширение...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Demi-urg
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 03.07.2004 (Сб) 23:24
Откуда: не помню....

Новое расширение...

Сообщение Demi-urg » 26.11.2004 (Пт) 20:39

Вот допустим есть у меня новое расширение. Есть программа, которая работает с данным раширением (типа ворд-док, пейнтбраш-бмп и т.д. :D ) Так вот, в "Свойствах папки" - "Тип файла" можно установить соответствие.
Знатоки ! Внимание вопрос !
Как при запуске ВБ проги считать адрес файла => автоматически его открыть ?

Если тема была, то сорри, не нашёл... Тогда плиз, линк киньте...

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 26.11.2004 (Пт) 20:45

Код: Выделить всё
Option Explicit

'функции Win32 API
Private Declare Sub CopyMemory Lib "kernel32" _
Alias "RtlMoveMemory" (pDst As Any, pSrc As Any, _
ByVal ByteLen As Long)
Private Declare Function GetCommandLine Lib _
"kernel32" Alias "GetCommandLineA" () As Long
Private Declare Function lstrlen Lib "kernel32" Alias _
"lstrlenA" (ByVal lpString As Long) As Long

Private Sub Form_Load()
    MsgBox GetFName(GetCommLine)
End Sub

Public Function GetFName(CommandStr As String) As String
On Error Resume Next
    Dim rc As Long, rc2 As Long, rc3 As Long, rc4 As Long
    rc = InStr(1, CommandStr, Chr(34))
    If rc = 0 Then Exit Function
    rc2 = InStr(rc + 1, CommandStr, Chr(34))
    If rc2 = 0 Then Exit Function
    rc3 = InStr(rc2 + 1, CommandStr, Chr(34))
    If rc3 = 0 Then rc3 = rc2 + 1
    rc4 = InStr(rc3 + 1, CommandStr, Chr(34))
    If rc4 = 0 Then rc4 = Len(CommandStr) + 1
    GetFName = Mid$(CommandStr, rc3 + 1, rc4 - rc3 - 1)
End Function

Private Function GetCommLine() As String
On Error Resume Next
    Dim RetStr As Long, SLen As Long
    RetStr = GetCommandLine
    SLen = lstrlen(RetStr)
    If SLen > 0 Then
        GetCommLine = Space$(SLen)
        CopyMemory ByVal GetCommLine, ByVal RetStr, SLen
    End If
End Function
Последний раз редактировалось hCORe 28.11.2004 (Вс) 19:33, всего редактировалось 2 раз(а).
Моду создают модоки, а распространяют модозвоны.

Demi-urg
Начинающий
Начинающий
Аватара пользователя
 
Сообщения: 11
Зарегистрирован: 03.07.2004 (Сб) 23:24
Откуда: не помню....

Сообщение Demi-urg » 26.11.2004 (Пт) 20:55

спасибо
______________________________
>> Critical error - No keyboard found
>> Press Any key.

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 27.11.2004 (Сб) 1:14

а просто Command$ - не прёт?
Код: Выделить всё
Private Sub Form_Load()
MsgBox Command$
End Sub
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

Max!
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 502
Зарегистрирован: 03.04.2003 (Чт) 22:08
Откуда: Литва

Сообщение Max! » 27.11.2004 (Сб) 5:17

Всмысле
а просто Command$ - не прёт?
поясни и MsgBox пречём ?

:wink: [/code]
Max!

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 27.11.2004 (Сб) 10:07

Наверное, seelts не понимает, нафига в примере hCORe АПИ? Тогда я тоже :-)
Изображение

Sedge
Alternative Choice
Alternative Choice
Аватара пользователя
 
Сообщения: 1049
Зарегистрирован: 16.05.2002 (Чт) 18:23
Откуда: Somewhere-In-The-Net

Сообщение Sedge » 27.11.2004 (Сб) 10:31

Это наверное для того, чтобы программирование на VB медом не казалось :)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 27.11.2004 (Сб) 15:03

Не достойно VB-Экстремалам пользоваться каким-то то там Command$ :lol:

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 27.11.2004 (Сб) 15:29

Да нет, просто Command$ возвращает строку вида C:\PROGRA~1\MICROS~3\API.TXT, а приведенный мной пример - C:\Program Files\Microsoft Visual Studio .NET 2003\api.txt
Вот и вся разница :D

P.S. К тому же, должность экстремала обязывает :P
Моду создают модоки, а распространяют модозвоны.

seelts
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 143
Зарегистрирован: 21.11.2002 (Чт) 11:24
Откуда: Russia

Сообщение seelts » 27.11.2004 (Сб) 18:52

я безусловно прекланяю голову перед званием хКора, но просто для получения строки аргументов командной строки я думаю достаточно и моего варианта...
если создать алгоритм, которым сможет пользоваться даже дурак, то только дурак и будет им пользоваться

hCORe
VB - Экстремал
VB - Экстремал
Аватара пользователя
 
Сообщения: 2332
Зарегистрирован: 22.02.2003 (Сб) 15:21
Откуда: parent directory

Сообщение hCORe » 27.11.2004 (Сб) 19:00

Да ладно тебе, все нормально. Я не гордый :lol:
Моду создают модоки, а распространяют модозвоны.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

    TopList