hei
kuinka saan vbs:llä muutettua yhden tietyn tulostuksen ajaksi kirjoittimelleni värit päälle ja kun tulostus on tehty, niin automaattisesti muuttuisi taas oletustilaan eli mustavalkoiseksi?
Hannu
Moikka hannlapp!
VB6:lla...
(Mod. poisti koodin myöhemmässä viestissä olevan pyynnön johdosta.)
Moi Nea!
Mulla ei ole VB6, olen yrittänyt vaan tällä ilmasella vb-scriptillä suoritua, mutta kiitos kuitenkin.
hannu
Moderaattori voisitko ystävällisesti poistaa edellisen viestini syystä, että esimerkkikoodin käyttö sotkee tulostimen väriasetukset!!! (Mod. edit: poistettu.)
REKISTERIARVON PITÄÄ OLLA REG_BINARY ELI Byte
tässä korjattu toimiva koodi VB6:lle...
Private WshShell As Object Private DefaultPrinterRegistryValuePath As String Private DefaultPrinterDriverRegistryColorSettingPath As String Private Const COLOR_PRINT As Byte = 1 Private Const MONOCHROME_PRINT As Byte = 0 Private Sub Form_Load() DefaultPrinterRegistryValuePath = _ "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device" Set WshShell = CreateObject("WScript.Shell") Dim DefaultPrinter As String, DefaultPrinterData() As String DefaultPrinter = WshShell.RegRead(DefaultPrinterRegistryValuePath) DefaultPrinterData = Split(DefaultPrinter, ",") DefaultPrinter = DefaultPrinterData(0): Erase DefaultPrinterData DefaultPrinterDriverRegistryColorSettingPath = _ "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\" _ & DefaultPrinter & "\DsDriver\printColor" End Sub Private Sub Command1_Click() Dim ArrayValues, strValue, regValue As String ArrayValues = WshShell.RegRead(DefaultPrinterDriverRegistryColorSettingPath) For Each strValue In ArrayValues regValue = regValue & strValue Next If Val(regValue) = 0 Then WshShell.Regwrite DefaultPrinterDriverRegistryColorSettingPath, COLOR_PRINT, "REG_BINARY" Tähän Tulostuskoodi + koodi joka tarkistaa, että tulostus on suoritettu WshShell.Regwrite DefaultPrinterDriverRegistryColorSettingPath, MONOCHROME_PRINT, "REG_BINARY" End If End Sub Form_Unload(Cancel As Integer) Set WShell = Nothing End Sub
Moikka taas hannlapp!
tässä sama vbscriptinä...
'colorsetting.vbs Sub DoPrinterAction() Dim DefaultPrinterRegistryValuePath, DefaultPrinterDriverRegistryColorSettingPath Dim COLOR_PRINT, MONOCHROME_PRINT, WshShell Set WshShell = CreateObject( "Wscript.Shell" ) COLOR_PRINT = CByte(1) MONOCHROME_PRINT = CByte(0) DefaultPrinterRegistryValuePath = "HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows\Device" Dim DefaultPrinter, DefaultPrinterData DefaultPrinter = WshShell.RegRead(DefaultPrinterRegistryValuePath) DefaultPrinterData = Split(DefaultPrinter, ",") DefaultPrinter = DefaultPrinterData(0): Erase DefaultPrinterData Dim ArrayValues, strValue, regValue DefaultPrinterDriverRegistryColorSettingPath = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Printers\" + DefaultPrinter + "\DsDriver\printColor" ArrayValues = WshShell.RegRead(DefaultPrinterDriverRegistryColorSettingPath) For Each strValue In ArrayValues regValue = regValue & strValue Next If regValue <> "" Then WshShell.Regwrite DefaultPrinterDriverRegistryColorSettingPath, COLOR_PRINT, "REG_BINARY" 'Tähän Tulostuskoodi + koodi joka tarkistaa, että tulostus on suoritettu WshShell.Regwrite DefaultPrinterDriverRegistryColorSettingPath, MONOCHROME_PRINT, "REG_BINARY" End If Set WshShell = Nothing End Sub
käyttö esim. (ColorSetting.html)
<html><head><script language="vbscript" src="colorsetting.vbs"></script></head> <body><form method="POST" action=""> <p><input type="button" value="Print" name="B1" onclick="Call DoPrinterAction()"></p> </form></body></html>
Aihe on jo aika vanha, joten et voi enää vastata siihen.