From 5f0d9b3637110e17ca3eda1bd3409c3982bebf28 Mon Sep 17 00:00:00 2001 From: Siep Kroonenberg Date: Mon, 22 Sep 2008 12:49:08 +0000 Subject: tnc_config.vbs: sample TeXnicCenter configuration script git-svn-id: svn://tug.org/texlive/trunk@10685 c570f23f-e606-0410-a88d-b1316a301751 --- Master/tlpkg/doc/tnc_config.vbs | 256 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 256 insertions(+) create mode 100644 Master/tlpkg/doc/tnc_config.vbs (limited to 'Master/tlpkg') diff --git a/Master/tlpkg/doc/tnc_config.vbs b/Master/tlpkg/doc/tnc_config.vbs new file mode 100644 index 00000000000..73e8f123a55 --- /dev/null +++ b/Master/tlpkg/doc/tnc_config.vbs @@ -0,0 +1,256 @@ +Option Explicit + +Dim oWsh, oExec, oEnv, sTmp, oTmp, sTL, sGS, sVal, sDat, dDat, oFS +Dim sP, sPr, bFirstConfig, bAdobe, sAdobe, i, j, s + +On Error Resume Next + +Set oWsh = Wscript.CreateObject("WScript.Shell") +Set oFS = CreateObject("Scripting.FileSystemObject") +Set oEnv = oWsh.Environment("PROCESS") + +''''''''''''''''''''''''''''''''''' +' WMI hocuspocus for deleting registry keys recursively, from +' http://www.tek-tips.com/viewthread.cfm?qid=674375&page=8 + +const hkcr=&h80000000 +const hkcu=&h80000001 +const hklm=&h80000002 + +Dim oReg + +Set oReg = GetObject("winmgmts:{impersonationLevel=impersonate}//" _ + & "./root/default:StdRegProv") + +Function DeleteRegEntry( sHive, sEnumPath ) + + Dim lRC, sKeyName, sNames + + ' Attempt to delete key. If it fails, start the subkey + ' enumeration process. + On Error Goto 0 + lRC = oReg.DeleteKey(sHive, sEnumPath) + ' The deletion failed, start deleting subkeys. + If (lRC <> 0) Then + + ' Subkey Enumerator + On Error Resume Next + + lRC = oReg.EnumKey( sHive, sEnumPath, sNames ) + + For Each sKeyName In sNames + If Err.Number <> 0 Then Exit For + lRC = DeleteRegEntry( sHive, sEnumPath & "\" & sKeyName ) + Next + ' On Error Goto 0 + + ' At this point we should have looped through all subkeys, trying + ' to delete the registry key again. + lRC = oReg.DeleteKey( sHive, sEnumPath ) + End If +End Function +''''''''''''''''''''''''''''''''''' + +' the installer calls this script with a parameter; +' the menu shortcut for later reconfiguration calls it without +Set oTmp = Wscript.Arguments +bFirstConfig = (oTmp.count >= 1) + +sTL = "" +If wscript.version < 5.6 Then + sTL = _ + oFS.GetFolder(oFS.GetFile(Wscript.ScriptFullName).ParentFolder).ParentFolder +Else + sTmp = "" + ' ask kpathsea + Set oExec = oWsh.Exec("kpsewhich -var-value=SELFAUTOPARENT") + sTmp = oExec.StdOut.ReadAll + Err.clear() + If sTmp <> "" then + sTmp = replace(sTmp, vbCr, "") + sTmp = replace(sTmp, vbLf, "") + sTL = replace(sTmp, "/", "\") + End If +End If +If sTL = "" Then + MsgBox "TeX Live not found; aborting...", vbOKOnly+vbCritical, "Error" + quit +End If +sTL = oFS.GetFolder(sTL).ShortPath +'wscript.echo "Root: " & sTL + +If Not bFirstConfig then + i = MsgBox("Please make sure that TeXnicCenter is not running!", _ + vbOKCancel+vbExclamation, "Check for TeXnicCenter") + If i = vbCancel Then + wscript.quit(1) + End If +End If + +Const sPro = "HKCU\software\toolscenter\texniccenter\profiles\" + +' remove old settings recursively + +Err.clear +DeleteRegEntry hkcu, "software\toolscenter\texniccenter\profiles" +Err.clear + +' [pdf]latex +For Each sPr in Array( _ + "LaTeX => DVI\", "LaTeX => PDF\", "LaTeX => PS\", "LaTeX => PS => PDF\") + sP = sPro & sPr + oWsh.RegWrite sP & "RunLatex", 1, "REG_DWORD" + If sPr = "LaTeX => PDF\" Then + oWsh.RegWrite sP & "LatexPath", sTL & "\bin\win32\pdflatex.exe" + Else + oWsh.RegWrite sP & "LatexPath", sTL & "\bin\win32\latex.exe" + End If + oWsh.RegWrite sP & "LatexArgs", "-synctex=-1 -interaction=nonstopmode ""%Wm""" + oWsh.RegWrite sP & "LatexStopOnError", 0, "REG_DWORD" + oWsh.RegWrite sP & "RunBibTex", 1, "REG_DWORD" + oWsh.RegWrite sP & "BibTexPath", sTL & "\bin\win32\bibtex.exe" + oWsh.RegWrite sP & "BibTexArgs", """%bm""" + oWsh.RegWrite sP & "RunMakeIndex", 1, "REG_DWORD" + oWsh.RegWrite sP & "MakeIndexPath", sTL & "\bin\win32\makeindex.exe" + oWsh.RegWrite sP & "MakeIndexArgs", """%bm""" + oWsh.RegWrite sP & "CloseViewBeforeCompilation", 0, "REG_DWORD" +Next + +' postprocessing: dvips +For Each sPr in Array("LaTeX => PS\", "LaTeX => PS => PDF\") + sP = sPro & sPr & "PostProcessors\" +oWsh.RegWrite sP & "PostProcessor0", _ + "DviPs" & vbLf & _ + sTL & "\bin\win32\dvips.exe" & vbLf & """%Bm.dvi""" & vbLf & vbLf +Next + +' postprocessing: ps2pdf +sGS = replace(sTL, "\", "/") & "/tlpkg/tlgs/" +oWsh.RegWrite sPro & "LaTeX => PS => PDF\PostProcessors\PostProcessor1", _ + "gswin32c" & vbLf & _ + sTL & "\tlpkg\tlgs\bin\gswin32c.exe" & vbLf & _ + "-I""" & sGS & "lib;" & sGS & "fonts;" & sGS & "Resource""" & _ + " -sPAPERSIZE#a4 -dPDFSETTINGS#/prepress -dCOMPATIBILITYLEVEL#1.3" & _ + " -dNOPAUSE -dBATCH -q -dSAFER -sDEVICE#pdfwrite" & _ + " -sOutputFile#""%Bm.pdf"" ""%Bm.ps""" & vbLf & vbLf + +' viewing: dvi +sPr = "LaTeX => DVI\" +oWsh.RegWrite sPro & sPr & "ViewerPath", _ + "wscript """ & sTL & "\tlrug\dviout.vbs""" + +For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") + sP = sPro & sPr & s + oWsh.RegWrite sP & "ProcessCmd", _ + "wscript """ & sTL & "\tlrug\dviout.vbs""" & vbLf & """%bm.dvi""" + oWsh.RegWrite sP & "DDECmd", vbLf & "System" & vbLf & vbLf +Next + +' viewing: ps +sPr = "LaTeX => PS\" +oWsh.RegWrite sPro & sPr & "ViewerPath", "wscript """ & sTL & "\tlrug\psv.vbs""" +For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") + sP = sPro & sPr & s + oWsh.RegWrite sP & "ProcessCmd", _ + "wscript """ & sTL & "\tlrug\psv.vbs""" & vbLf & """%bm.ps""" + oWsh.RegWrite sP & "DDECmd", vbLf & "System" & vbLf & vbLf +Next + +' viewing: pdf +' when reconfiguring, check for Adobe Reader; +' if found, ask whether to use it +If bFirstConfig Then + bAdobe = False +Else + Err.clear + bAdobe = True + sTmp = oWsh.RegRead("HKCR\.pdf\") + If ((Err.number>0) Or (sTmp="")) Then + bAdobe = False + Err.clear + Else + 'wscript.echo ".pdf: " & sTmp + sTmp = oWsh.RegRead("HKCR\" & sTmp & "\Shell\Open\Command\") + If Err.number>0 Then + bAdobe = False + Err.clear + Else + 'wscript.echo "open command:" & vbnewline & stmp & vbnewline + If InStr(sTmp, """") = 1 Then + sTmp = Mid(sTmp, 2) + End If + i = InStr(sTmp, ".exe") + If i=0 Then + bAdobe = False + Else + sAdobe = Mid(sTmp, 1, InStr(sTmp, ".exe")+3) + 'wscript.echo "reader:" & sAdobe + Err.clear + oTmp = oFS.GetFile(sAdobe) + If Err.number>0 Then + bAdobe = False + Err.clear + 'wscript.echo sadobe & " not a file" + End If + End If + End If + End If + If bAdobe Then + i = MsgBox( "Use Adobe Reader/Acrobat instead of SumatraPDF?", _ + vbYesNo+vbQuestion, "PDF viewer") + If i = vbNo Then + bAdobe = False + End If + End If +End If +'If badobe Then +' wscript.echo "reader: " & sadobe +'Else +' wscript.echo "no reader" +'End If + +For Each sPr in Array("LaTeX => PDF\", "LaTeX => PS => PDF\") + If bAdobe Then + oWsh.RegWrite sPro & sPr & "ViewerPath", sAdobe + oWsh.RegWrite sPro & sPr & "CloseViewBeforeCompilation", 1, "REG_DWORD" + For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") + sP = sPro & sPr & s + oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" + oWsh.RegWrite sP & "ProcessCmd", vbLf + oWsh.RegWrite sP & "DDECmd", "acroview" & vbLf & "control" & vbLf & _ + "[DocOpen(""%bm.pdf"")][FileOpen(""%bm.pdf"")]" & _ + vbLf & sAdobe + ' "[MenuitemExecute(""GoBack"")]" & + Next + sP = sPro & sPr & "ViewCloseCmd\" + oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" + oWsh.RegWrite sP & "ProcessCmd", vbLf + oWsh.RegWrite sP & "DDECmd", _ + "acroview" & vbLf & "control" & vbLf & _ + "[DocClose(""%bm.pdf"")]" & vbLf + Else + oWsh.RegWrite sPro & sPr & "ViewerPath", sTL & "\sumatrapdf\SumatraPDF.exe" + oWsh.RegWrite sPro & sPr & "CloseViewBeforeCompilation", 0, "REG_DWORD" + For Each s in Array("ViewCurrentCmd\", "ViewProjectCmd\") + sP = sPro & sPr & s + oWsh.RegWrite sP & "ActiveType", 1, "REG_DWORD" + oWsh.RegWrite sP & "DDECmd", "SUMATRA" & vbLf & "control" & vbLf & _ + "[ForwardSearch(""%bm.pdf"",""%nc"",%l,0)]" & vbLf & _ + sTL & "\sumatrapdf\SumatraPDF.exe" + 'oWsh.RegWrite sP & "ProcessCmd", _ + ' sTL & "\SumatraPDF\SumatraPDF.exe" & vbLf & """%bm.pdf""" + oWsh.RegWrite sP & "ProcessCmd", vbLf + Next + oWsh.RegWrite sPro & sPr + End If +Next + +If Not bFirstConfig Then + If bAdobe then + MsgBox "TeXnicCenter now configured for TeX Live 2008 and Adobe Reader", _ + 0, "TeXnicCenter Configuration" + Else + MsgBox "TeXnicCenter now configured for TeX Live 2008 and SumatraPDF", _ + 0, "TeXnicCenter Configuration" + End If +End If -- cgit v1.2.3