Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: Tulostimeen värit

hannlapp [15.11.2010 13:45:15]

#

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

neau33 [16.11.2010 02:20:49]

#

Moikka hannlapp!

VB6:lla...

(Mod. poisti koodin myöhemmässä viestissä olevan pyynnön johdosta.)

hannlapp [16.11.2010 08:29:25]

#

Moi Nea!

Mulla ei ole VB6, olen yrittänyt vaan tällä ilmasella vb-scriptillä suoritua, mutta kiitos kuitenkin.

hannu

neau33 [16.11.2010 15:39:57]

#

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

neau33 [16.11.2010 17:35:26]

#

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>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta