Autor Beitrag
MathiasH
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Sa 29.06.02 08:46 
Hi
Kann man eigentlich auch einen Bildschirmschoner in das MS-vorschaufenster reinblitten :shock: (oder irgenwie anders)
und wenn ja, wie?

P.S.: wie schauen eigentlich die optionen/nornal-Parameter dabei aus?
Ich hab übrigens keine Erfahrung mit Regions, Hooks...

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Sa 29.06.02 09:40 
Hallo Mathias,

beim Auswerten der Paramter (/s, /c) musst du nun auf den Parameter /p reagieren. Dieser wird aufgerufen sobald Deine Anwendung sich in dem Vorschaufenster presentieren soll. Dann gibt es einen 2. Parameter der (glaube ich) das Handel der Zeichenfläche angibt. Damit Du halt weißt wohin Du zeichnen musst :-D

Gruß
TINO
mathias
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 58
Erhaltene Danke: 3



BeitragVerfasst: Sa 29.06.02 21:02 
Das würde mich auch mal interessieren wie man den DC des Fensterchen bekommt. :)
maxk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1696
Erhaltene Danke: 1

Win XP, Debian Lenny
Delphi 6 Personal
BeitragVerfasst: Fr 09.08.02 11:50 
Hi,
ich habe das schon ein paar mal gemacht, aber fragt nicht wie...
Ich poste hier einfach mal ungetesteten Code:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
var Canvas:TCanvas;      {Spätere Zeichenfläche}
    MyRect:TRect;        {Position der Zeichenfläche}
    Wnd:integer;         {Vorschaufenster}
    Width,Height:integer;{Größe der Zeichenfläche}
begin
 if ParamCount<2 then exit;
 Wnd:=StrToInt(ParamStr(2));
 while not IsWindowVisible(Wnd) do Application.ProcessMessages; {Warten bis Fenster sichtbar}
 Canvas:=TCanvas.Create;
 GetWindowRect(Wnd,MyRect);
 Width:=MyRect.Right-MyRect.Left;
 Height:=MyRect.Bottom-MyRect.Top;
 Canvas.Handle:=GetDC(Wnd);
 randomize;
 while IsWindowVisible(Wnd) do begin
  Canvas.Pen.Color:=TColor(random(255)*random(255)*random(255));
  Canvas.LineTo(random(Width),random(Height));
 end;
 Canvas.free;
end;


So sollte es eigentlich funktionieren! Mit Canvas (im 2. while) kannst du dann machen, was du willst!
MathiasH Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 699

WinXP, Win98SE, Debian, Win95
D5 Stand, D6 Prof
BeitragVerfasst: Fr 09.08.02 13:05 
Danke, werd's gleich mal ausprobieren

es gibt auch so ne GLScene Kompo die das macht, aber die hat ein entscheidendes Problem, durch die Vorschaufunktion stürtzt der Bildschirmschoner ab, und man muss auch selber was für oneInstance schreiben.

MathiasH

_________________
"Viel von sich reden, kann auch ein Mittel sein, sich zu verbergen."
Friedrich Nietzsche