Printable Version of Topic
Click here to view this topic in its original format
Forums > Флейм > Нужна помощь программиста., Написать и скомпилить немного несложного кода.


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

Если кто согласится помочь буду очень благодарен. :fear2: :w00t:

Posted by: LF_ on 03-07-2008, 17:35
Я, конечно, извиняюсь, но зачем тебе програмка? :) Есть даровый http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer/ (http://www.docu-track.com/home/prod_user/PDF-XChange_Tools/pdfx_viewer/, у него в правом нижнем углу есть меню
user posted image (http://ipicture.ru/
Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать.

Posted by: heineken man on 03-07-2008, 21:05
Не, тетки-бухгалтера должны даблкликом прямо из аутлука посылать инвойсы-пидиефы на цифровую подпись, но при этом с вариантом просто открыть в акробате если не инвойс. Но кстати попробую в воскресенье на работе, из любопытства. :)

Posted by: Set on 03-07-2008, 23:58
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" (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 и будет демка. Остальное элементарно отшлифуешь до нужной кондиции. :&#041;

Posted by: heineken man on 04-07-2008, 00:08
Set
Спасибо, попробую. :rolleyes:
Попробовал - не ассоциируется pdf с vbs файлом - требуется скомпилированный win32 аппликейшн. :&#040;

LF_:
Тоже может получиться, если только найти способ впихнуть в линейки нужную мне програму рядом с иконкой акробата. :help:

Posted by: Lab on 04-07-2008, 10:18
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу"

Posted by: heineken man on 04-07-2008, 14:34
Винда с .vbs отказывается открывать/ассоциировать, несет какой то бред. :bad1:

Posted by: FiL on 04-07-2008, 14:35
QUOTE (Lab @ 04-07-2008, 03:18):
дык а сама винда так умееет, показывать список програм, только надо разрушить текущую асоциацию и не ставить галочку "всегда использовать эту программу"
оно показывает весь список, а надо только 2 весьма конкретные программы.

Posted by: heineken man on 04-07-2008, 14:45
QUOTE (LF_ @ 03-07-2008, 16:35):
Если у тебя есть 10 прог, которые работают с PDF - оно их там будет показывать, одным кликом мона выбрать в какую именно вызвать.
Оно там только акробат и фокси показывает, а произвольную прогу только если она "намертво" заассоциирована с .pdf. :rolleyes: Как добавить произвольную прогу к списку я вчера ночью за 2 часа не нашел. :&#040;

Posted by: Lab on 04-07-2008, 17:47
а разве если ее через brouse найти, то потом там эта прога не зафиксируется? тогда жопа.

тогда надо писать прогу.

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

Posted by: Set on 04-07-2008, 21:19
С двумя вариантами будет проще.

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"

иначе ошибка.

Posted by: heineken man on 04-07-2008, 21:53
Мне главное, чтобы даблкликом на эттачменте в аутлоке запускалось, а то тетки похерят решение. :music:

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)