![]() |
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:44 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