Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: Несколько параметров командной строки Добавлено: 26.07.11 18:00  

Автор вопроса:  @lex
Меня тут вопросы Daniel'а натолкнули на одну интересную штуку. Лень думать, как разжевать это на словах. Покажу на примере.

Есть пункт в контекстом меню, который открывает файл через мою программу, передавая ее путь.

Есть программа... Ну допустим такая, чисто для примера:

Private Sub Form_Load()
Text1.Text = Replace(Command, """", "")
End Sub


Все отлично. Путь к файлу успешно передается и пишется в текстбокс. Но если выделить в проводнике несколько файлов, и жмакнуть пункт меню - откроются 2 инстанса программы. В одном будет путь к первому файлу, во втором - ко второму.

И собственно вопрос: Есть у кого-то какие-то идеи по этому поводу? Возможно ли как-то передать пути нескольких файлов, не запуская программу для каждого отдельно?

Была идея сделать проверку PrevInstance, и если True - отправлять параметр через какой-нить SendWindowMessage и убиваться. Но это ИМХО бред.
Тем более если программа сама закрывается после обработки первого файла. Допустим:
Private Sub Form_Load()
If Command <> "" Then
Clipboard.Clear
Clipboard.SetText Replace(Command, """", "")
End If
End
End Sub

Успешно скопирует путь в буфер обмена, но если будет несколько файлов - скопируется только последний. Чекать PrevInstance бесполезно - программа сразу закрывается.
Надеюсь меня кто-то поймет Х_х
Возможно ли это как-то реализовать?) Просто интересно стало.

Ответить

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

Номер ответа: 1
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #1 Добавлено: 26.07.11 18:04
Я, честно говоря, думал, что гребаный проводник будет передавать пути файлов через какой-то разделитель. А он просто берет и обрабатывает их как несколько отдельных. Он, видимо, вообще "не знает", что файлов есть несколько.

Ответить

Номер ответа: 2
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #2 Добавлено: 26.07.11 18:20
Вот тот же Winrar. Если выделить несколько архивов и жмакнуть "Извлечь" - они все будут обрабатываться одним инстансом программы с общим прогрессбаром. КАК? ><

Ответить

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



ICQ: 610950440 

Вопросов: 12
Ответов: 45
 Web-сайт: smallsoft.ucoz.com
 Профиль | | #3
Добавлено: 26.07.11 18:55
@lex, это в точку. Ну как это сделать?

Ответить

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



ICQ: 610950440 

Вопросов: 12
Ответов: 45
 Web-сайт: smallsoft.ucoz.com
 Профиль | | #4
Добавлено: 26.07.11 18:58
Не, ну можно PrevInstance...
Можно куда-нить в файл писать

Ответить

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



Вопросов: 0
Ответов: 1
 Web-сайт: www.binfloor.ru
 Профиль | | #5
Добавлено: 26.07.11 19:02
Ну как это сделать?

Ответить

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



Вопросов: 87
Ответов: 2795
 Web-сайт: winandfx.narod.ru
 Профиль | | #6
Добавлено: 27.07.11 22:03
>Но это ИМХО бред.
ээ я именно так делал) песенки в проводнике выделеяшь, жмакаешь ентер и они добавляются в плейлист

Ответить

Номер ответа: 7
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #7 Добавлено: 28.07.11 02:22
Winand пишет:
ээ я именно так делал)

Хм. Ну спасибо, раз так. Значит буду чекать PrevInstance и юзать DDE.

Ответить

Номер ответа: 8
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #8 Добавлено: 29.07.11 23:12
юзать DDE
А вот это зря. На большинстве т.н. ЗверьСиДи и ТерминаторХР служба DDE по умолчанию выключена.
Разве что запускать её при запуске проги.

Ответить

Страница: 1 |

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



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