Imposta Stampante come Predefinita

venerdì 24 febbraio 2006 - 15.15

Anser Profilo | Junior Member

Salve,

avrei bisogno di stampare un report access su due stampanti.

Ho importato l'oggetto Microsoft Access Library per poter stampare con il DOCMD e son riuscito a stampare sulla stampante predefinita di windows senza impostare nulla.

Avrei bisogno di eseguire la stampa anche su un'altra stampante.

E' possibile indirizzare la stampa nel DOCMD verso una stampante che imposto io?

oppure c'e un modo per settare la mia "stampante 2" come Predefinita??

spero riusciate a risolvere questo mio problema

grazie in anticipo
Tms TEAM

Brainkiller Profilo | Guru

>Ho importato l'oggetto Microsoft Access Library per poter stampare
>con il DOCMD e son riuscito a stampare sulla stampante predefinita
>di windows senza impostare nulla.
>oppure c'e un modo per settare la mia "stampante 2" come Predefinita??

la mia faccia è abbastanza preoccupata ?

Allora ci sono alcuni metodi per cambiare la stampante predefinita:
1) API
2) Script
3) Registry
4) Altri modi che ignoro

Per il primo metodo devi mappare questa API:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/prntspol_027m.asp
ma la vedo un po' dura.

Il secondo non credo sia ciò che ti serve.

Il registro forse è la migliore soluzione.
Alla seguente locazione:
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\Windows
trovi sulla destra il valore Device che contiene una stringa che corrisponde alla stampante di default.

Seleziona alternativamente le tue due stampanti e prendi i due valori di testo che appaiono nel registro (premendo F5 per aggiornare il dato).

A questo punto modificando quella chiave sul registro con la prima e seconda strigna vai a modifiacre di fatto la stampante predefinita. E il gioco è fatto.

Ciao


David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

Anser Profilo | Junior Member

Grazie Mille!!

penso che opterò per il Registro.. se ho problemi mi faccio sentire


Tms TEAM

biggiu Profilo | Junior Member

Sei un genio!
Ho anch'io lo stesso problema per un applicativo VB.net che deve stampare alternativamente su una stampante per codici a barre ed una stampante a getto di inchiostro.

Ora provo a vedere se la cosa funziona correttamente.
BigGiu

biggiu Profilo | Junior Member

Ciao,

ho provato a modificarela chiave di registro ma non sono riuscito ad ottenere quello che desideravo.

Puoi spendere 5 minuti per postarmi il codice VB per eseguire la modifica di quella chiave di registro?

Io ho fatto cosi' :

'------------------------------------------------------'
' SETSYSPRT SETTAGGIO STAMPANTE PREDEFINITA '
'------------------------------------------------------'
Sub SetSysPrt(ByVal p As Integer)
Dim w1 As String
Try
'----- Lettura chiavi di registro
Dim KeyPos As RegistryKey = Registry.CurrentUser.OpenSubKey ("Software\Microsoft\Windows NT", True)
Dim KeyWrd As RegistryKey = KeyPos.OpenSubKey("CurrentVersion")
Dim KeyLocWrd = KeyWrd.OpenSubKey("Windows")
'----- Settaggio Stampante
Select Case p
Case 1
'----- Stampante per Etichette
???
Case 2
'----- Stampante per Documenti
???
End Select
KeyWrd.Close()
KeyPos.Close()

Catch errore As Exception
MessageBox.Show("ERRORE NELLA PARAMETRIZZAZIONE DELLA STAMPANTE DI SISTEMA", "SetSysPrt")
Exit Sub
End Try
End Sub

pero mi fermo alla rilevazione della stampante (GetValue)

non riesco a capire come utilizzare il SetValue

Grazie per l'aiuto
Buona Giornata e Buon Lavoro

BigGiu
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5