Forum | | | | - Seite 1 - |
| | Hallo alle zusammmen...
Ich habe keinen blassen Schimmer von Netzwerken und auch habe auch keins, mit dem ich mal herumexperimentieren kann. Deshalb folgende Fragen:
- Kann jeder, der an dem Netzwerk angeschlossen ist, die Druckeigenschaften verändern (z.B. von Hochformat auf Querformat stellen), oder kann man das nur von dem Rechner aus, an dem der Drucker angeschlossen ist? (betriebssystem wichtig...)
- Welche Privilegien gelten, wenn ich in einem Netzwerk auf einem anderen Computer Systemspezifische Sachen ausführen will (RegConnectRegistry, RegLoadKey, RegSaveKey)??? |
| | | | |
| | | | - Seite 2 - |
| | | Meine Frage hier nochmals etwas spezieller formuliert:
Die Konstanten und API-Deklarationen, die ich suche, sind in der Header-Datei winddiui.h deklariert. Wer hat diese Datei oder wie komme ich an diese Header-Datei (egal für welche Programmiersprache)???
|
| | | | |
| | | Hab was schönes gefunden. Wo gehts, wo nicht? Welche Rüchgaben? KompilierenMarkierenSeparierenDEF @GetProfileString(5) !"kernel32","GetProfileStringA"
DEF @OpenPrinter(3) !"winspool.drv","OpenPrinterA"
DEF @DocumentProperties(6) !"winspool.drv","DocumentPropertiesA"
DEF @ClosePrinter(1) !"winspool.drv","ClosePrinter"
DEF @GetLastError(0) !"kernel32","GetLastError"
DEF &Ver_Platform_Win32_Windows 1
DEF &Ver_Platform_Win32_NT 2
Struct OSVERSIONINFO = dwOSVersionInfoSize&,dwMajorVersion&,dwMinorVersion&,dwBuildNumber&,dwPlatformId&,szCSDVersion$(128)
Proc Drucker_Orientation_Umstellen
Parameters Orientation% 1=Hochformat, 2=Querformat
Declare WINVER&,OS#
Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#
Declare Pdevice$,Count&,Länge&,DevMode#,DevMode2#,Länge&,Fehler&
Declare count#,Pointer_TO_DEVMODE&
Dim OS#,OSVERSIONINFO
OS#.dwOSVersionInfoSize& = 148
External("Kernel32","GetVersionExA",OS#)
LET Winver& = 8
If OS#.dwPlatformId& = &Ver_Platform_Win32_Windows
If OS#.dwMajorVersion& = 4
Case OS#.dwMinorVersion& = 0 : Winver& = 1
Case OS#.dwMinorVersion& = 10 : Winver& = 2
Case OS#.dwMinorVersion& = 90 : Winver& = 3
Endif
ElseIf OS#.dwPlatformId& = &Ver_Platform_Win32_NT
Case OS#.dwMajorVersion& = 3 : Winver& = 4
Case OS#.dwMajorVersion& = 4 : Winver& = 5
Case OS#.dwMajorVersion& = 5 : Winver& = 6
Case OS#.dwMinorVersion& = 1 : Winver& = 7
Endif
Dispose OS#
DIM ReturnBuffer#,256
Addstring "Ausrichtung soll auf "+@STR$(Orientation%)+" gesetzt werden!"
Let SectionName$="Windows"
Let KeyName$="device"
DefautString$=""
@GetProfileString(@ADDR(SectionName$),@ADDR(KeyName$),@ADDR(DefautString$),ReturnBuffer#,256)
LET Printername$=@SubStr$(@STRING$(ReturnBuffer#,0),1,",")
Addstring "Aus WIN.INI ausgelesener Standartdrucker: "+Printername$
IF WinVer&<4
DIM PHANDLE#,4
LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
Addstring "Fehlercode OpenPrinter: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Länge&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
Addstring "Länge der DEVMODE Struktur: "+@STR$(Länge&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
DIM DevMode#,Länge&
DIM DevMode2#,Länge&
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Fehler&=@Word(DevMode#,44)
Addstring "Alte Ausgelesene Ausrichtung: "+@STR$(Fehler&)
Long DevMode#,40=1
Word DevMode#,44=Orientation%
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,DevMode#,8 | 2 | 1)
Addstring "Rückgabe von DocumentProperties beim Setzen der Eigenschaft: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Fehler&=@Word(DevMode#,44)
Addstring "Neue Ausgelesene Ausrichtung: "+@STR$(Fehler&)
Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
Addstring "Rückgabe von ClosePrinter beim Auslesen der Struktur: "+@STR$(Fehler&)
Dispose DevMode#
Dispose PHANDLE#
Dispose DevMode2#
Else
DIM DevMode2#,10001
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API vor dem Auslesen von DEVMODE: "+@STR$(Fehler&)
SHELL "rundll32 printui.dll,PrintUIEntry /Ss /n "+CHR$(34)+Printername$+CHR$(34)+" /a "+CHR$(34)+"C:PDEVMODE.DAT"+CHR$(34)+" u"
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API nach dem Auslesen von DEVMODE: "+@STR$(Fehler&)
SLeep 1000
ASSIGN #1,"C:PDEVMODE.DAT"
OpenRW #1
LET Länge&=@BlockRead(#1,DevMode2#,0,10000)
Addstring "Länge der Datei: "+@STR$(Länge&)
Addstring "Alte Ausgelesene Ausrichtung: "+@STR$(@WORD(DevMode2#,$E4))
WORD DevMode2#,$E4=Orientation%
SEEK #1,0
BlockWrite #1,DevMode2#,0,Länge&
CloseRW #1
Sleep 1000
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API vor dem Setzen von DEVMODE: "+@STR$(Fehler&)
SHELL "rundll32 printui.dll,PrintUIEntry /Sr /n "+CHR$(34)+Printername$+CHR$(34)+" /a "+CHR$(34)+"C:PDEVMODE.DAT"+CHR$(34)+" u"
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API nach dem Setzen von DEVMODE: "+@STR$(Fehler&)
Sleep 1000
ERASE #1
ENDIF
Dispose ReturnBuffer#
Dispose DevMode2#
Dispose OS#
Endproc
Drucker_Orientation_Umstellen 2
@EDitBox("Ruckgaben",1)
|
| | | | |
| | | [quote:bf4329f382]Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Fehlercode letzter API vor dem Auslesen von DEVMODE: 0 Fehlercode letzter API nach dem Auslesen von DEVMODE: 0 Länge der Datei: 2728 Alte Ausgelesene Ausrichtung: 1 Fehlercode letzter API vor dem Setzen von DEVMODE: 0 Fehlercode letzter API nach dem Setzen von DEVMODE: 0[/quote:bf4329f382]Dann Fehler Variable nicht deklariert Dispose os#
Aber egal! 2.Durchgang:[quote:bf4329f382]Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Fehlercode letzter API vor dem Auslesen von DEVMODE: 0 Fehlercode letzter API nach dem Auslesen von DEVMODE: 0 Länge der Datei: 2728 Alte Ausgelesene Ausrichtung: 2 Fehlercode letzter API vor dem Setzen von DEVMODE: 0 Fehlercode letzter API nach dem Setzen von DEVMODE: 0[/quote:bf4329f382]Es klappt! Hurray
Salve, iF |
| | | | |
| | | Hallo IF...
Ich hätte mir eigendlich schon vorher denken können, daß du schneller testest, als ich mein Posting schreiben kann .
Ich vermute bei dem Quelltext noch Probleme mit OpenPrinter bei einem Netzwerkdrucker. Es wäre mir deshalb sehr wichtig, daß möglichst viele mittesten... |
| | | | |
| | | Wie gesagt - mein Drucker ist ein Netzwerkdrucker - ein Netzwerkdrucker der jedoch nicht an einem Computer angeschloßen ist - sondern direkt am Switch.
Netzwerkiger gehz also nicht
Ich denke jedoch - es spielt keine Rolle ob Netzwerkdrucker oder nicht - da aus der Sicht Deiner APIs ja immer der lokal-eingerichtete-Drucker eingestellt wird - so wie es sich gehört.
Man kann quasi nicht die Druckereinstellungen eines Druckers verändern - sondern nur die Einstellungen eines Rechners. Wo der Drucker letztendlich angeschloßen ist spielt dabei ja keine Rolle - das ist ja sache von Windows im Bereich Druckereinstellungen -> Anschlüsse.
Salve, iF |
| | | | |
| | | Scheinbar werden an den Anfang der DEVMODE-Datei Infos geschrieben, die Druckerabhängig sind. Der Offset paßte also noch nicht überall, deshalb hier ein neuer Code: - Wo ändern sich die Einstellungen, wo nicht? - Welche Rückmeldungen gibt es?
Ich brauche möglichst viele Rückmeldungen, weil ich in das, was ich hier tue, keinen größeren Einblick habe (RUNDLL). Außerdem kann es in Windows98 Netzwerken vielleicht noch zu Problemen kommen, die ich im Augenblick nicht erkennen kann. Von ME weiß ich nicht, ob hier der Flag DM_UPDATE noch unterstützt wird (ist undokumentiert). Von NT kann ich nicht sagen, ob hier das PRINTUI Interface vorhanden ist.
Wer schon den alten Code getestet hat, sollte vorher einmal die Druckeinstellungen aufrufen und auf übernehmen klicken, damit eventuell vorher falsch ingestellten Werte gelöscht werden und der Offset gefunden werden kann...
Hier ein neuer Code: KompilierenMarkierenSeparierenDEF @GetProfileString(5) !"kernel32","GetProfileStringA"
DEF @OpenPrinter(3) !"winspool.drv","OpenPrinterA"
DEF @DocumentProperties(6) !"winspool.drv","DocumentPropertiesA"
DEF @ClosePrinter(1) !"winspool.drv","ClosePrinter"
DEF @GetLastError(0) !"kernel32","GetLastError"
DEF @DocumentPropertiesW(6) !"winspool.drv","DocumentPropertiesW"
DEF &Ver_Platform_Win32_Windows 1
DEF &Ver_Platform_Win32_NT 2
Struct OSVERSIONINFO = dwOSVersionInfoSize&,dwMajorVersion&,dwMinorVersion&,dwBuildNumber&,dwPlatformId&,szCSDVersion$(128)
Proc Drucker_Orientation_Umstellen
Parameters Orientation% 1=Hochformat, 2=Querformat
Declare WINVER&,OS#
Declare SectionName$,KeyName$,DefautString$,ReturnBuffer#,Printername$,PHANDLE#,Länge2&
Declare Pdevice$,Count&,Länge&,DevMode#,DevMode2#,Länge&,Fehler&,Offset&,Zähler&
Declare Found%,Länge2&,Vergleich&
Declare count#,Pointer_TO_DEVMODE&
Dim OS#,OSVERSIONINFO
OS#.dwOSVersionInfoSize& = 148
External("Kernel32","GetVersionExA",OS#)
LET Winver& = 8
If OS#.dwPlatformId& = &Ver_Platform_Win32_Windows
If OS#.dwMajorVersion& = 4
Case OS#.dwMinorVersion& = 0 : Winver& = 1
Case OS#.dwMinorVersion& = 10 : Winver& = 2
Case OS#.dwMinorVersion& = 90 : Winver& = 3
Endif
ElseIf OS#.dwPlatformId& = &Ver_Platform_Win32_NT
Case OS#.dwMajorVersion& = 3 : Winver& = 4
Case OS#.dwMajorVersion& = 4 : Winver& = 5
Case OS#.dwMajorVersion& = 5 : Winver& = 6
Case OS#.dwMinorVersion& = 1 : Winver& = 7
Endif
Dispose OS#
DIM ReturnBuffer#,256
Addstring "Ausrichtung soll auf "+@STR$(Orientation%)+" gesetzt werden!"
Let SectionName$="Windows"
Let KeyName$="device"
DefautString$=""
@GetProfileString(@ADDR(SectionName$),@ADDR(KeyName$),@ADDR(DefautString$),ReturnBuffer#,256)
LET Printername$=@SubStr$(@STRING$(ReturnBuffer#,0),1,",")
Addstring "Aus WIN.INI ausgelesener Standartdrucker: "+Printername$
Dispose ReturnBuffer#
LET Pdevice$=""
IF WinVer&<4
DIM PHANDLE#,4
LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
Addstring "Fehlercode OpenPrinter: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Länge&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
Addstring "Länge der DEVMODE Struktur: "+@STR$(Länge&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
DIM DevMode#,Länge&
DIM DevMode2#,Länge&
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Fehler&=@Word(DevMode#,44)
Addstring "Alte Ausgelesene Ausrichtung: "+@STR$(Fehler&)
Long DevMode#,40=1
Word DevMode#,44=Orientation%
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,DevMode#,8 | 2 | 1)
Addstring "Rückgabe von DocumentProperties beim Setzen der Eigenschaft: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET FEHLER&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode2#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Fehler&=@Word(DevMode#,44)
Addstring "Neue Ausgelesene Ausrichtung: "+@STR$(Fehler&)
Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
Addstring "Rückgabe von ClosePrinter: "+@STR$(Fehler&)
Dispose DevMode#
Dispose PHANDLE#
Dispose DevMode2#
Else
DIM PHANDLE#,4
LET Fehler&=@OpenPrinter(@ADDR(Printername$),PHANDLE#,0)
Addstring "Fehlercode OpenPrinter: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
LET Länge2&=@DocumentProperties(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),0,0,0)
Addstring "Länge der DEVMODE Struktur: "+@STR$(Länge2&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
DIM DevMode#,Länge2&+256
LET FEHLER&=@DocumentPropertiesW(%HWND,@Long(PHANDLE#,0),@ADDR(Pdevice$),DevMode#,0,2)
Addstring "Rückgabe von DocumentProperties beim Auslesen der Struktur: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzte API: "+@STR$(Fehler&)
DISPOSE DevMode2#
DIM DevMode2#,10001
Let Fehler&=@ClosePrinter(@Long(PHANDLE#,0))
Addstring "Rückgabe von ClosePrinter: "+@STR$(Fehler&)
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API vor dem Auslesen von DEVMODE: "+@STR$(Fehler&)
SHELL "rundll32 printui.dll,PrintUIEntry /Ss /n "+CHR$(34)+Printername$+CHR$(34)+" /a "+CHR$(34)+"C:PDEVMODE.DAT"+CHR$(34)+" u"
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API nach dem Auslesen von DEVMODE: "+@STR$(Fehler&)
SLeep 1000
ASSIGN #1,"C:PDEVMODE.DAT"
OpenRW #1
LET Länge&=@BlockRead(#1,DevMode2#,0,10000)
CloseRW #1
Addstring "Länge der Datei: "+@STR$(Länge&)
LET OFFSET&=0
LET FOUND%=1
LET Zähler&=0
While @AND(Found%=1,OFFSET&<(Länge&-72))
Let FOUND%=0
While @AND(Found%=0,Zähler&<70)
LET VERGLEICH&=Offset&+Zähler&
PRINT @STR$(OFFSET&)+" "+@STR$(Zähler&)+" "+@STR$(@BYTE(DevMode#,Zähler&))+" "+@STR$(@Byte(DevMode2#,VERGLEICH&))
LET FOUND%=0
IF @BYTE(DevMode#,Zähler&)<>@Byte(DevMode2#,VERGLEICH&)
LET Found%=1
endif
LET Zähler&=Zähler&+1
WEND
if Zähler&<70
LET FOUND%=1
LET ZÄHLER&=0
LET OFFSET&=OFFSET&+1
else
LET FOUND%=10
LET ZÄHLER&=0
Endif
WEND
IF FOUND%<>10
Addstring "Offset konnte nicht ermittelt werden!"
ASSIGN #2,"C:PDEVMODE2.DAT"
OPENRW #2
BlockWrite #2,DevMode#,0,Länge2&
CLOSERW #2
Else
Addstring "Offset liegt bei: "+@STR$(OFFSET&)
LET VERGLEICH&=OFFSET&+44+32
Addstring "Alte Ausgelesene Ausrichtung: "+@STR$(@WORD(DevMode2#,Vergleich&))
IF @or(@WORD(DevMode2#,Vergleich&)=1,@WORD(DevMode2#,Vergleich&)=2)
WORD DevMode2#,VERGLEICH&=Orientation%
OPENRW #1
BlockWrite #1,DevMode2#,0,Länge&
CloseRW #1
Sleep 1000
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API vor dem Setzen von DEVMODE: "+@STR$(Fehler&)
SHELL "rundll32 printui.dll,PrintUIEntry /Sr /n "+CHR$(34)+Printername$+CHR$(34)+" /a "+CHR$(34)+"C:PDEVMODE.DAT"+CHR$(34)+" u"
Let Fehler&=@GetLastError()
Addstring "Fehlercode letzter API nach dem Setzen von DEVMODE: "+@STR$(Fehler&)
Sleep 1000
ERASE #1
else
Addstring "Devmode Offset nicht gefunden!"
endif
endif
Dispose PHANDLE#
Dispose DevMode2#
Dispose DevMode#
ENDIF
Endproc
Drucker_Orientation_Umstellen 2
@EDitBox("Ruckgaben",1)
|
| | | | |
| | | [quote:937d49d457]Ausrichtung soll auf 2 gesetzt werden! Aus WIN.INI ausgelesener Standartdrucker: Phaser 8400DP-2 Fehlercode OpenPrinter: 1 Fehlercode letzte API: 0 Länge der DEVMODE Struktur: 2512 Fehlercode letzte API: 6 Rückgabe von DocumentProperties beim Auslesen der Struktur: 1 Fehlercode letzte API: 122 Rückgabe von ClosePrinter: 1 Fehlercode letzter API vor dem Auslesen von DEVMODE: 122 Fehlercode letzter API nach dem Auslesen von DEVMODE: 0 Länge der Datei: 2728 Offset liegt bei: 152 Alte Ausgelesene Ausrichtung: 2 Fehlercode letzter API vor dem Setzen von DEVMODE: 0 Fehlercode letzter API nach dem Setzen von DEVMODE: 0[/quote:937d49d457] |
| | | | |
| | | Hallo IF...
Klappt bei dir also scheinbar weiterhin. Bei Bernhard Künzel funktionierts unter Windows2000 ebenfalls. Bei mir Unter Windows98 ohne Netzwerk gehts ebenfalls. So langsam wirds was... |
| | | | |
| | CB | Hallo Andreas, NT-Netzwerk: Folgende Fehlermessage:
(RUNDLL) Fehler in printui.dll Folgender Eintrag fehlt: PrintUIEntry (Diese Message erscheint überdies 2x hintereinander)
Getestet mit deiner älteren Code-Version. Hilft Dir das weiter? Deinen Ausführungen entnehme ich, daß sich bezüglich NT in der neuen Version (noch) nix geändert hat - korrekt? Sonst müßte ich noch vor dem Wochenende Deine neuere Version testen. Das ist von hier aus ein bißchen umständlich, da nicht mit dem www verbunden (bin in der Arbeit und habe hier eine etwas ältere Workstation mit NT4, an die ich meinen privaten PC mitsamt Laserprinter angestöpselt habe ) Und übers Wochenende muß ich nicht unbedingt hier sein...
Gruß, Christian |
| | | | |
| | | Hallo Christian...
Das hat mir sehr geholfen! Unter WindowsNT fehlt also das Printui-Interface. Kannst du mal nachsehen, ob die PRINTUI.DLL dort überhaupt vorhanden ist? |
| | | | |
| | CB | Ja, (steht in System32)
Gruß, Christian |
| | | | |
| | | OK...
Dann fehlt jetzt eigentlich nur noch was lauffähiges für WindowsNT.
Da ich vermute, daß auch hier der Flag DM_UPDATE nicht unterstützt wird, werde ich das erst gar nicht versuchen. Für Anregungen und Ideen in Bezug auf WindowsNT wäre ich sehr dankbar... |
| | | | |
|
AntwortenThemenoptionen | 12.113 Betrachtungen |
ThemeninformationenDieses Thema hat 6 Teilnehmer: |