Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Как определить активен ли сейчас рабочий стол????   Найти похожие ветки 

 
WaS ©   (2004-10-29 10:49) [0]

Все и так ясно. Большая просьба помочь...


 
Grundic ©   (2004-10-29 11:12) [1]

ативен - если нет открытых окон или все окна свернуты или когда на стол жмакнули мышой?


 
WaS ©   (2004-10-29 11:19) [2]

И то, и другое можно без хлеба  ;)

А точнее при свернутых окнах.


 
[lamer]Barmaglot ©   (2004-10-29 11:28) [3]

GetActiveWindow?


 
[lamer]Barmaglot ©   (2004-10-29 11:30) [4]

GetForegroundWindow?


 
Grundic ©   (2004-10-29 11:30) [5]

не. Кажись - даст последнее свернутое. Хотя попробуй. Ща попроюсь у себя................


 
Grundic ©   (2004-10-29 11:31) [6]

посмотри...

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls, ExtCtrls, Grids, ValEdit;

type
 TForm1 = class(TForm)
   Button1: TButton;
   Timer1: TTimer;
   Button2: TButton;
   ValueListEditor1: TValueListEditor;
   Timer2: TTimer;
   Label1: TLabel;
   procedure Button1Click(Sender: TObject);
   procedure Timer1Timer(Sender: TObject);
   procedure Button2Click(Sender: TObject);
   procedure FormCreate(Sender: TObject);
   procedure Timer2Timer(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;
 i:Byte;

implementation

procedure AddItemInIfNotEq(V:TValueListEditor;Item:string);
var
 DateTime : TDateTime;
 str : string;
begin
if Item="Program Manager" then Item:="[Нет открытых окон]";
if Item="SysFader" then Exit;
if V.Cells[1,V.RowCount-1]<>Item then
 begin
 DateTime := Time;
 str := TimeToStr(DateTime);
 DateTime := Date;
 str :=str+" "+DateToStr(DateTime);
 V.InsertRow(str,Item,True);
 end;
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var Wnd : hWnd;
   buff: array [0..127] of char;
   s:String;
   err:Cardinal;
begin
 Wnd := GetWindow(Handle, gw_HWndFirst);
 while Wnd <> 0 do begin {Не показываем:}
   if (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}
        and IsWindowVisible(Wnd)                    {Невидимые окна}
//         and (GetWindow(Wnd, GW_OWNER) = 0)          {Дочерние окна}
//         and (Wnd <> Application.Handle)             {Собственное окно}
     then
   begin
     GetWindowText(Wnd, buff, sizeof(buff));
     AddItemInIfNotEq(ValueListEditor1,StrPas(buff));
     Exit;
   end;
   Wnd := GetWindow(Wnd, gw_hWndNext);
 end;
 Form1.Caption:="Форма";
 AddItemInIfNotEq(ValueListEditor1,"NONE");
end;

procedure TForm1.Timer1Timer(Sender: TObject);
begin
Button1Click(Self);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=NOT Timer1.Enabled;
if Timer1.Enabled then Button2.Caption:="pause" else Button2.Caption:="play";
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 DateTime : TDateTime;
 str : string;
begin
i:=0;
DateTime := Time;
str := TimeToStr(DateTime);
DateTime := Date;
str :=str+" "+DateToStr(DateTime);
ValueListEditor1.Keys[1]:=str;
ValueListEditor1.Values[str]:="START";
end;

procedure TForm1.Timer2Timer(Sender: TObject);
begin
i:=(i+1) mod 10;
Label1.Caption:=IntToStr(i);
Label1.Refresh;
if i>5 then Self.Hide
else Self.Visible:=True;
end;

end.



 
WaS ©   (2004-10-29 12:29) [7]

Желательно осле клика мышью, дабы в приведенном выше примере тока на свернутые окна.


 
WaS ©   (2004-10-29 13:17) [8]

Эгегегей, может кто-нить таки поможет???

Предыдущий пример не подходит.
Так, как предположим что (любая) программа не активна и в то же время не свернута, а активен рабочий стол - на него щелкнули мышью. Как быть?


 
-SeM-   (2004-10-29 14:01) [9]

if GetForegroundWindow = FindWindow("Progman", nil) then ...


 
WaS ©   (2004-10-29 14:21) [10]

2 -SeM-

Это именно то что нужно!!!
Прибольшое спасибо и дай бог тебе здоровьечка...    ;)



Страницы: 1 вся ветка

Текущий архив: 2004.12.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.038 c
14-1100870142
ПЛОВ
2004-11-19 16:15
2004.12.12
Где достать голосовой профиль для украинского языка?


1-1101395047
denis24
2004-11-25 18:04
2004.12.12
Qrreport-html


6-1091808188
2тэ10м
2004-08-06 20:03
2004.12.12
Трафик


3-1100508460
neat
2004-11-15 11:47
2004.12.12
TDBLookupComboBox


6-1096623637
TUser
2004-10-01 13:40
2004.12.12
ICS под XP