vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Brandneu! sevEingabe v3.0 - Das Eingabecontrol der Superlative!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB & Windows API
Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 12:51

Hallo, wie kann ich meinen Desktop "deaktivieren" (ich meine dieses "Ausgrauen"...)?

Habs schon folgendermaßen versucht;
Private Declare Function LockWindowUpdate Lib "user32"(ByVal hwndLock As _
  Integer) As Integer
Private Declare Function GetDesktopWindow Lib "user32"() As Integer
Private Declare Function EnableWindow Lib "user32.dll"(ByVal hwnd As Integer, _
  ByVal fEnable As Integer) As Integer
 
Private Sub Main
 
Dim HWND As Integer = GetDesktopWindow()
EnableWindow(HWND,0)
LockWindowUpdate(HWND)
 
End Sub
Es passiert absolut nichts. Kein Fehler, keine Wirkung...

MfG.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 13.05.10 15:09

Falls Du das Ausgrauen der neueren Betriebssysteme meinst (bspw. wenn man den Computer ausschalten möchte), dann gibt es da meines Wissens keine öffentliche Methode für.

Das System dermaßen zu blockieren widerspricht auch der Sicherheitsrichtlinie von Windows.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 15:59

Ich meine Sowas. Geht mit TuneUp2010
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 13.05.10 16:11

Ah, schummeln

Es gibt halt den Trick, dass Du den Bildschirmschoner aktiv setzt, den Bildschirm mittels BitBlt komplett kopierst, ihn grauskalierst und dann Dein eigenes Zeug anzeigst (und hinterher nicht vergisst, den Bildschirmschoner wieder inaktiv zu setzen).

SystemParametersInfo müsste für die Sache mit dem Bildschirmschoner funktionieren. Gibt's reichlich Beispiele im Web und mit Sicherheit auch hier im Forum.

BitBlt wie gesagt zum Kopieren des kompletten Bildschirms. Allerdings werden hier nur alle "normalen" Fenster kopiert. Ist ein Fenster aktiv, was direkt in den Grafikspeicher schreibt (bspw. der Fall bei Video-Playern), dann bleiben diese Stellen schwarz. Ist aber eher selten und auch nicht unbedingt relevant.

Zum Grauskalieren gibt es recht schnelle Möglichkeiten (auch ohne GetPixel/SetPixel). Man könnte zum Beispiel auch in eine DIBSection blitten. Da gibt es meines Wissens auf vbAccelerator gute Einsteigerbeispiele.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 16:35


Ne, mit schummeln will ich nix am Hut haben ;)

Eine andere Möglichkeit gibt es nicht?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 13.05.10 16:52

Keine die mir auf Anhieb bekannt wäre


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 18:04

Hm...und was ist hier mit ?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 13.05.10 18:07

"Einfrieren" ist dafür ein dämliches Wort.
Das einzige was hier passiert, ist, dass sämtliche Repaint-Nachrichten in dieser Zeit ignoriert werden. Draufklicken kann der Nutzer trotzdem noch beliebig.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 20:24

So´n Mist

Schade, würde echt gern wissen, wie man den Desktop wirklich EINFRIEREN kann.
Könnte es was nützen, wenn die "explorer.exe" freezt?
Wie man einen Prozess einfriert weiß ich nicht, ich weiß nur das es möglich ist...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 13.05.10 20:41

Wie bereits erwähnt, das lässt Windows halt nicht mehr zu (Sicherheitsrichtlinie von MS).


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Benutzername
Datum: 13.05.10 21:37

Das muss doch irgendwie funktionieren.
Hab mal SuspendThread ausprobiert, funktioniert leider auch nicht. Hab´s nicht direkt an Windows getestet, sondern an einem anderen Programm...
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Caron
Datum: 01.09.10 12:10

Ich würde ja der explorer.exe beenden. Damit hast du zwar noch farbe aber der Nutzer kann so gut wie nichts mehr machen. Programmfenster bleiben davon allerdings unberührt und laufen wie gehabt weiter.

Eine alternavive und etwas gemeine Methode wäre auch noch einfach einen Screnshot vom Bildschirm zu machen das ganze in eine Form Packen also die Picture eigenschaft nutzen, den borderstyle auf none setzen und mit einem Timer dir form immer wieder vor alles andere Packen.

Damit kann der Nutzer absolut nichts mehr machen. Auch der Taskmanager hilft nicht mehr. Den kann man zwar starten allerdings wird er vom Timer sofort wieder hinter das eigene Formular verfrachtet.

So hällt man das Fenster immer vorne

Private Sub Timer1_Timer()
SetWindowPos Me.hWnd, -1, 0, 0, 0, 0, _
      SWP_NOMOVE Or SWP_NOSIZE
End Sub
Das verstößt auch nicht gegen windows sicherheitsrichtlinien und funktioniert Garantiert unter win2000,XP,VISTA,7

Wenn du das ganze dann noch grau haben willst kannst du den screenshot ja wie schon beschrieben ausgrauen
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 01.09.10 12:24

1.) Explorer abschießen nützt nix, der lässt sich neu starten (viele haben auch "Tools" auf dem Rechner, die den Explorer im Absturzfall sofort wieder neu starten)
2.) Mit einem Timer eine Form in den Vordergrund schieben - wenig elegant und wenig effektiv. So ein Programm lässt sich relativ einfach abschießen.
3.) Der Taskmanager ist IMMER das topmost window, sprich es kann sich kein Fenster davorlegen (zumindest ist das auf meinen XP- und Win7-Rechnern so).

Außerdem hat "Benutzername" ja geschrieben, dass er mit "Schummeln" nichts am Hut haben möchte. Und die deutlich elegantere und bessere Lösung, wie man schummeln kann, hab ich bereits in meinem 2. Post beschrieben.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Caron
Datum: 02.09.10 00:13

2.) Mit einem Timer eine Form in den Vordergrund schieben - wenig elegant und wenig effektiv. So ein Programm lässt sich relativ einfach abschießen.

3.) Der Taskmanager ist IMMER das topmost window, sprich es kann sich kein Fenster davorlegen (zumindest ist das auf meinen XP- und Win7-Rechnern so).

Kannst du mir erklären wie du ein Programm abschießen willst, wenn du keinen Zugriff mehr auf dein System hast? Kein Task Manager keine Task Bar oder irgendein anderes Fenster.

Und nein du irrt dich was den Task manager angeht. Ich habe es auf 4 Rechnern bisher getestet und es hat überall funktioniert.

2 Rechner Windows XP Proffessional
1 Rechner Windows Vista Ulimate
1 Rechner Windows 7 Ultimate

Der Taskmanager blinkt zwar nach dem starten kurz auf wird aber sofort wieder vom Programmfenster "überblendet".

Du kannst es gerne Testen. Mich würde insteressieren wie sich der code auf deinem Rechner verhällt und wie du das Programm zum absturz bringst ohne den rechner neu zu starten oder den benutzer abzumelden was auch nur unter win VISTA oder 7 geht.

Ich weis, das diese Lösung nicht elegant ist. Aber im Endeffekt ist es unerheblich wie der Code aussieht solange er seinen Zweck erfüllt.

Ich bilde mir ein auch mal einen Code gesehen zu haben mit dem es möglich ist Maus und Tastatur komplett auszuschalten. Wenn man den noch zusätzlich einbaut kann ich mir nicht vorstellen, dass noch irgendjemand was tun kann, ohne den PC neu zu booten.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 02.09.10 12:15

Ich hab immer ein Programm laufen zum schnellen Abschießen von Prozessen, weil mir der Taskmanager da manchmal zu zimperlich ist. D.h. ich drücke eine Tastenkombination und das Programm, was momentan den Fokus hat wird beendet.

Die Sache mit dem immer wieder über den Taskmanager legen funktioniert sogar, allerdings kann ich den Taskmanager immer noch mal schnell auf meinen anderen Desktop schieben und alles von da aus regeln.

Maus und Tastatur kann man mit Lowlevel-Hooks blocken, allerdings ist nicht garantiert, dass nicht ein anderes Programm auch einen Lowlevel-Hook gesetzt hat und die Eingaben vor dem eigenen Programm auswertet.

Ich kann mir nicht vorstellen, dass solch eine (halbe) Lösung das ist, was gesucht war.
Wenn der Nutzer das System blocken will, muss er ja nur seine Arbeitsstation blockieren über das Windows-Menü. Wenn ein Programm so etwas wie beim Herunterfahren simulieren möchte... naja, also ich würde eine Software, die dann so agiert definitiv schnellstens wieder deinstallieren.

Ich sage nicht generell, dass es nicht irgendeinen Weg gibt, dass es auf allen Windows-Rechnern funktionieren könnte, aber ein kurzer Vergleich Kosten-Nutzen zeigt, dass man eher Abstand davon nehmen sollte.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Caron
Datum: 03.09.10 08:09

Ok in dem Fall gebe ich dir recht ^^

Für mich war die Lösung recht gut da sie das gewünschte Ergebniss ohne viel aufwand gebracht hat. Allerdings schreibe ich meine Programme mehr aus fun und nicht um sie Proffesionell zu vertreiben. Dafür halte ich mich nicht für gut genug^^

Trotzdem danke, das du dirs angesehen hast.
Wieder was gelernt
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: ModeratorMartoeng (Moderator)
Datum: 03.09.10 11:04

Joa, um mal den eigenen Rechner zu blockieren (bspw. ist Party und nicht jeder soll ran können), da hab ich das auch schon mal gemacht und Low Level Tastatur und Maus blockiert.
Die martoengMouse.dll kann diese Eingaben abfangen, falls Du Dir das mal anschauen möchtest. Damit lassen sich dann auch andere böse Sachen anstellen wie Keylogger, etc.


vbarchiv.dll (Freeware), Tutorials uvm. auf http://www.martoeng.com.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: Desktop deaktivieren 
Autor: Caron
Datum: 05.09.10 11:49

Oh ja ich kenne diese DLL und ich bewundere deine Arbeit wirklich sehr. Noch mehr fasziniert mich ja die vbarchiv.dll besonders die Peek und Poke funktion. Leider fehlt es mir hier an grundwissen wie das einzusetzten ist
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel