В этом и есть решение. Объясню на пальцах: тебе нужно допускать запуск лишь одной копии программы. При попытке запуска второй копии, эта копия должна найти первый экзэмпляр и передать ему нужные данные ("C:\1.txt", к примеру). Первый экзэмпляр, получив данные, занесет их в ListBox.Тока вот незадача, для каждого файла стартанёт своя копия проги
Вряд-ли. Если произвести поиск по ключевым фразам из этого и предыдущего поста, то в сети можно обнаружить достаточно информации о том, как запретить запуск второй копии программы и как обмениваться данными между приложениями...Тока даст мне кто-нить ответ в виде кусочка кода
может привести к"C:\1.txt"
на NTFS.Access denied
Имелись ввиду данные, а не сам файл. Тем более, что права это уже гимор автора..."C:\1.txt"
Не по силам - читай книги. Но я считаю, что для твоей задачи не стоит заморачиваться ActiveX-сами, вполне подойдет мой вариант.А насчёт ActiveX... мне это пока не по силам
Option Explicit
'маркер
Private Const Mark As String = "msg"
'функция получения EXE имени программы
Private Function My_Name() As String
Dim st As String
st = App.Path
If Len(st) <> 3 Then st = st & "\"
My_Name = st & App.EXEName & ".exe"
End Function
'запуск 2 копии
Private Sub Command1_Click()
Dim i As Long, st As String
For i = 0 To List1.ListCount - 1
If List1.Selected(i) = True Then
st = st & List1.List(i) & Mark
End If
Next
Shell My_Name & " " & st, vbNormalFocus
End Sub
Private Sub Form_Load()
If Command$ = "" Then
'запуск 1 первой копии
List1.AddItem "C:\1.txt"
List1.AddItem "C:\2.txt"
List1.AddItem "C:\3.txt"
List1.AddItem "C:\4.txt"
List1.AddItem "C:\5.txt"
List1.AddItem "C:\6.txt"
List1.AddItem "C:\7.txt"
List1.AddItem "C:\8.txt"
List1.AddItem "C:\9.txt"
List1.AddItem "C:\10.txt"
Else
'запуск последующий
Dim m() As String, i As Long
m = Split(Command$, Mark)
For i = 0 To UBound(m)
List1.AddItem m(i)
Next
End If
End Sub
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 46