Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: !ListBox. Второе пришествие :) Добавлено: 08.03.06 16:38  

Автор вопроса:  Android
Привет всем! Жаль, что не вижу искаженных радостью лиц :)
Моя проблема так и осталась нерешённой. И если кто сможет скинуть кусочек коду, буду очень признателен.
Я остановился на процедуре
Private Sub Form_Load()
List1.AddItem Command$
End Sub
Проблема заключается в том, что при вызове одного файла, всё ОК, а при вызове нескольких файлов, запускается столько же копий моей проги.
Мне на одном из форумов попалась интересная идея: запрет запуска второй копии приложения. Но как отловить все коммандные строки и вписать их в For...Next?
Если кто подзабыл о чём речь, то милости просим на http://www.vbnet.ru/forum/show.aspx?id=101003

Ответить

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

Номер ответа: 1
Автор ответа:
 Sacred Phoenix



ICQ: 304238252 

Вопросов: 52
Ответов: 927
 Профиль | | #1 Добавлено: 08.03.06 19:02
2 Android: кинь мне свой email, я сделаю и скину тебе проект :) Насколько я понял, тебе надо:

1. Разрешить запуск только 1ой копии проги
2. Передавать в 1ую копию проги командные строки остальных копий

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #2 Добавлено: 08.03.06 22:31
Да, всё правильно! Буду очень признателен тебе за это! oct1999_at_bk.ru

Ответить

Номер ответа: 3
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #3
Добавлено: 09.03.06 07:53
Option Explicit
'// Объявления

'// Функции
Private Declare Function RegCreateKeyEx Lib "advapi32.dll" Alias "RegCreateKeyExA" (ByVal hKey As Long, ByVal lpSubKey As String, ByVal Reserved As Long, ByVal lpClass As String, ByVal dwOptions As Long, ByVal samDesired As Long, lpSecurityAttributes As SECURITY_ATTRIBUTES, phkResult As Long, lpdwDisposition 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 Type SECURITY_ATTRIBUTES
    nLength As Long
    lpSecurityDescriptor As Long
    bInheritHandle As Boolean
End Type

'// Константы
Const HKEY_CLASSES_ROOT = &H80000000
Const REG_SZ = 1
Const KEY_ALL_ACCESS = &H3F

'// Функция для ассоциации типа файла с приложением
'// FileType - расширение файла

Public Sub AsProgram(FileType As String)
    Dim retval As Long
    Dim Result As Long
    Dim SA As SECURITY_ATTRIBUTES
    Dim sPath As String
    
    '// Создаем ключ для программы
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    '// Присваиваем значению по умолчанию название программы
    RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)
    
    
    '// Создаём ключ, связанный с расширением файла
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, FileType, 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    '// Присваиваем значению по умолчанию название программы
    RegSetValueEx Result, "", 0, REG_SZ, ByVal App.Title, Len(App.Title)
    
    '// Последние шаг - ассоциация типа с приложением
    
    '//Определяем командную строку для приложения
    If Right(App.Path, 1) = "\" Then
        sPath = App.Path & App.EXEName & ".exe %1"
    Else
        sPath = App.Path & "\" & App.EXEName & ".exe %1"
    End If
    
    retval = RegCreateKeyEx(HKEY_CLASSES_ROOT, App.Title & "\shell\open\command", 0, vbNullString, 0, KEY_ALL_ACCESS, SA, Result, &H1)
    RegSetValueEx Result, "", 0, REG_SZ, ByVal sPath, Len(sPath)

End Sub


Private Sub Command1_Click()
AsProgram ".txt"
End Sub


Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #4 Добавлено: 09.03.06 22:03
[root], насколько я понял из кода , ты меня продолжаешь учить, как ассоциировать файл с приложением. Я те очень благодарен за то, что нашёл время, но вопрос ведь сейчас не в этом! Меня долго и упорно учили, как делать ассоциации (интересно, почему-то никто не подсказал, как назначить ассоциированному файлу икону приложения? :) ) Чтобы ассоциировать, я могу и reg- файл написать, это не проблема.
Ещё раз спасибо!

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #5 Добавлено: 10.03.06 23:30
Думаю там ассоциировать надо не "%1" а чё-то другое, найди прогу которая открывает несколько файлов, и посмотри чё там у неё... Потом перехвати её Command$ будешь знать как приходят данные, ну а потом догадаешся как распарсить их :)

Ответить

Номер ответа: 6
Автор ответа:
 Android



Вопросов: 6
Ответов: 23
 Профиль | | #6 Добавлено: 11.03.06 22:38
WinAmp - "C:\Program Files\Winamp\Winamp.exe" "%1"
Пока идей, связанных с перехватом Command у winampa нету. По имени окна чтоли перехватывать? :/
Лёгкая задача для такого суперопытного профи, как я! :)))

Ответить

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



Вопросов: 6
Ответов: 23
 Профиль | | #7 Добавлено: 12.03.06 22:24
Сё! Нашёл, чё надо! :)
Если кому понадобится - мыльте, отмылю :)

Ответить

Номер ответа: 8
Автор ответа:
 [root]



Вопросов: 45
Ответов: 1212
 Web-сайт: bit.pirit.info
 Профиль | | #8
Добавлено: 13.03.06 06:15
давай посмотрим, inporta[O]yandex[o]ru

Ответить

Страница: 1 |

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



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