Domino 9 und frühere Versionen > Entwicklung

Drucker und Druckoptionen einstellen

<< < (9/13) > >>

muR:
Hallo,

hab' noch etwas probiert (auch mit meinem VB Tool) dabei hat sich gezeigt, daß Notes doch mitbekommt wenn der Drucker umgesetzt wird. Allerdings erst nach dem das Script beendet ist.
Probiert mal aus, das Script im Debug laufen lassen, nach dem Umsetzen des Druckers das Script stoppen, nach Notes wechseln und den Ausdruck starten, bei mir war dann der Drucker umgestellt.
Mein Problem ist jetzt, wie halte ich das Script an und gebe Notes für eine Kurze Zeit frei damit die Meldung von SendMessage auch angenommen werden kann. Dann hat auch Notes die Info über die neuen Einstellungen.
Die in der Hilfe beschrieben Yield Funktion läuft bei mir nicht. ???

enny:
So Leute, ich habe ja gesagt es gibt noch eine andere Möglichkeit als HWND-BROADCASTS an Notes zu schicken und ich habe auch eine gefunden! (Ich werde auf Arbeit nicht um sonst Potter genannt!) ;D

In den Declarations diese Zeile einfügen:
Declare Function GetForegroundWindow Lib "user32" () As Long

-----------------------------------------------------------------------------------------------

und dann in der Funktion zum Drucker wechseln das hier anstatt dem alten SendMessage-Aufruf:

Dim hWndNotes As Long ' Variable für das NotesFenster

' Über die Funktion GetForegroundWindow die HWND des aktuellen Fensters
' (Notes) auslesen
hWndNotes = GetForegroundWindow()

' anschließend die HWND SendMessage übergeben
Call SendMessage(hWndNotes, WM_WININICHANGE, 0, Byval "Windows")

-----------------------------------------------------------------------------------------------

Also es scheind zumindest schneller zu laufen! Ach ja hatte ich eigentlich vergessen zu sagen das ich nie probiert habe aus meiner TestDB gleich nach dem wechsel zu drucken, sondern mir dann lediglich die Einstellungen aus dem Druckmenü angeschaut hab?  ::)

Have a lot of fun ...

ata:
... na das hört sich schon mal anders an - ich gebe dir Bescheid, wenn es damit klappt....

ata

muR:
Hallo,

wir will der Unterschied nicht einleuchten, ob ich die SendMessage an alle offenen Fenster sende oder nur an das Notes Fenster. Bleibt für mein Verständnis gleich.

@enny, probier doch mal aus aus Deinem Script heraus zu drucken. Das es danach umgestellt würde ja mit meiner Aussage übereinstimmen, daß Notes die SendMessage Anweisung angenommen hat sobald das Script beendet ist.

Oder seit Ihr da anderer Meinung?
muR

Manfred:
Änderungen an den globalen Einstellungen sollten immer an alle Anwendungen mitgeteilt werden. Dies sollte zwar zu den Aufgaben eines Betriebssystems gehören, aber Microsoft überlässt es dem Programmierer.

Eine weitere Möglichkeit, das Notes-Fenster zu ermitteln:

Declare Function FindWindow Lib "user32" Alias "FindWindowA" (Byval lpClassName As String, Byval lpWindowName As Long) As Long

hWndNotes = FindWindow("NOTES", 0)

Funktioniert auch dann, wenn Notes nicht das "Foreground-Window" ist.

Manfred

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln