Головна сторінка
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.59 MB
Час: 0.056 c
14-1100855778
WondeRu
2004-11-19 12:16
2004.12.12
Відкуп від армії VS. Аспірантура


1-1101208136
ІМХО
2004-11-23 14:08
2004.12.12
Canvas does not allow drawing


1-1101642989
Frozzen
2004-11-28 14:56
2004.12.12
Копіювання властивостей об'єкта


8-1095077561
Таймер
2004-09-13 16:12
2004.12.12
скріншот змінилася частині екрана


1-1101739912
рем
2004-11-29 17:51
2004.12.12
Створення глобальної змінної Application





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