AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Fenster in absoluten Vordergrund bringen

Ein Thema von CReber · begonnen am 22. Jul 2004 · letzter Beitrag vom 23. Jul 2004
Antwort Antwort
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#1

Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 16:19
Ich möchte durch einen Sperrbildschirm verhindern, dass jemand an den Rechner gelangt ! Momentan verwende ich dazu eine Form die in einem Timer in der Vordergrund gerückt wird...

Es handelt sich dabei um das Programm USB-Access woran ich schon eine Weile arbeite ! Nun habe ich das Problem das manche Programme diesen Sperrbildschirm trotzdem überdecken (Beispiel Trillian)

Hat jemand Vorschläge wie ich das verhindern kann? Also den ABSOLUTEN Vordergrund erzwingen kann... Ich wäre sehr dankbar!



Delphi-Quellcode:
procedure TUSBEngine.tmrHandleTimer(Sender: TObject);
begin
  case (USBSperrScreen.Showing) of
    True:
      begin
        if (InputPwd.Showing) then
          begin
            if not (GetForegroundWindow=InputPwd.Handle) then
              SetForegroundWindow(InputPwd.Handle);
          end
        else
          if not (GetForegroundWindow=USBSperrScreen.Handle) then
            SetForegroundWindow(USBSperrScreen.Handle);
      end;
  end;
end;
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von p0w3r5tr34m3r
p0w3r5tr34m3r

Registriert seit: 18. Aug 2003
Ort: Monheim am Rhein
153 Beiträge
 
RAD-Studio 2009 Pro
 
#2

Re: Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 16:26
vll gehts mit Application.BringToFront
Florian Cülter
ich bin ein notorischer alles-klein-schreiber!

der 100. Beitrag nach 3 Jahren 25 Wochen und einem Tag
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 16:59
cFosspeed ist z.B. ein Programm was ebenfalls noch im vordergrund ist
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#4

Re: Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 17:00
Moin moin

weiß zwar nich mehr von wem das stammt, aber funktionieren sollte es

Delphi-Quellcode:
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
    // Windows 98/2000 doesn't want to foreground a window when some other
    // window has keyboard focus

    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
      // Code from Karl E. Peterson, [url]www.mvps.org/vb/sample.htm[/url]
      // Converted to Delphi by Ray Lischner
      // Published in The Delphi Magazine 55, page 16

      Result := False;
      ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
      ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
      if AttachThreadInput(ThisThreadID, ForegroundThreadID, True) then
      begin
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hwnd);
        AttachThreadInput(ThisThreadID, ForegroundThreadID, False);
        Result := (GetForegroundWindow = hwnd);
      end;
      if not Result then
      begin
        // Code by Daniel P. Stasinski
        SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0),
          SPIF_SENDCHANGE);
        BringWindowToTop(hwnd); // IE 5.5 related hack
        SetForegroundWindow(hWnd);
        SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
      end;
    end
    else
    begin
      BringWindowToTop(hwnd); // IE 5.5 related hack
      SetForegroundWindow(hwnd);
    end;

    Result := (GetForegroundWindow = hwnd);
  end;
end;
schönen Gruß

Sam
  Mit Zitat antworten Zitat
pirechner

Registriert seit: 29. Jun 2004
36 Beiträge
 
Delphi 7 Professional
 
#5

Re: Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 17:04
ich glaube das hier funzt auchSetWindowPos(form1.Handle, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOSIZE);
  Mit Zitat antworten Zitat
Benutzerbild von CReber
CReber

Registriert seit: 26. Nov 2003
Ort: Berlin
343 Beiträge
 
Delphi 2006 Professional
 
#6

Re: Fenster in absoluten Vordergrund bringen

  Alt 22. Jul 2004, 18:44
beides funzt nicht

// argh funzt doch ! aber man kann es nicht mit der GetForeground-Geschichte überprüfen !
Christian Reber
  Mit Zitat antworten Zitat
Benutzerbild von gothic_mike
gothic_mike

Registriert seit: 2. Okt 2003
Ort: Olbernhau
134 Beiträge
 
Delphi 7 Personal
 
#7

Re: Fenster in absoluten Vordergrund bringen

  Alt 23. Jul 2004, 01:24
Zitat von hOnkibOnk:
beides funzt nicht

// argh funzt doch ! aber man kann es nicht mit der GetForeground-Geschichte überprüfen !
schonmal damit versucht:

Delphi-Quellcode:
...
  private
    procedure CreateParams(var Params: TCreateParams); override;
  public
  end;
...
procedure TFormX.CreateParams(var Params: TCreateParams);
begin
  inherited CreateParams(Params);
  with Params do begin
    ExStyle := ExStyle or WS_EX_TOPMOST;
    WndParent := GetDesktopwindow;
  end;
end;
...
bye4now, gothic_mike
. ..: carpe noctem :: coding in the darkness :.. .
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:39 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz