Головна сторінка
Top.Mail.Ru Яндекс.Метрика
Форум: "WinAPI";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

Вниз

Як визначити активний зараз робочий стіл ???? Знайти схожі гілки


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 вся гілка

Форум: "WinAPI";
Поточний архів: 2004.12.12;
Завантажити: [xml.tar.bz2];

наверх









Пам'ять: 0.85 MB
Час: 0.059 c
1-1101728157
Галинка
2004-11-29 14:35
2004.12.12
Проблеми з QRImage


1-1101740956
Wolffgang
2004-11-29 18:09
2004.12.12
Взаємозв'язок між числами


9-1091793832
Денис
2004-08-06 16:03
2004.12.12
SNAKE


3-1100604655
Stass
2004-11-16 14:30
2004.12.12
Композитний звіт (QR)


3-1100521367
VadimK
2004-11-15 15:22
2004.12.12
Створення Cursor в ХП, через компоненти DBExpress





африкаанс албанський арабська вірменин азербайджанець баскський білоруський болгарська каталонський Китайська (спрощене письмо) Китайський традиційний) хорватський чеська данську мову нідерландський Ukranian естонець Філіппінська фінську мову французький
галісійська грузинський німецький грецький гаїтянський креольський давньоєврейську хінді угорський ісландський індонезієць ірландський італійський японський корейський латиська литовець македонець малайський мальтійський норвежець
перс полірування португальська румунський російська сербський словацький словенський іспанська суахілі шведську мову тайський турецька український урду в&#39;єтнамський валлійський ідиш бенгальський боснійський
кебуано есперанто гуджараті хауса хмонг ігбо яванський каннада кхмерская Лао латинь маорі маратхі монгольський непальська панджабі сомалійський тамільська телугу йоруба
зулуський
Англійська Французький Німецький Італійський Португальська Русский Іспанська