heineken man
@ 03-07-2008, 13:59
Ситуация такая: нужно по даблклику на файле с расширением pdf запустить ассоциированную програмку предлагающую выбор - открыть файл в акробате или обработать в другой програме (имя хранится в редакции).
Батч не годится, это для бухгалтеров и нужны шашечки. На чем угодно, лишь бы запускалось из XP без проблем.
Звучит довольно просто, но к сожалению в имеющихся рабочих условиях я не могу заниматься такими делами по многим причинам. :(
Если кто согласится помочь буду очень благодарен. :fear2: :w00t:
Я, конечно, извиняюсь, но зачем тебе програмка? :) Есть даровый
http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer/, у него в правом нижнем углу есть меню

Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать.
heineken man
@ 03-07-2008, 21:05
Не, тетки-бухгалтера должны даблкликом прямо из аутлука посылать инвойсы-пидиефы на цифровую подпись, но при этом с вариантом просто открыть в акробате если не инвойс. Но кстати попробую в воскресенье на работе, из любопытства. :)
test.htm
CODE |
<body> <input type="radio" name="ch1">1<BR> <input type="radio" name="ch2">2<BR> <input type="radio" name="ch3">3<P> </body> |
test.vbs
QUOTE |
Set objExplorer = CreateObject("InternetExplorer.Application")
objExplorer.Navigate "file://d:\test.htm" objExplorer.ToolBar = 0 objExplorer.StatusBar = 0 objExplorer.Width = 400 objExplorer.Height = 250 objExplorer.Left = 400 objExplorer.Top = 250 objExplorer.Visible = 1
Do While True If objExplorer.Document.All.ch1.checked Then Wscript.CreateObject("Wscript.Shell").Run "notepad.exe" Exit Do End If If objExplorer.Document.All.ch2.checked Then Wscript.CreateObject("Wscript.Shell").Run "notepad.exe d:\test.htm" Exit Do End If If objExplorer.Document.All.ch3.checked Then Wscript.CreateObject("Wscript.Shell").Run "notepad.exe d:\test.vbs" Exit Do End If
WScript.Sleep 250 Loop
objExplorer.Quit |
Подправить абсолютный путь к test.htm, даблклик на test.vbs и будет демка. Остальное элементарно отшлифуешь до нужной кондиции. :)
heineken man
@ 04-07-2008, 00:08
Set
Спасибо, попробую. :rolleyes:
Попробовал - не ассоциируется pdf с vbs файлом - требуется скомпилированный win32 аппликейшн. :(
LF_:
Тоже может получиться, если только найти способ впихнуть в линейки нужную мне програму рядом с иконкой акробата. :help:
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу"
heineken man
@ 04-07-2008, 14:34
Винда с .vbs отказывается открывать/ассоциировать, несет какой то бред. :bad1:
QUOTE (Lab @ 04-07-2008, 03:18) |
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу" |
оно показывает весь список, а надо только 2 весьма конкретные программы.
heineken man
@ 04-07-2008, 14:45
QUOTE (LF_ @ 03-07-2008, 16:35) |
Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать. |
Оно там только акробат и фокси показывает, а произвольную прогу только если она "намертво" заассоциирована с .pdf. :rolleyes: Как добавить произвольную прогу к списку я вчера ночью за 2 часа не нашел. :(
а разве если ее через brouse найти, то потом там эта прога не зафиксируется? тогда жопа.
тогда надо писать прогу.
С двумя вариантами будет проще.
test.vbs
CODE |
Select Case MsgBox("Yes - otkryvaem v notepad" & Chr(10) & "No - v wordpad", vbYesNoCancel, "Chto delat?") Case vbYes Wscript.CreateObject("Wscript.Shell").Run "notepad.exe " & chr(34) & Wscript.Arguments(0) & chr(34) Case vbNo Wscript.CreateObject("Wscript.Shell").Run "wordpad.exe " & chr(34) & Wscript.Arguments(0) & chr(34) End Select |
Запускать только с аргументом в виде имени нужного файла, так
test2.vbs "d:\links.txt"
иначе ошибка.
heineken man
@ 04-07-2008, 21:53
Мне главное, чтобы даблкликом на эттачменте в аутлоке запускалось, а то тетки похерят решение. :music: