AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
25.10.20 - 17:32:55
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino Sonstiges
| |-+  OLE/COM-Programmierung
| | |-+  API-Handle auf Druckerdialog
« vorheriges nächstes »
Seiten: [1] Nach unten Drucken
Autor Thema: API-Handle auf Druckerdialog  (Gelesen 6288 mal)
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« am: 22.06.12 - 12:15:34 »

Hi,

ich habe im Forum  unter "Grundgerüst für eine Excel-Klasse" ein schönes Codebeispiel von Axel gefunden, um per API-Handle ein Excel-fenster in den Vordergrund zu holen:
http://atnotes.de/index.php/topic,39862.msg253621.html#msg253621

Code:
  Dim hWnd As Long

    'Handle für Excel-Application ermittlen
    hWnd = FindWindow("XLMAIN", 0)
    If hWnd = 0 Then Exit Sub

    'Excel aktivieren und in den Vordergrund bringen
    Call SetActiveWindow(hWnd)
    Call SetForegroundWindow(hWnd)


Wie lautet denn die entsprechend Fensterbezeichnung für den Druckerauswahldialog (den ich per "excelobj.Application.Dialogs(8).Show" aufrufe)?

hWnd = FindWindow("print", 0) und hWnd = FindWindow("drucken", 0)

habe ich schon versucht - das ist sie aber offensichtlich nicht, hWnd gibt 0 zurück.

Hintergrund:

Unter Windows XP und Windows Server 2008 wird der Druckerauswahldialog im Vordergrund ausgegeben, unter Windows 7 aber im Hintergrund, und kann deshalb nur per "Desktop anzeigen" erreicht werden.
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #1 am: 22.06.12 - 12:32:31 »

Das ist nicht ganz trivial.

Hier -> http://www.herber.de/forum/archiv/372to376/t373425.htm hab ich mal einen Lösungsansatz gefunden. Getestet habe ich das allerdings nicht.

Hier wird der Fenstertitel herangezogen um das Handle zu ermitteln. Ich halte das für etwas problematisch, denn wenn z.B. bei einer neueren Version der Titel geändert wird, funktioniert dein Code schon nicht mehr.

Was hast du den vor? vielleicht gibt's auch noch einen anderen Weg.


Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« Antworten #2 am: 22.06.12 - 13:06:01 »

Was hast du den vor? vielleicht gibt's auch noch einen anderen Weg.

Hab ich doch geschrieben, im letzten Satz ;-)

Ich habe einen Stapeldruck programmiert, um die Excel-Anhänge aus verschiedenen Dokumenten, die in einer Ansicht selektiert wurden zu drucken.
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #3 am: 22.06.12 - 15:07:57 »

Hab ich doch geschrieben, im letzten Satz ;-)

Ich habe einen Stapeldruck programmiert, um die Excel-Anhänge aus verschiedenen Dokumenten, die in einer Ansicht selektiert wurden zu drucken.

In welchem letzten Satz?   Wink    Ahnungslos


Eventuell wäre die PrintOut - Methode des Worksheet - Objekts eine Alternative.

Axel

Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« Antworten #4 am: 25.06.12 - 12:47:35 »

Eventuell wäre die PrintOut - Methode des Worksheet - Objekts eine Alternative.
Negativ. Anforderung ist leider, dass die Druckereinstellungen vom Anwender konfiguriert werden können...
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #5 am: 25.06.12 - 16:04:42 »

Versuch's mal so

    ...
    hWnd = FindWindow("", "Fenstertitel")
    If hWnd = 0 Then Exit Sub
    ...

Das hab' ich irgendwo im Web gefunden.


Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
jo@chim
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 246



« Antworten #6 am: 25.06.12 - 16:28:48 »

Näää...
    hWnd = FindWindow("", "Fenstertitel")
... (bzw. "Drucken") gibt nen Lotusscript Fehler...
Gespeichert

Gruss,
Achim
-------------------
IBM Certified Advanced Application Developer Lotus Notes and Domino 7
Axel
Freund des Hauses!
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8658


It's not a bug, it's Notes


« Antworten #7 am: 25.06.12 - 16:46:35 »

Was für'n Fehler?

Ich habe mal noch ein bisschen gestöbert. Meine Erfahrungen mit API-Aufrufen hält sich in Grenzen. Ich habe schon ewige Zeiten nichts mehr in die Richtung gemacht.

Bei dieser Art Aufruf von FindWindow muss der erste Parameter ein Nullstring sein.

Versuch's mal so:
 
hWnd = FindWindow(0, "Fenstertitel")

oder

const strNullstring As String
hWnd = FindWindow(strNullstring , "Fenstertitel")

Axel
Gespeichert

Ohne Computer wären wir noch lange nicht hinterm Mond!
Seiten: [1] Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: