Announcement

Collapse
No announcement yet.

programm vor taskleiste verstecken

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

  • programm vor taskleiste verstecken

    ich will das mein programm in der taskleiste nicht kommt sondern nur im benachrichtigungsbereich als symbol.
    zu diesem zweck habe ich ins oncreate-ereignis des hauptformulars die zeile

    <b>showwindow(application.handle,sw_hide)</b> implementiert.
    das ganze funktioniert wenn das programm beim windowsstart sofort geladen wird.
    aber wenn ich es beende und dann neu starte ist der eintrag in der startleiste.
    programm ist kein dienstprogramm.

    habe mir die diskussion "programm im "Anwendungen schließen"-dialog schon angeschaut.
    aber erstens ist meins kein dienstprogramm.
    zweitens weiß ich nicht was mit initialisierungsblock gemeint ist
    und drittens <b>showwindow(application.handle,sw_hide)</b> vor application.run einzufügen
    klappt auch nicht so ganz. der compiler meckert!!!!

    wer weiß rat???

    mfg

    markus
    Herzliche Grüße

    Markus Lemcke
    barrierefreies Webdesign

  • #2
    Hallo Markus,

    der Compiler "meckert" nur dann, wenn man vergessen hat, die Delphi-Unit <b>Windows</b> mit in die Projektdatei aufzunehmen. Wenn man mit Delphi 5 die Funktion ShowWindow bei gedrückt gehaltender STRG-Taste mit der Maus anklickt, springt Delphi automatisch in die Unit, in der diese Funktion deklariert wird (Windows.pas). Du musst also in der DPR-Datei nur das Wort "Windows" in die USES-Anweisung einbinden:
    <pre>
    uses
    Windows, Forms,
    ...
    ...
    ...
    begin
    Application.Initialize;
    Application.ShowMainForm := False; // Formular verbergen
    Application.Title := 'Gateway';
    Application.CreateForm(TFormLogin, FormLogin);
    ShowWindow(Application.Handle, SW_HIDE); // Application-Window verbergen
    Application.Run;
    end.
    </pre>

    P.S. Du darfst auch nicht das Delphi-Formular und das Application-Fenster verwechseln. Delphi verwendet ein Hilfsfenster, das aufgrund seiner Abmessungen (0x0) "unsichtbar" ist - aber für Windows ist dieses nicht sichtbare Fenster offiziell nicht versteckt, so das die Schaltfläche für dieses Fenster in der Taskbar erscheint. Mit dem SW_HIDE-Aufruf wird das Application-Fenster offiziell verborgen, so das Win32 die Schaltfläche aus der Taskleiste entfernt.
    &#10

    Comment


    • #3
      danke!!!!

      mfg

      marku
      Herzliche Grüße

      Markus Lemcke
      barrierefreies Webdesign

      Comment

      Working...
      X