Announcement

Collapse
No announcement yet.

BringWindowToTop?

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • BringWindowToTop?

    Hallo Entwickler!

    Ich bin immernoch und noch dringender auf der Suche nach einer Möglichkeit ein DOS-Fenster Aktiv auf meinen Bildschirm zu bringen. Mit BringWindowToTop(...) erhält das DOS-Fenster zwar den Fokus, bleibt aber minimiert in der Status-Leiste. Wer kann mir sagen, wie ich das DOS-Fenster Maximiert auf meinen Bildschirm bekomme!?
    Außerdem gibt es eine Möglichkeit mit AppActivate()!??? Leider kenne ich die dcu nicht die diese procedure enthällt. Bitte um schnelle Antwort, da ich meine Technikerarbeit bald beendet haben muß!
    Danke im Voraus!!!
    Gruß Andreas

  • #2
    Hi

    versuch
    <li>SendMessage(DOSFensterHandle, wm_Syscommand, sc_Maximize, 0);
    <li>ShowWindow(DosFensterHandle, sw_Maximized);

    Gruß Hage

    Comment


    • #3
      Hallo Hagen!
      Danke für die Lösung. Leider funktioniert diese auf mein DOS-Fenster nicht. Wenn ich sie auf ein Windowsfenster anwende funktioniert es.
      Gibt es noch ne andere Möglichkeit oder mach ich was falsch?

      procedure TForm1.Button1Click(Sender: TObject);
      var WHandle : THandle;
      begin
      WHandle := FindWindow(nil, 'dsa'); // Name des DOS-Programms
      SendMessage(WHandle, wm_Syscommand, sc_Maximize, 0);
      BringWindowToTop(WHandle); // Programm in der Leiste erhällt Fokus
      end;

      Die Zeile
      ShowWindow(WHandle, sc_Maximized);
      funktioniert bei mir nicht - "sc-Maximized" wird angemotzt.

      Hab ich was vergessen? Das Zurückschalten in mein Delphi-Programm würde gehen, jedoch die Statusleiste fehlt dann.
      Hast Du noch nen Tip für mich?
      Gruß Andrea

      Comment


      • #4
        <b> sw_Maximize </b>, Du solltest mal in der Hilfe nach <b> ShowWindow() </b> suche

        Comment


        • #5
          Hallo Hagen!

          1000 x Dank!!! Jetzt hab ich eine große Sorge weniger.
          Vielleicht hast Du auch nen Tip warum bei mir die function/procedure
          SendKeys() nicht erkannt wird(Undefinierter Bezeichner)!? Ist diese function eine selbstdefinierte?
          In der Hilfe ist nix zu finden.
          Für alle die das Umschalten zu nem DOS-Programm benötigen -
          so geht es:

          1: procedure TForm1.Button1Click(Sender: TObject);
          2: var DOS : HWND;
          3: begin
          4: DOS := FindWindow(nil, 'DOS-Programm-Name'); // Name übergeben
          5: BringWindowToTop(DOS); // DOS-Fenster erhält Focus
          6: ShowWindow(DOS, SW_Maximize); // Fenster wird maximiert
          7: end;

          Ich hab es auch mal ohne Zeile 5 - mal ohne Zeile 6 probiert aber
          es geht nur DoppeltGemoppelt.

          Gruß Andrea

          Comment


          • #6
            Hallo Andreas

            Die Function Sendkeys wie es sie unter VB gibt, existiert in Delphi als Standard Befehl nicht.
            Es wird jedoch auf der Delphi 5.0 CD eine Unit bereitgestellt die diese Funktion beinhaltet. Diese Funktion erledigt die ganzen API - Aufrufe im Hintergrund!!

            Pfad:
            "{CDROM_LW}\INFO\EXTRAS\SENDKEYS\Sndkey32.pas"

            mfg Hansjör

            Comment


            • #7
              Danke - habs gefunden.

              Mal sehen wie ich das ins Projekt am besten einfüge.

              Gruß Andrea

              Comment

              Working...
              X