Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: ассоциация по расширению Добавлено: 14.06.05 15:22  

Автор вопроса:  bas | Web-сайт: www.klyaksa.net
Народ, вопрос:
Надо сделать чтоб к какому-либо рассширению была привязана моя прога. Как делать нашел, только одна проблема: имя (и путь) файла обрезаются по первый пробел, т.е. не C:\Program Files\Microsoft Visual Studio\VB98\àññîöèàö\ïðîåêò1.exe , а C:\Program.exe получаем.
Как быть? Вроче где-то читал что надо что-то заковычить. Где? Как?
что пользовал:


Private Declare Function RegCreateKey Lib "advapi32.dll" _
Alias "RegCreateKeyA" (ByVal hKey As Long, ByVal lpSubKey _
As String, phkResult As Long) As Long

Private Declare Function RegSetValueEx Lib "advapi32.dll" _
Alias "RegSetValueExA" (ByVal hKey As Long, _
ByVal lpValueName As String, ByVal Reserved As Long, _
ByVal dwType As Long, lpData As Any, _
ByVal cbData As Long) As Long

Private Declare Function RegCloseKey Lib "advapi32.dll" _
(ByVal hKey As Long) As Long
Private Const HKEY_CLASSES_ROOT = &H80000000
Private Sub AssociateMyApp(ByVal sAppName As String, _
ByVal sEXE As String, ByVal sExt As String, _
Optional ByVal sIcon As String)
Dim lRegKey As Long
Call RegCreateKey(HKEY_CLASSES_ROOT, sExt, lRegKey)
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sAppName, Len(sAppName))
Call RegCloseKey(lRegKey)
Call RegCreateKey(HKEY_CLASSES_ROOT, sAppName & _
"\Shell\Open\Command", lRegKey)
Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sEXE, Len(sEXE))
Call RegCloseKey(lRegKey)
If Len(sIcon) Then
    Call RegCreateKey(HKEY_CLASSES_ROOT, _
    sAppName & "\DefaultIcon", lRegKey)
    Call RegSetValueEx(lRegKey, "", 0&, 1, ByVal sIcon, Len(sIcon))
    Call RegCloseKey(lRegKey)
End If
End Sub


Private Sub Form_Load()
AssociateMyApp "My TextEditor", App.Path & "\" & LCase(App.EXEName) & ".exe " & "%1", ".bbb", "C:\icon.ico"
End Sub

Ответить

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

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



Вопросов: 16
Ответов: 30
 Web-сайт: www.klyaksa.net
 Профиль | | #1
Добавлено: 14.06.05 19:27
нашел - написано:

' В разделе bbb создать раздел command, значение по умолчанию - полный
  ' путь к вашей программе (если используются пробелы, то в кавычках) с %1.
  ' Например '"c:\program files\MyProgram\MyProgram.exe" %1'.

только как это '"c:\program files\MyProgram\MyProgram.exe" %1'

как с этой толпой кавычек разобраться?

Private Sub Form_Load()
AssociateMyApp "My TextEditor", ???????, ".bbb", "C:\icon.ico"
End Sub

Ответить

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



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #2
Добавлено: 14.06.05 22:02
а что тут неясного, на месте вопросов - путь + имя исполняемого файла и %1, что означает место аргумента...

Ответить

Номер ответа: 3
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #3
Добавлено: 14.06.05 22:03
а что тут неясного, на месте вопросов - путь + имя исполняемого файла и %1, что означает место аргумента...

ЗЫ
Пиши то же самое...

Ответить

Номер ответа: 4
Автор ответа:
 Human_in_Shadow



ICQ: 323823769 

Вопросов: 0
Ответов: 4
 Профиль | | #4 Добавлено: 24.08.05 02:51
На сколько я всё понял, то тут проблемма имеено в этих злополучных ковычках. Именно потому что ВБ их распознаёт как елемент собственного кода, а не елемент текста ничего и не получается.

Asc ковычек равно 34. Так что просто добавь вначале и в конце пути к файлу Chr(34) и всё получиться.

Private Sub Form_Load()
AssociateMyApp "My TextEditor", Chr(34) & App.Path & "\" & LCase(App.EXEName) & ".exe" & Chr(34) & " %1", ".bbb", "C:\icon.ico"
End Sub

Ответить

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


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 24.08.05 12:44
В реестре должно быть записано ""C:\Path\prog.exe" "%1"" без расширения файла аргумента

Ответить

Страница: 1 |

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



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