;;;w32prn-customize.el --- VBscript wrap imports w32 printer ports to customize ;;-*- Mode: Emacs-Lisp -*- ;Folding-Mode: C-c @ C-o to show all. ;; Time-stamp: <2005-09-28 20:21:04 bingalls> ;; $Id:$
;;__________________________________________________________________________ ;;; Legal: ;;Copyright © 2005 Bruce Ingalls ;;This file is not (yet) part of Emacs nor XEmacs. See file COPYING for license ;;Next version will be part of EMacro. GPL license also at http://www.gnu.org ;;; Version 2005-9alpha (defconst w32prn-customize-version "2005-9alpha") ;;__________________________________________________________________________ ;;{{{ Commentary ;;Requires MS Windows 2000 or higher, for VBScript support. ;;Lists default printer port and recognized printer ports by calling the ;;scripts getDefaultPrn.vbs & getAllPrn.vbs in the current path ;; ;;You should be able to use this, by invoking ;; (require 'lpr) ;; (w32prn-customize) ;;;Bugs: ;;w32prn-default() & w32prn-all work, as intended. ;;I need help with customize. ;;The w32prn-customize defun might not be quite right. ;;Also, w32prn-all does not yet populate a list of customize options. ;;; Keywords: w32, vbscript, printer, customize ;;; Author: Bruce Ingalls ;;; URL: http://emacro.sourceforge.net/ ;;; History: ;;; Change Log: 2005-9-28 created ;;__________________________________________________________________________ ;;}}} ;;{{{ Code ;;__________________________________________________________________________ ;;}}} ;;{{{ w32prn-customize (defun w32prn-customize() "Set `printer-name' to w32 default printer. This code might not work." (customize-set-value 'printer-name (w32prn-default)) (customize-save-variable)) ;;__________________________________________________________________________ ;;}}} ;;{{{ w32prn-default (defun w32prn-default() "Calls .\getDefaultPrn.vbs on w2k or newer, returning default printer port." (let ((buf (get-buffer-create "*w32prn-customize*"))) (set-buffer buf) (erase-buffer) (call-process "cscript.exe" nil buf nil "//nologo" ".\\getDefaultPrn.vbs") (end-of-line) (buffer-substring (point-min) (point)))) ;;__________________________________________________________________________ ;;}}} ;;{{{ w32prn-all (defun w32prn-all() "Calls .\getAllPrn.vbs on w2k or newer, setting \n delimited ports in w32prn-all. This provides a list for `customize' to choose from. Customize code to be provided in future." (let ((buf (get-buffer-create "*w32prn-customize*"))) (set-buffer buf) (erase-buffer) (call-process "cscript.exe" nil buf nil "//nologo" ".\\getAllPrn.vbs") (goto-char (point-min)) (end-of-buffer) (buffer-substring (point-min) (point)) ;;(split-string prn) )) ;;__________________________________________________________________________ ;; Local variables: ;; folded-file: t ;; folding-internal-margins: nil ;; end: (provide 'w32prn-customize) ;;}}} w32prn-customize.el ends here ______________________________ cut here ______________________________ ' getDefaultPrn.vbs ' Prints the default printer port. For use with Emacs ' Copyright 2005 Bruce Ingalls ' Modified from ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__printers_and_printing.asp ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_printer.asp strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer Where Default = True") For Each objPrinter in colInstalledPrinters Wscript.Echo objPrinter.PortName Next 'Other interesting attributes: ' Wscript.Echo "name " + objPrinter.Name ' Wscript.Echo "port " + objPrinter.PortName ' Wscript.Echo "server " + objPrinter.ServerName ' Wscript.Echo "location " + objPrinter.Location ' Wscript.Echo "shareName " + objPrinter.ShareName ' Wscript.Echo "systemName " + objPrinter.SystemName ' If objPrinter.Network then ' Wscript.Echo "net = true" ' End If ' If objPrinter.Local then ' Wscript.Echo "local = true" ' End If ______________________________ cut here ______________________________ ' getDefaultPrn.vbs ' Prints all known printer ports. For use with Emacs ' Copyright 2005 Bruce Ingalls ' Modified from ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/wmi_tasks__printers_and_printing.asp ' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wmisdk/wmi/win32_printer.asp strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" _ & strComputer & "\root\cimv2") Set colInstalledPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer") For Each objPrinter in colInstalledPrinters Wscript.Echo objPrinter.PortName Next -- Sent by bruce.ingalls from gmail element from com This is a spam protected message. Please answer with reference header. Posted via http://www.usenet-replayer.com _______________________________________________ Gnu-emacs-sources mailing list [email protected] http://lists.gnu.org/mailman/listinfo/gnu-emacs-sources
