Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm als DesktopHintergrund @ Windows (https://www.delphipraxis.net/24631-programm-als-desktophintergrund-%40-windows.html)

supermuckl 23. Jun 2004 19:12

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 ?!

NicoDE 23. Jun 2004 19:12

Re: Programm als DesktopHintergrund @ Windows
 
Zitat:

Zitat von Nicodius
getdesktophandle gibt es echt nicht (in welcher unit?)

Stimmt, hab mich eben verschrieben :roll:
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).

supermuckl 23. Jun 2004 19:14

Re: Programm als DesktopHintergrund @ Windows
 
hab den code:
Delphi-Quellcode:
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.
der button is unklickable

NeoXX 24. Jun 2004 01:25

Re: Programm als DesktopHintergrund @ Windows
 
Wie wär's mit folgendem:

Delphi-Quellcode:
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.
...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:

supermuckl 24. Jun 2004 01:36

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 ?!

NeoXX 24. Jun 2004 22:49

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.
Seite 2 von 2     12   

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