| |
VB & Windows APIDesktop 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. | |
Re: Desktop deaktivieren | | | Autor: Benutzername | Datum: 13.05.10 15:59 |
| Ich meine Sowas. Geht mit TuneUp2010 | |
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? | |
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... | |
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... | |
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 | |
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. | |
Re: Desktop deaktivieren | | | Autor: Martoeng (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. | |
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 | |
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 | |
| 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 |
|
|
Neu! sevCommand 4.0
Professionelle Schaltflächen im modernen Design!
Mit nur wenigen Mausklicks statten auch Sie Ihre Anwendungen ab sofort mit grafischen Schaltflächen im modernen Look & Feel aus (WinXP, Office, Vista oder auch Windows 8), inkl. große Symbolbibliothek. Weitere InfosTipp des Monats TOP Entwickler-Paket
TOP-Preis!!
Mit der Developer CD erhalten Sie insgesamt 24 Entwickler- komponenten und Windows-DLLs. Die Einzelkomponenten haben einen Gesamtwert von 1605.50 EUR...
Jetzt nur 599,00 EURWeitere Infos
|