Головна сторінка
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.058 c
14-1101379739
церква
2004-11-25 13:48
2004.12.12
"З днем ​​народження" по-болгарськи


8-1094913239
Zeqfreed
2004-09-11 18:33
2004.12.12
TMemoryStream і JPG


1-1101506237
Пунктів
2004-11-27 00:57
2004.12.12
Меню


6-1096832406
Бажання
2004-10-03 23:40
2004.12.12
Передача файлів через мережу


14-1100845548
благословити
2004-11-19 09:25
2004.12.12
Чи є в Лінукс аналоги Microsoft Project і 1C?





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