Cum se face fereastra aplicației pe toate ferestrele

Cum se face fereastra aplicației pe toate ferestrele

Buna ziua tuturor! Cum pot face fereastra aplicației pe toate ferestrele? Această proprietate poate fi specificată în unele aplicații.
Am nevoie de el pentru a crea un cronometru pentru clubul de internet.

SetWindowPos () + HWND_TOPMOST + cronometru frecvent frecvent

Și asta nu va funcționa?

procedura TForm1.Timer1Timer (expeditor: TObject);
începe
# xA0; # xA0; # xA0; # xA0; FormStyle: = fsStayOnTop;
se încheie;


> Și nu va funcționa?

Nu merge. Deci are nevoie de club. Orice joc va roti o astfel de fereastră. Fără un timer, nu poți să o faci aici.

Pentru Deff ++
și când este declanșată OnIdle


> Și nu va funcționa?
>
> procedura TForm1.Timer1Timer (expeditor: TObject);
> începe
> # xA0; # xA0; # xA0; # xA0; FormStyle: = fsStayOnTop;
> sfârșit;

Nu funcționează: (Tocmai când încep jocurile, ferestrele nu sunt vizibile.
----------------------------------------------------------

>> Și așa nu va merge?
>
> Nu merge. Deci are nevoie de club. Orice joc se va întoarce în acest fel
> fereastră. Fără un timer, nu poți să o faci aici.

Ciudatul a dat un exemplu cu un timer (nu ai observat)
----------------------------------------------------------
Și faptul că Deff ++ mi-a scris a mea nu iese. Am făcut o procedură care a apelat pe OnIdle și a înregistrat FormStyle: = fsStayOnTop. Dar OnIdle nu funcționează în acel moment :(
Am făcut fsStayOnTop în evenimentul aplicației OnDeactivate, dar chiar și așa nu a funcționat.

Dacă este posibil, dați un exemplu. Mulțumită în avans

# xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; # xA0; Gânditor

SetWindowPos (Mâner, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE sau SWP_NOMOVE) cel puțin prin cronometru, chiar și prin Dezactivare

2 Igor Acum o să încerc.

2 DVM Aș aprecia cu adevărat dacă vă ajutați cu încuietoarea. Eu însumi am crezut că aș instala formularul pe tot ecranul și voi face BorderStyle = bsNone, dar în acest caz trebuie să închid butonul Windows.

Dacă există opțiuni mai bune (sunt sigur că sunt :)), mă bucur dacă mă ajută :)

Complet fereastra nu este vizibilă, se mișcă abia :(

1. Dacă doriți să informați clientul în timpul jocului - de exemplu, câte sunt lăsate înainte de sfârșitul sesiunii, apoi scrieți direct pe ecran [Object Screen]
2. Ascundeți toate ferestrele pe care le întindeți fereastra principală pe întregul ecran - în caz contrar. Puteți face mai inteligent pentru Win XP # xA0; - Transperent 100% $))) oamenii suferă de mult timp.

3. În general, este destul de dificil să scriem un program foarte bun pentru club. Și un mic fufljandiyu orice tânăr geek va zamomit uciderea procesului

> SetWindowPos (Mâner, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE sau
> SWP_NOMOVE), deși pe timer, chiar și pe Dezactivare

cu Form2
SetWindowPos (Mâner, HWND_TOPMOST, 0, 0,
0, 0, SWP_NOACTIVATE sau SWP_NOMOVE sau SWP_NOSIZE);

Deci, va fi mai corect

> Am nevoie de el pentru a crea un cronometru pentru clubul de internet.
> 2. Ascundeți toate ferestrele pe care le întindeți fereastra principală spre întreg
> ecranul este diferit, indiferent de modul în care.
Nu este mai bine să opriți clave-ul și mouse-ul?

Da, îmi pare rău de utilizatorii clubului

WinExec ("mouse rundll32, dezactivare", 1);
WinExec ("tastatura rundll32, dezactivare", 1);

Veți avea totuși probleme cu cronometrul. pentru că multe igruhi lucrează cu prioritate REALTIME, atunci riscați nimic pentru a controla la 100% sarcina prozului. Prin urmare, trebuie să creați un cronometru multimedia și un fir cu prioritatea REALTIME, care să îl păstreze.


> 1. Dacă doriți să informați clientul în timpul jocului -
> de exemplu, câți până la sfârșitul sesiunii sunt lăsați, apoi scrieți direct
> la ecranul [Obiect ecran]

Nu știu cum să scriu pe ecran :( Ajutor? Voi fi foarte recunoscător


> WinExec ("mouse rundll32, dezactivare", 1);
> WinExec ("tastatura rundll32, dezactivare", 1);

Am scris că astfel de DLL-uri nu sunt găsite! Poate depinde de versiunile Windows.

Șters de moderator
Notă: Crearea de mesaje goale

Beglec, unde ești tu? Ajutor!

> Gânditor # xA0; (23.05.04 05:34) [18]
> Beglec, apihelp unde esti? Ajutor!

Înțeleg că serverul va activa formularul copil, care va bloca ecranul (cred că această abordare nu este eficientă). Păi, stăpânule.
Deci, pe formularul 2.
utilizări
# xA0; Windows, Mesaje, SysUtils, Variante, Clase, Grafică, Controale, Formulare,
# xA0; Dialoguri, StdCtrls;

tip
# xA0; TForm2 = clasa (TForm)
# xA0; # xA0; Edit1: TEdit;
# xA0; # xA0; Buton1: TButton;
# xA0; # xA0; Buton2: TButton;
# xA0; # xA0; Eticheta1: Tabel;
# xA0; # xA0; procedura Button2Click (Expeditor: TObject);
# xA0; # xA0; procedura Button1Click (Expeditor: TObject);
# xA0; # procedură FormDeactivate (expeditor: TObject);
# xA0; privat
# xA0; procedura CreateParams (var Params: TCreateParams); suprascrie;
# xA0; public
# xA0; # xA0;
# xA0; sfârșitul;

var
# xA0; Form2: TForm2;

procedura TForm2.CreateParams (var Params: TCreateParams);
începe
# xA0; mostenite CreateParams (Params);
# xA0; Params.WndParent: = GetDesktopWindow;
se încheie;


procedura TForm2.FormDeactivate (expeditor: TObject);
începe
SetWindowPos (Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE sau SWP_NOMOVE); // Această funcție nu este necesară pentru a scrie la această procedură deoarece funcția este aplicată o singură dată pentru a transfera formularul în modul TOPMOST și este valabilă până la închiderea formularului. Kill Nu înțeleg, de ce am nevoie de un cronometru?
se încheie;

Codul va păstra formatul copilului pe toate ferestrele.
De asemenea, despre timer: un timer creat într-un thread cu o prioritate înaltă va trimite, desigur, un formular comenzii "sus", dar forma este creată într-un fir cu o prioritate mai mică pentru aceasta și nu va primi control.
Deși în mod corect persoana a spus că firul cu prioritate în timp real (cu toate că această prioritate este folosită pentru aplicații (nu este recomandată), nu va permite programului să obțină timpul prozei, dacă prioritatea programului nu este în timp real. Vrei în timp real să creezi un fir cu această prioritate și să creezi o formă dinamică în el. Doar aici îl veți închide atunci? Chiar dacă mouse-ul nu obține controlul. Prin urmare, este mai bine să folosiți un fir cu o prioritate mai mică.
Rețineți că, pentru a închide / deschide cu ușurință formularul cu prioritate în timp real, este necesar ca serverul să accepte / execute comenzile clientului, de asemenea, să aibă prioritate în timp real, altfel nu primește timp CPU.

Despre klavy vkyl.vykl există modalități de a sfătui mai bine pentru a crea un subiect separat.

apihelp # xA0; (23.05.04 08:41) [19]
Pliz iartă linia:
Editare1: TEdit;
# xA0; Buton1: TButton;
# xA0; Buton2: TButton;
# xA0; Eticheta1: Tabel;
# xA0; procedura Button2Click (Expeditor: TObject);
# xA0; procedura Button1Click (Expeditor: TObject);
pentru a exclude. Codul a fost luat din programul său.

Pentru a apihelp Când începe jocul, formularul nu este vizibil% (

Dragi maeștri, vă rog să-mi spuneți, dar putem chiar să tăiem jocul cu totul? Ea, așa cum înțeleg, folosește modul ecran complet.

SetWindowPos (Application.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE sau SWP_NOMOVE); scrie oncreate dar totusi va clipi.
Incercati totusi pe timer:
InvalidateRect (Mâner, nul, adevărat); \\ races formularul
Și când focalizarea ferestrei devine jocul îndoit?

De fapt, în Delphi există un mic bug care rupe toată fiabilitatea

Dar dacă în formularul handler în OnPaint să se interpună

totul va fi bine, și nimeni nu va transforma cererea dumneavoastră, cu excepția cazului în care vă referiți în mod specific la Application.Minimize. Ei bine, poate fi întotdeauna prins.

Memorie: 0,78 MB
Durată: 0.106 sec

Articole similare