Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Rechneraktivität vortäuschen? (https://www.delphipraxis.net/137854-rechneraktivitaet-vortaeuschen.html)

zeras 1. Sep 2009 19:35

Re: Rechneraktivität vortäuschen?
 
Zitat:

Zitat von himitsu

Was von dem oben genannten hast du denn schon probiert?
> SendInput bzw. SendKey = tippen auf Tastatur simulieren
> SetCursorPos = bewegen der Maus simulieren

Bis jetzt dann noch nichts, da man offensichtlich einlenken will.
Wenn, dann würde ich bestimmt die Maus bewegen wollen, da ich bei einer Tastatureingabe nicht weiß, welche ich nehmen sollte. Eine normale Asciitaste fällt aus, da man ja nicht weiß, welche Anwendung gerade aktiv ist. Vielleicht könnte man eine Cursortaste nehmen, aber da bin ich auch nicht sicher, welche Anwendung darunter läuft. Die Mausbewegung ist bestimmt die beste Alternative.

Vielen Dank für eure Meinungen.
Möglicherweise hätte eine Email an alle User gereicht als Abschreckung. Wenn man dann verstoßen hätte, ein Gespräch mit dem Chef und wenn immer noch nicht, dann eine Abmahnung. Aber die Art der Regelung finde ich nicht gerade fördernd.
Wie tr909 schrieb, ist das auch nicht gerade arbeitsfördernd, aber wo ein Problem ist (oder gemacht wurde) gibt es immer kreative Leute.

hathor 1. Sep 2009 20:24

Re: Rechneraktivität vortäuschen?
 
Ich habe ein Programm, das weder mit der Tastatur oder Maus bedient wird. Die Folge wäre, dass irgendwann LASTINPUT zuschlägt mit unerwünschten Folgen (Bildschirmschoner oder Lockworkstation).
LASTINPUT wird mit dem regelmäßigen Aufruf von keybd_event(0,0,0,0) auf 0 gesetzt.

http://msdn.microsoft.com/en-us/library/ms646304(VS.85).aspx

zeras 13. Sep 2009 13:10

Re: Rechneraktivität vortäuschen?
 
Ich habe mal die GetCursorPos genutzt. Anbei der Schnipsel. Die Bewegung um ein Pixel kann ich sehen. Habe den Timer mal auf 60000 gesetzt. Das müßte reichen.
Mal sehen, obs auch in der Wirklichkeit funktioniert.
Das mit der Abfrage habe ich nur gemacht, weil man auch am linken Rand schon sein könnte.
Ist bestimmt noch ausbaubar und mit einer Größe von ca. 400 kB noch sehr groß. Vielleicht sollte man über eine Kommandozeilenversion nachdenken.

Delphi-Quellcode:

procedure TForm20.Timer1Timer(Sender: TObject);
var
  T : TPoint;
  T1: TPoint;

begin
  windows.GetCursorPos(T);
  T1:=T;

  if T1.X>10 then begin
    T1.x:=T1.X-1;
  end
  else begin
    T1.x:=T1.X+1;
  end;

  windows.SetCursorPos(T1.X,T1.Y);
  Sleep(100);
  windows.SetCursorPos(T.X,T.Y);

end;

igel457 13. Sep 2009 13:33

Re: Rechneraktivität vortäuschen?
 
Warum eigentlich so kompliziert? Es würde doch eigentlich reichen, auf die entsprechende "Der Bildschirmschoner schaltet sich ein" Message zu reagieren und diese negativ zu beantworten:
Delphi-Quellcode:
procedure TVid_wnd.WMSysCommand(var Msg: TMessage);
begin
  if ((Msg.wParam = SC_SCREENSAVE) or
     (Msg.WParam = SC_MONITORPOWER)) and
     (Fullscreen) then
    Msg.Result := 1
  else
    inherited;
end;

zeras 13. Sep 2009 13:38

Re: Rechneraktivität vortäuschen?
 
Soweit stecke ich halt in der Windowsprogammierung nicht drin. Wenn das so geht, wäre das auch eine Alternative.
Danke für den Tipp.

RWarnecke 13. Sep 2009 15:32

Re: Rechneraktivität vortäuschen?
 
Dann schaue Dir mal dieses Tool an. Das drückt in regelmäßigen Abständen die Rollen-Taste. Das bewirkt auch, dass der Bildschirmschoner sich nicht einschaltet.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:06 Uhr.
Seite 3 von 3     123   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz