Главная страница
    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.47 MB
Время: 0.034 c
3-1100495957
Galim
2004-11-15 08:19
2004.12.12
Как паковать DBF-файлы через ADO?


3-1100150626
S@lik
2004-11-11 08:23
2004.12.12
Индексы


1-1101899743
Islander
2004-12-01 14:15
2004.12.12
Как определить, что содержимое папки изменилось?


14-1100806076
Игорь Шевченко
2004-11-18 22:27
2004.12.12
Перечитывая Таненбаума (задачка)


1-1101805503
Vitaliygavrilov
2004-11-30 12:05
2004.12.12
Возможность загрузки базы данных в Listview





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский