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 SubMoikka 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 Subkä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.