Dienst startet nicht, oder macht nicht was er soll



  • hallo,

    ich habe ein ServiceApplikation angefangen, welche in regelmäßigen abständen eine form anzeigen soll

    //---------------------------------------------------------------------------
    #include "Unit1.h"
    #include "Unit2.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    
    TService1 *Service1;
    //---------------------------------------------------------------------------
    __fastcall TService1::TService1(TComponent* Owner)
    	: TService(Owner)
    {
    }
    
    TServiceController __fastcall TService1::GetServiceController(void)
    {
    	return (TServiceController) ServiceController;
    }
    
    void __stdcall ServiceController(unsigned CtrlCode)
    {
    	Service1->Controller(CtrlCode);
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TService1::Timer1Timer(TObject *Sender)
    {
    if(Form2->Showing)
     {ShowMessage("Form bereits im Vordergrund");}
    else
     Form2->Show();        
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TService1::ServiceExecute(TService *Sender)
    {
    Timer1->Enabled=true;
    }
    //---------------------------------------------------------------------------
    

    habe sie mit /install gestartet, und siw wurde auch installiert!
    habe sie dann manuell gestartet....jedoch kommt meine form nicht!

    was amche ich falsch?



  • kann mir da niemand helfen?



  • Hi,

    bist du schon mal mit debuggen durchgegangen ob dein Timer überhaupt aufgerufen wird?

    mfg



  • naja, wenn ich die sache in der IDE starte, wird die form angezeigt, nur wenn ich es als dienst installiere nicht!



  • sadad schrieb:

    naja, wenn ich die sache in der IDE starte, wird die form angezeigt, nur wenn ich es als dienst installiere nicht!

    Doch, die Form wird angezeigt, aber nicht auf dem Desktop des Benutzers.



  • MFK schrieb:

    sadad schrieb:

    naja, wenn ich die sache in der IDE starte, wird die form angezeigt, nur wenn ich es als dienst installiere nicht!

    Doch, die Form wird angezeigt, aber nicht auf dem Desktop des Benutzers.

    kannst du mir das etwas genauer erklären?
    wie mach ich das denn richtig?
    geht sowas garnicht?



  • Dienste können i.d.R. keine Fenster öffnen, denn ein Dienst startet ja auch schon dann, wenn kein Benutzer angemeldet ist.

    Es gibt aber die Möglichkeit, einen Datenaustausch zwischen den Dienst und den Desktop zuzulassen. Das wird über die Dienste-Verwaltung vorgenommen. Dort die Eigenschaften deines Dienstes aufrufen und unter dem Reiter "Anmelden" "Datenaustausch zwischen Dienst und Desktop zulassen" abhaken.


Anmelden zum Antworten