Alguem sabe onde posso encontrar informações sobre API
Estou precisando de informações sobre APIs do Windows, preciso de rotinas e funções para verificar qnd uma janela do windows foi aberta.
Profjohnny
Curtidas 0
Respostas
Carnette
13/02/2003
Que tal dar um estudada neste exemplo....Já é um bom começo
Para listar (pegar) todas janelas abertas, deve-se usar a funcao da API EnumWindows, que usa uma funcao Callback, com dois parametros, um Handle para a janela e um ponteiro. Voce pode usá-la com um códi-go semelhante a este (Este lista as janelas abertas, mesmo invisí-veis, em uma listbox):
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer) <> 0 then
Form.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;
Para listar (pegar) todas janelas abertas, deve-se usar a funcao da API EnumWindows, que usa uma funcao Callback, com dois parametros, um Handle para a janela e um ponteiro. Voce pode usá-la com um códi-go semelhante a este (Este lista as janelas abertas, mesmo invisí-veis, em uma listbox):
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer) <> 0 then
Form.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;
GOSTEI 0
Anonymous
13/02/2003
Que tal dar um estudada neste exemplo....Já é um bom começo
Para listar (pegar) todas janelas abertas, deve-se usar a funcao da API EnumWindows, que usa uma funcao Callback, com dois parametros, um Handle para a janela e um ponteiro. Voce pode usá-la com um códi-go semelhante a este (Este lista as janelas abertas, mesmo invisí-veis, em uma listbox):
function EnumWindowsProc(Wnd : HWnd;Form : TForm1) : Boolean; Export; {$ifdef Win32} StdCall; {$endif}
var
Buffer : Array[0..99] of char;
begin
GetWindowText(Wnd,Buffer,100);
if StrLen(Buffer) <> 0 then
Form.ListBox1.Items.Add(StrPas(Buffer));
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
EnumWindows(@EnumWindowsProc,LongInt(Self));
end;
Eu preciso de alguma função que verifique o momento exato em q uma janela foi aberta, pois o sistema fica rodando enquanto o computador estiver ligado e qnd o usuario abre uma janela se a mesma não for permitida tera q ser fechada.
Obrigado pela intenção, se souber de algo eu agradeço.
GOSTEI 0
Anonymous
13/02/2003
Se a funcao pega TODAS as janelas abertas....
Entao é so testar de tempos em tempos (ou quando a lista aumentar) se o usuario pode abrir tal janela (vc vai ter q varrer todas as janelas abertas...) e fechar a q ele nao puder abrir.
Se vc ja sabe quais as janelas o usuario nao pode abrir procure por elas com um Timer e a API FindWindow (Ver help do Delphi...) e feche-a com CloseWindow (Ver help....)
Acho q a funcao acima é um bom começo.
Um Abraço
Werlon Goulart
Entao é so testar de tempos em tempos (ou quando a lista aumentar) se o usuario pode abrir tal janela (vc vai ter q varrer todas as janelas abertas...) e fechar a q ele nao puder abrir.
Se vc ja sabe quais as janelas o usuario nao pode abrir procure por elas com um Timer e a API FindWindow (Ver help do Delphi...) e feche-a com CloseWindow (Ver help....)
Acho q a funcao acima é um bom começo.
Um Abraço
Werlon Goulart
GOSTEI 0