[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jan 2008
    Beiträge
    3

    Makro mit msgbox unter CA hat Problem

    Hallo Forum,
    habe schon einige Makros gebastelt, die auch ganz gut laufen, aber nun stehe ich vor einem Problem und komme nicht weiter.
    Wir benutzen oft Daten vom PC, die übernommen werden müssen. Damit die User wie gewohnt ihre Datei auf dem PC auswählen können, will ich den Windows-Dateiauswahl-Dialog einbauen. Das funktioniert auch prima, wenn der Aufruf gleich am Anfang des Makros steht. Aber üblicherweise haben wir vorher noch eine msgbox, die verschiedene Infos austauscht.
    Wenn die auskommentierte Zeile im Beispiel unten scharf ist, wird danach das Fenster mit der Dateiauswahl auf dem PC immer im Hintergrund geöffnet (d.h. der Anwender sieht es nicht sofort, sondern muß ahnen, dass er erst dieses Fenster suchen muß, damit das Makro weitergeht).
    Wie kann ich erreichen, dass das Fenster IMMER im Vordergrund startet?
    Ich hoffe mein Problem ist verständlich.

    Beispiel:

    [PCOMM SCRIPT HEADER]
    LANGUAGE=VBSCRIPT
    DESCRIPTION=
    [PCOMM SCRIPT SOURCE]
    OPTION EXPLICIT
    autECLSession.SetConnectionByName(ThisSessionName)
    DIM Antwort, dialog, pfad
    DIM Mldg, Stil, Titel
    Mldg = "Testmakro starten ?"
    Stil = vbYesNo + vbDefaultButton1
    Titel = "Testtool Datei-Dialog"
    ' Antwort = MSGBOX(Mldg, Stil, Titel) ' hier liegt das Problem !?
    FUNCTION getFilepath(dir)
    SET dialog = CreateObject("MSComDlg.CommonDialog")
    dialog.Filter = "csv-Dateien (*.csv)|*.csv|alle Dateien (*.*)|*.*"
    dialog.Flags = &H1004
    dialog.MaxFileSize = 260
    dialog.CancelError = false
    dialog.DialogTitle = "csv-Datei auswählen"
    dialog.InitDir = dir
    dialog.ShowOpen
    getFilepath = dialog.filename
    END FUNCTION
    as400
    SUB as400
    CONST ForReading = 1, ForWriting = 2, ForAppending = 3
    CONST TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0
    pfad = getFilepath("C:\temp")
    Antwort = MSGBOX("ausgewählt wurde: " & pfad, , "Funktionsergebnis")
    END SUB

    Weiß hier jemand Rat ?

    Besten Dank !

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.343
    Da das Makro in einem Hintergrund-Prozess abgearbeitet wird (die 5250-Sitzungen sind Unterprozesse der PC5250), kann der Fokus einer anderen Sitzung nicht einfach weggenommen werden.

    Dies ist eine generelle Windowseinstellung !

    Wenn eine andere Anwendung eine Nachricht ausgeben möchte, blinkt hierzu die entsprechende Titelzeile in der Taskleiste.
    Da der Hintergrundprozess aber in der Taskleiste nicht auftaucht, kann man auch nicht einfach auf diesen Prozess umschalten.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Jan 2008
    Beiträge
    3

    Zusatzfrage

    Hallo Herr Fuerchau,
    vielen Dank für Ihre schnelle Antwort.
    Dann läßt sich wohl nichts dran machen. Da seltsame ist eben nur, dass es so funktioniert, wie ich es gern hätte, wenn diese msgbox nicht vorher abläuft. Lasse ich sie weg (in meinem Test oben), ist der Dateidialog sofort im Vordergrund aktiv.
    Ich dachte, es hätte damit was zu tun.

    Trotzdem Danke.

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.343
    Der Dateidialog ist eine quasi eigene Anwendung ohne "Parent"-Fenster und kommt deshalb in den Vordergrund.

    Eine MSGBOX hängt sich automatisch an das Hauptfenster der Applikation und wird darüber angezeigt.

    In Windows gibts irgendwo einen Parameter "Prevent Application steeling Focus" oder so ähnlich.
    Diesen kann man natürlich auch für sich abschalten, was aber mitunter zum spontanen Wechsel von Fenstern führen kann.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. Problem mit Java-Methoden Aufruf aus ILE RPG?
    By Stoeberl in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-01-07, 10:58
  2. Problem bei Freigaben der Drucker im OpsNav
    By Aftershock in forum NEWSboard Drucker
    Antworten: 21
    Letzter Beitrag: 10-11-06, 08:52
  3. Authorization Problem nach ändern der Primary Group
    By ChrisX in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 11-10-06, 15:31
  4. Merkwürdiges Problem in VRPG
    By Flappes in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 06-10-06, 08:39
  5. CA Session per Makro beenden
    By Pachlina in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 17-01-01, 11:16

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •