![]() |
Programm als DesktopHintergrund @ Windows
geht es das ich ein programm als Hintergrund nehme ? also nicht als bild oder als webseite sondern als richtiges proggi mit oberfläche..
mit tricks wärs vielleicht möglich ein vollbild prog als most bottom level unter all die anderen fenster zu knallen.. aber wenn man draufklickt sollte es dann auch nicht in den vordergrund kommen *g* also sowas wie OnTop blos umgedreht ( OnBottom ) |
Re: Programm als DesktopHintergrund @ Windows
Mit der Enterprise-Version ist es doch möglich Web-Andwendungen zu programmieren, die könntest du dann eventuell über den ActiveX-Bldschirm laufen lassen.
|
Re: Programm als DesktopHintergrund @ Windows
ich sag ja.. nicht als webseite
|
Re: Programm als DesktopHintergrund @ Windows
Man kann auch den Parent deines Hauptfenster's auf den des Desktop's setzen.
|
Re: Programm als DesktopHintergrund @ Windows
das parent der elemente die auf dem form sind oder dem form sein parent ? ( is doch schon der desktop oder? ^^ )
jedenfalls.. müsste ich ja erstmal das handle des hintergrunds rausbekommen und das dann irgendwie meinem proggi zuweisen? wüsste ich jetzt beides nich wie das geht O_O ok.. form1.parent := desktophandle; so ? :cheers: |
Re: Programm als DesktopHintergrund @ Windows
Zitat:
|
Re: Programm als DesktopHintergrund @ Windows
öhm das is mir ein bisschen hoch.. mit überschreiben von funktionen hab ich noch nix gemacht :(
procedure TForm1.FormCreate(Sender: TObject); begin form1.CreateParented(GetDesktopWindow); end; das sagt mir übrigends: --------------------------- Benachrichtigung über Debugger-Exception --------------------------- Im Projekt Project2.exe ist eine Exception der Klasse EComponentError aufgetreten. Meldung: 'Komponente mit der Bezeichnung Button1 existiert bereits'. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen. --------------------------- OK Hilfe --------------------------- naja ^^ mal gucken wie das mit dem überschreiben tut |
Re: Programm als DesktopHintergrund @ Windows
* null peilung *
Delphi-Quellcode:
type TForm1 = class(TForm) Button1: TButton; procedure CreateParams(Params: Tcreateparams); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure Tform1.CreateParams(Params: Tcreateparams); begin inherited create(nil); form1.Parent := GetDesktopHandle; // will er nich - undefinierter bezeichner GetDesktopHandle end; end. |
Re: Programm als DesktopHintergrund @ Windows
Zitat:
(such nach Beiträgen die 'CreateParams' enthalten und von 'NicoDE' geschrieben wurden) |
Re: Programm als DesktopHintergrund @ Windows
getdesktophandle gibt es echt nicht (in welcher unit?)
|
Re: Programm als DesktopHintergrund @ Windows
jep .. gefunden..
aber das form lässt sich noch bewegen.. allerdings gibts kein refresh wärend dem bewegen.. nur beim loslassen und ich kann auf einen button wo auf form1 steckt nich klicken ( wird aber angezeigt..) also so ganz is das wohl nich aufm desktop ?! |
Re: Programm als DesktopHintergrund @ Windows
Zitat:
Der Quelltext, welcher über die Suche zu finden ist, ist korrekt... edit: ich habe extra auf die Nebenwirkungen hingewiesen... sprich es ist/wäre eine Menge Arbeit, bis es so funktioniert, wie derjenige sich das vorgestellt hat (von Tests auf anderen Systemen mit anderen Windows/Shell-Versionen, anderen Desktop-Einstellungen und mit verschiedenen Delphi/VCL-Versionen mal ganz abgesehen). |
Re: Programm als DesktopHintergrund @ Windows
hab den code:
Delphi-Quellcode:
der button is unklickable
unit Unit1;
interface uses Windows, Classes, Controls, Forms, StdCtrls; type TForm1 = class(TForm) Button1: TButton; private { Private declarations } public { Public declarations } procedure CreateParams(var Params: TCreateParams); override; end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.CreateParams(var Params: TCreateParams); begin // inherited first! inherited CreateParams(Params); // only for testing purposes... if (Params.WndParent = Application.Handle) then begin // child window of the desktop window Params.WndParent := GetDesktopWindow(); Params.Style := Params.Style or WS_CHILD; end; end; end. |
Re: Programm als DesktopHintergrund @ Windows
Wie wär's mit folgendem:
Delphi-Quellcode:
...flackert zwar n' bissl wenn Du das Hintergrundfenster anwählst, weil er das Fenster erst nach vor und dann wieder nach hinten setzt, funzt aber - auch mit dem ButtonClick :zwinker:
unit Unit1;
interface uses Windows, Messages, Classes, Controls, Forms, StdCtrls; type TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private procedure AppMsg(var Msg: TMsg; var Handled: Boolean); public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.AppMsg(var Msg: TMsg; var Handled: Boolean); begin SetWindowPos(Self.Handle, HWND_BOTTOM, 0, 0, 0, 0, SWP_NOMOVE + SWP_NOSIZE); end; procedure TForm1.FormCreate(Sender: TObject); begin Application.OnMessage := AppMsg; end; end. |
Re: Programm als DesktopHintergrund @ Windows
gute idee.. blos wie wärs wenn man erst garnicht zulässt das es in den vordergrund kann ? das is doch auch nur eine WM_loskommraus die an das fenster geschickt wird sobald ich es mit der maus anklicke ?!
|
Re: Programm als DesktopHintergrund @ Windows
wie wär's damit :zwinker:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin Windows.SetParent(Form1.Handle, FindWindow(Nil, 'Program Manager')); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:41 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz