Forums -> Флейм -> Нужна помощь программиста.
| Full Version

heineken man
Ситуация такая: нужно по даблклику на файле с расширением pdf запустить ассоциированную програмку предлагающую выбор - открыть файл в акробате или обработать в другой програме (имя хранится в редакции).
Батч не годится, это для бухгалтеров и нужны шашечки. На чем угодно, лишь бы запускалось из XP без проблем.
Звучит довольно просто, но к сожалению в имеющихся рабочих условиях я не могу заниматься такими делами по многим причинам. :(

Если кто согласится помочь буду очень благодарен. :fear2: :w00t:
LF_
Я, конечно, извиняюсь, но зачем тебе програмка? :) Есть даровый http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer/, у него в правом нижнем углу есть меню
user posted image
Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать.
heineken man
Не, тетки-бухгалтера должны даблкликом прямо из аутлука посылать инвойсы-пидиефы на цифровую подпись, но при этом с вариантом просто открыть в акробате если не инвойс. Но кстати попробую в воскресенье на работе, из любопытства. :)
Set
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
Set
Спасибо, попробую. :rolleyes:
Попробовал - не ассоциируется pdf с vbs файлом - требуется скомпилированный win32 аппликейшн. :(

LF_:
Тоже может получиться, если только найти способ впихнуть в линейки нужную мне програму рядом с иконкой акробата. :help:
Lab
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу"
heineken man
Винда с .vbs отказывается открывать/ассоциировать, несет какой то бред. :bad1:
FiL
QUOTE (Lab @ 04-07-2008, 03:18)
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу"
оно показывает весь список, а надо только 2 весьма конкретные программы.
heineken man
QUOTE (LF_ @ 03-07-2008, 16:35)
Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать.
Оно там только акробат и фокси показывает, а произвольную прогу только если она "намертво" заассоциирована с .pdf. :rolleyes: Как добавить произвольную прогу к списку я вчера ночью за 2 часа не нашел. :(
Lab
а разве если ее через brouse найти, то потом там эта прога не зафиксируется? тогда жопа.

тогда надо писать прогу.
Set
QUOTE (heineken man @ 04-07-2008, 14:34)
Винда с .vbs отказывается открывать/ассоциировать, несет какой то бред. :bad1:
Чё пишет? :actu:
Set
С двумя вариантами будет проще.

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
Мне главное, чтобы даблкликом на эттачменте в аутлоке запускалось, а то тетки похерят решение. :music: