vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Re: SpecialFolderLocation 
Autor: Ralf Schoen
Datum: 28.01.04 12:08

Hi Guido, hoffe Dir geht es gut

Ok, zu deinem Problem.. Das mit der SetPrinter war schon mal der richtige Ansatz.
Du holst Dir über GetPrinter (Level 2) die Infos über den Drucker. Dann holst Du Dir die DevMode Struktur ... Da Du nur Pointer hast, mußt du ein bischen Memory spielen.
Dann änderst du die Werte und schreibst das ganze wieder zurück in den speicher.
Dann mit SetPrinter bestätigen und alles ist gut..... Hoffe mal das ist das was Du brauchst.

Ich habe das ganze in den Command_click gelegt kannst aber auch einfach eine
Function oder Sub draus mache...

Option Explicit
 
Private Sub Command1_Click()
Dim phPrinter As Long
Dim pDefault As PRINTER_DEFAULTS
Dim pDevMode As devMode
Dim pi2 As PRINTER_INFO_2
Dim dm As devMode
 
pDefault.pDevMode = pDevMode
pDefault.DesiredAccess = PRINTER_ACCESS_ADMINISTRATOR
 
  Debug.Print "o" & OpenPrinter(Printers(3).DeviceName, phPrinter, pDefault)
  Dim size As Long
  Dim bytesUsed As Long
 
 
' erstmal die größe holen (Buffer wird nicht direkt angelegt, daher erstmal die 
' wirkliche größe holen ;-)
Call GetPrinter(phPrinter, 2, ByVal 0&, 0, size)
ReDim Buffer(0 To size - 1) As Byte
 
' hier nochmal aufrufen und die Daten holen
Call GetPrinter(phPrinter, 2, Buffer(0), size, bytesUsed)
Call CopyMemory(pi2, Buffer(0), Len(pi2)) ' und ab damit in die Lokale kopie 
' -> schwups
 
 
' leider nur ein pointer auf die DevStruktur
m_pi2.pDevMode = pi2.pDevMode
 
' Aber dann holen wir uns halt die Daten selber -> DevMode füllen
Call CopyMemory(dm, ByVal m_pi2.pDevMode, Len(dm))
 
' änder was geändert werden muß
dm.dmPrintQuality = DMRES_LOW
 
' jezt wieder zurück damit...
Call CopyMemory(ByVal m_pi2.pDevMode, dm, Len(dm))
 
' und setzen....
Call SetPrinter(phPrinter, 2, pi2, 0&)
 
 
ClosePrinter phPrinter
End Sub
Hier jetzt noch die Declares . Hatte ich in einem Modul ..
<Nachricht zu lang>


Kannst Dich ja mal melden, ob es das war...

Viele Grüße

Ralf

Gru?

Ralf

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
SpecialFolderLocation2.843GuidoE24.01.04 22:56
Re: SpecialFolderLocation1.921ModeratorMartoeng24.01.04 23:07
Re: SpecialFolderLocation1.792GuidoE24.01.04 23:25
Re: SpecialFolderLocation1.764ModeratorMartoeng24.01.04 23:47
Re: SpecialFolderLocation1.888GuidoE25.01.04 01:56
Re: SpecialFolderLocation1.751zillertaler25.01.04 10:05
Re: SpecialFolderLocation1.848zillertaler25.01.04 10:16
Re: SpecialFolderLocation1.667GuidoE25.01.04 21:13
Re: SpecialFolderLocation1.688zillertaler26.01.04 10:38
Re: SpecialFolderLocation1.767GuidoE26.01.04 18:40
Re: SpecialFolderLocation1.762Mr. Fox26.01.04 20:18
Re: SpecialFolderLocation1.712GuidoE26.01.04 23:43
Re: SpecialFolderLocation1.593Mr. Fox27.01.04 00:38
Re: SpecialFolderLocation1.810GuidoE27.01.04 05:31
Re: SpecialFolderLocation2.055Ralf Schoen28.01.04 12:08
Hier jetzt das Modul 2.247Ralf Schoen28.01.04 12:08
Re: Hier jetzt das Modul 1.748GuidoE28.01.04 19:31
Re: SpecialFolderLocation1.514SirTurner03.03.05 18:39
Re: SpecialFolderLocation1.608Guido Eisenbeis04.03.05 01:54

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel