Não testei, mas o ForceForegroundWindow herda de SetForegroundWindows os
eventos padrões e acho que bloqueia os demais aplicativos... Vale a pena
testar e conferir... Assim que tiver o resultado avise-nos... ok ?! Segue o
código:

 

function ForceForegroundWindow(hwnd: THandle): Boolean;
const
  SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
  SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
  ForegroundThreadID: DWORD;
  ThisThreadID: DWORD;
  timeout: DWORD;
begin
  if IsIconic(hwnd) then ShowWindow(hwnd, SW_RESTORE);

  if GetForegroundWindow = hwnd then Result := True
  else
  begin
    if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4))
or
      ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
      ((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
      (Win32MinorVersion > 0)))) then
    begin
      Result := False;
      ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow,
nil);
      ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
      if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
      begin
        BringWindowToTop(hwnd);  
        SetForegroundWindow(hwnd);
        AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
        Result := (GetForegroundWindow = hwnd);
      end;
      if not Result then
      begin
        SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
SPIF_SENDCHANGE);
        BringWindowToTop(hwnd); 
        SetForegroundWindow(hWnd);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0,
TObject(timeout), SPIF_SENDCHANGE);
      end;
    end
    else
    begin
      BringWindowToTop(hwnd); 
      SetForegroundWindow(hwnd);
    end;

    Result := (GetForegroundWindow = hwnd);
  end;
end; { ForceForegroundWindow }




//**********************************************

procedure ForceForegroundWindow(hwnd: THandle);
var
  hlp: TForm;
begin
  hlp := TForm.Create(nil);
  try
    hlp.BorderStyle := bsNone;
    hlp.SetBounds(0, 0, 1, 1);
    hlp.FormStyle := fsStayOnTop;
    hlp.Show;
    mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
    mouse_event(MOUSEEVENTF_ABSOLUTE or MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
    SetForegroundWindow(hwnd);
  finally
    hlp.Free;
  end;
end;




//**********************************************

procedure SwitchToThisWindow(h1: hWnd; x: bool); stdcall;
  external user32 Name 'SwitchToThisWindow';
         {x = false: Size unchanged, x = true: normal size}


procedure TForm1.Button2Click(Sender: TObject);
begin
  SwitchToThisWindow(FindWindow('notepad', nil), True);
end;

 

 

Até a próxima...

 

Rodrigo

 

  _____  

De: delphi-br@yahoogrupos.com.br [mailto:[EMAIL PROTECTED] Em
nome de Henry Maltz
Enviada em: quarta-feira, 14 de fevereiro de 2007 08:24
Para: delphi-br@yahoogrupos.com.br
Assunto: Re: [delphi-br] Sistema de Lan House

 

Rodrigo, por favor poste na lista ou me coloque no CC, pios tenho interesse
em saber deste comando...

valeu

On 2/14/07, Rodrigo Madureira Barbosa <rodrigo.madu@
<mailto:rodrigo.madu%40gmail.com> gmail.com> wrote:
>
> Existe alguns comandos da API do windows que congelam um form na tela
> impedindo a execução de outros... Tente algo como SetForegroungWindows, ou
> coisa parecida... vou dar uma pesquisada e posto pra vc em pvt ou aqui na
> lista mesmo pra todos poderem compartilhar...
>
> Até +
>
> Rodrigo
>
> _____
>
> De: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br> [mailto:
> [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br> os.com.br
<delphi-br%40yahoogrupos.com.br>] Em
> nome de Jeferson Adoryan
> Enviada em: terça-feira, 13 de fevereiro de 2007 09:38
> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
os.com.br <delphi-br%40yahoogrupos.com.br>
> Assunto: Res: [delphi-br] Sistema de Lan House
>
> Dae galera
> Seguinte, tb desenvolvi um sistema de lan house, na verdade ele ja ta
> rodando mas nao esta 100% pronto. O que eu queria fazer é o seguinte,
> enquanto o micro esta bloqueado para uso (uso um form tela cheia pra isso)
> nao permitir executar nenhum programa. Tive alguns problemas com micros
> usando teclado multimidia. Sera que isso é possivel??
> Valeu
>
> _______________________________________________
> Jeferson Adoryan
> Técnico em Desenvolvimento de Software
> Objetiva Informática LTDA
> Fone: (55) 3375 3828
> Celular: (55) 8115 4544
> Linux Counter #404063
> Home Page: http://adoryan. <http://adoryan.
<http://adoryan.byethost24.com> byethost24.com> byethost24.com
> =============================
> www.softtotal.com.br
> www.firehost.com.br
>
> Panambi - RS
>
> ----- Mensagem original ----
> De: Ricardo César Cardoso <ricardo_engsoft@
> <mailto:ricardo_engsoft%40yahoo.com.br> yahoo.com.br>
> Para: [EMAIL PROTECTED] <mailto:delphi-br%40yahoogrupos.com.br>
> os.com.br
> Enviadas: Segunda-feira, 12 de Fevereiro de 2007 9:51:36
> Assunto: Re: [delphi-br] Sistema de Lan House
>
> Estou finalizando um sistema de lan house (fase de personalização do
> projeto). Se quiser, posso elaborar um passo-a-passo ou se quiser mais
> posso
> negociar os fontes.
>
> É um sistema relativamente simples, já que na versão onde estou
> trabalhando
> não há necessidade de controlar execução de jogos e/ou programas. É só o
> controle de tempo de uso mesmo.
>
> Contato em PVT.
>
> Sds,
>
> Ricardo.
>
> Humberto <humbertogrupos@ terra.com. br> escreveu: Olá caros colegas.
>
> Eu irei pegar um sistema de Lan House para desenvolver, e gostaria de
> saber
> se algum de vcs já fez um e se pode me ajudar no sentido de por onde
> começar
> rsrs.. Imagino q seja usando Sockets etc..
>
> Alguém pode me dar uma ajudinha?
>
> Vlw.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> ____________ _________ _________ _________ _________ __
>
> Fale com seus amigos de graça com o novo Yahoo! Messenger
>
> http://br.messenger .yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> <!--
>
> #ygrp-mlmsg {font-size:13px;font-family:arial,helvetica,clean,sans-serif;}
> #ygrp-mlmsg table {font-size:inherit;font:100%;}
> #ygrp-mlmsg select, input, textarea {font:99%
> arial,helvetica,clean,sans-serif;}
> #ygrp-mlmsg pre, code {font:115% monospace;}
> #ygrp-mlmsg * {line-height:1.22em;}
> #ygrp-text{
> font-family:Georgia;
> }
> #ygrp-text p{
> margin:0 0 1em 0;
> }
> #ygrp-tpmsgs{
> font-family:Arial;
> clear:both;
> }
> #ygrp-vitnav{
> padding-top:10px;
> font-family:Verdana;
> font-size:77%;
> margin:0;
> }
> #ygrp-vitnav a{
> padding:0 1px;
> }
> #ygrp-actbar{
> clear:both;
> margin:25px 0;
> white-space:nowrap;
> color:#666;
> text-align:right;
> }
> #ygrp-actbar .left{
> float:left;
> white-space:nowrap;
> }
> .bld{font-weight:bold;}
> #ygrp-grft{
> font-family:Verdana;
> font-size:77%;
> padding:15px 0;
> }
> #ygrp-ft{
> font-family:verdana;
> font-size:77%;
> border-top:1px solid #666;
> padding:5px 0;
> }
> #ygrp-mlmsg #logo{
> padding-bottom:10px;
> }
>
> #ygrp-vital{
> background-color:#e0ecee;
> margin-bottom:20px;
> padding:2px 0 8px 8px;
> }
> #ygrp-vital #vithd{
> font-size:77%;
> font-family:Verdana;
> font-weight:bold;
> color:#333;
> text-transform:uppercase;
> }
> #ygrp-vital ul{
> padding:0;
> margin:2px 0;
> }
> #ygrp-vital ul li{
> list-style-type:none;
> clear:both;
> border:1px solid #e0ecee;
> }
> #ygrp-vital ul li .ct{
> font-weight:bold;
> color:#ff7900;
> float:right;
> width:2em;
> text-align:right;
> padding-right:.5em;
> }
> #ygrp-vital ul li .cat{
> font-weight:bold;
> }
> #ygrp-vital a {
> text-decoration:none;
> }
>
> #ygrp-vital a:hover{
> text-decoration:underline;
> }
>
> #ygrp-sponsor #hd{
> color:#999;
> font-size:77%;
> }
> #ygrp-sponsor #ov{
> padding:6px 13px;
> background-color:#e0ecee;
> margin-bottom:20px;
> }
> #ygrp-sponsor #ov ul{
> padding:0 0 0 8px;
> margin:0;
> }
> #ygrp-sponsor #ov li{
> list-style-type:square;
> padding:6px 0;
> font-size:77%;
> }
> #ygrp-sponsor #ov li a{
> text-decoration:none;
> font-size:130%;
> }
> #ygrp-sponsor #nc {
> background-color:#eee;
> margin-bottom:20px;
> padding:0 8px;
> }
> #ygrp-sponsor .ad{
> padding:8px 0;
> }
> #ygrp-sponsor .ad #hd1{
> font-family:Arial;
> font-weight:bold;
> color:#628c2a;
> font-size:100%;
> line-height:122%;
> }
> #ygrp-sponsor .ad a{
> text-decoration:none;
> }
> #ygrp-sponsor .ad a:hover{
> text-decoration:underline;
> }
> #ygrp-sponsor .ad p{
> margin:0;
> }
> o {font-size:0;}
> .MsoNormal {
> margin:0 0 0 0;
> }
> #ygrp-text tt{
> font-size:120%;
> }
> blockquote{margin:0 0 0 4px;}
> .replbq {margin:4;}
> -->
>
> __________________________________________________
> Fale com seus amigos de graça com o novo Yahoo! Messenger
> http://br.messenger <http://br.messenger <http://br.messenger.yahoo.com/>
.yahoo.com/> .yahoo.com/
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 
>

[As partes desta mensagem que não continham texto foram removidas]

 



[As partes desta mensagem que não continham texto foram removidas]

Responder a