AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Service als Konsolenanwendung vor Login
Thema durchsuchen
Ansicht
Themen-Optionen

Service als Konsolenanwendung vor Login

Ein Thema von Angel4585 · begonnen am 30. Mär 2006 · letzter Beitrag vom 4. Apr 2006
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#11

Re: Service als Konsolenanwendung vor Login

  Alt 3. Apr 2006, 07:33
LOL, bei mir auch nicht und habe mich somit selber ausgesperrt.

In einer Konsolenanwendung het es aber. Muss ich mir mal angucken.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#12

Re: Service als Konsolenanwendung vor Login

  Alt 3. Apr 2006, 07:45
Also ich bin auf Abmelden, dann hat der Debugger gefragt ob ich beenden will und dann auf abbrechen, dann war ich wieder zurück auf dem alten Desktop

Edit: hab jetzt mal versucht aus der Konsole raus en Formular anzuzeigen und da hab ich mich auch wieder ausgesperrt.. ohne gehts aber. Was ist en ner MessageBox anders als an einem Formular?

Edit2: Also das Problem scheint die Unit "Forms" zu sein, sobald ich diese einbinde schliess ich mich aus...

Edit3: Also ich kann jetzt mit Canvas auf diesen zweiten Desktop zeichnen, aber könnte ich diesen zweiten Desktop nicht vielleicht auch irgendwie als eine Art Fenster auf dem ersten Desktop anzeigen lassen?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#13

Re: Service als Konsolenanwendung vor Login

  Alt 3. Apr 2006, 08:58
Also theoretisch müsste doch, wenn ich auf den zweiten Desktop switche und dann mit Shellexecute ein Programm starte, dieses Programm auf ddiesem zweiten Desktop zu sehen sein, oder?

Auf jedenfall geschieht das nicht. Das programm wird auf dem ersten Desktop angezeigt...

Edit: Also ich hab jetzt mal den "Ernstfall" getestet:

Ein Dienst(TService) welcher den Desktop switcht und mit Canvas darauf die Uhrzeit anzeigt.

Funktioniert NICHT. Er switcht zwar den Desktop und wartet die 20 Sekunden, aber das Canvas wird nicht gezeichnet, hier der Code:

Delphi-Quellcode:
procedure TTestServerDienst.BaitAndSwitchDesktop;
var
  OldDesk : HDESK;
  NewDesk : HDESK;
  Canvas : TCanvas;
  DC : HDC;
begin
  OldDesk := GetThreadDesktop(GetCurrentThreadID);
  NewDesk := CreateDesktop(PChar('Foobar'), nil, nil, 0, DESKTOP_CREATEWINDOW or
    DESKTOP_SWITCHDESKTOP or DESKTOP_CREATEMENU, nil);
  if NewDesk <> 0 then
  begin
    SetThreadDesktop(NewDesk);
    Windows.SwitchDesktop(NewDesk);
    //DrawPicture('E:\Bild_2.bmp');
    ATestTime:=IncSecond(Now,20);
    try
     Canvas := TCanvas.Create();
      try
       try
          Canvas.Handle := DC;
          with canvas.Font do
           begin
           Size:=96;
           Color:=clRed;
           end;
         while (ATestTime > Now)and not Terminated do
          Canvas.TextOut(100,800,DateTimetoStr(ATestTime));
       except
        end;
        finally
          Canvas.Free;
        end;
      finally
        ReleaseDC(0, DC);
      end;
    Windows.SwitchDesktop(OldDesk);
    SetThreadDesktop(OldDesk);
    CloseDesktop(NewDesk);
  end;
  CloseDesktop(OldDesk);
end;
{******************************************************************************}
procedure TTestServerDienst.ServiceExecute(Sender: TService);
begin
ATestTime:=IncMinute(Now,2);
while (ATestTime>Now)and not terminated do
 BaitAndSwitchDesktop;
end;
Was muss ich ändern?
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#14

Re: Service als Konsolenanwendung vor Login

  Alt 4. Apr 2006, 08:28
Also ich schaff es jetzt zumindest vor dem Login mit Canvas auf den neuen Desktop zu zeichnen, das problem ist jetzt nur, dass der alte Desktop nichtmehr zurück kommt.. heisst: Ich kann mich nichtmehr einloggen.. nurnoch übern abgesicherten Modus.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#15

Re: Service als Konsolenanwendung vor Login

  Alt 4. Apr 2006, 20:32
also das beschriebene problem mit den Desktops hab ich bisher nur beobachtet wenn der Desktop nicht richtig geöffnet wurde. Du kannst ja mal meinen Desktopswitch probieren ob der richtig zwischen den Desktops hinn und her springt. Wenn der richtig funktioniert liegt es eindeutig daran das der Zieldesktop nicht mit genügend Zugriffsrechten geöffnet wurde.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz