[Alt][Strg][Entf]

M

Malefizbua

wie kann ich mit vb6 in meinem programm
[Alt][Strg][Entf] sperren ???
ich weis zwar wie es unter win98 geht (wies schon im forum steht),
abr leider funktioniert, dass nicht in win2k....
kann mir jemand sagen wie man das unter win2k bewerkstelligt????????
 

Celvin

Mitglied
Ist generell keine so gute Idee, geht aber mit nem Key-Mapping,erfordert aber nen Reboot, es ist nicht möglich, Ctrl-Alt-Del in Win2k etc. mal eben so ein bzw. auszuschalten. Solange du nicht die automatische Anmeldung eines Standardbenutzers aktiviert hast, kann es gut sein, dass du so schnell deinen Windows-Desktop nicht wiedersiehst...
Mach dich also selber darüber schlau, ich glaube btw auch nicht, dass es irgendeine legitime Anwendungsmöglichkeit dafür gibt, daher werde ich mal weiter nichts dazu sagen.
 
M

Malefizbua

"dass es irgendeine legitime Anwendungsmöglichkeit dafür gibt"....
warum??? i brauch nur ein prog, dass den pc abspert, wenn ich mal weg bin... ja gut, sowas ist zwar bei win2k serienmässig dabei abr ich wills halt selber versuchen.....

aber dangge trotzdem.....
 

xtrem

Mitglied
Hosa,

du kannst es ja mal probieren den Taskmanager wieder zu schließen wenn einer STRG+ALT+ENTF drückt ... z.B. mit dem Fensterhandle (hwnd).

gruß xtrem
;-]
 

Dario Linsky

Erfahrenes Mitglied
unter windows hat jedes fenster (und auch jedes steuerelement auf einem fenster) eine eindeutige kennung. die nennt man handle.
über das handle zu einem fenster kann man aus einer anderen anwendung darauf zugreifen und das fremde fenster quasi fernbedienen. aber ich glaube ehrlich gesagt nicht, dass vb systemnah genug ist, um den taskmanager zu kontrollieren. :rolleyes:
 

xtrem

Mitglied
Hosa,

man könnte eine Routine mit dem Timer ausführen, die das Fenster sucht z.B. mit FindWindow(api) und dieses dann versucht zu schließen.
Aber diese möglichkeit geht ziemlich auf resourcen des pc durch den timer (1ms). Ein versuch wäre es zumindest wert.

gruß xtrem
;-]
 

Dario Linsky

Erfahrenes Mitglied
klar kann man mit der api das handle zu einem anderen fenster kriegen. mit api-anweisungen kann man in vb so ziemlich alles machen.

aber ich weiss nicht genau, ob man aus einem fremden programm den taskmanager beenden kann. ich weiss, dass der taskmanager (zumindest unter windows nt bzw. windows 2000) als prozess die höchste priorität hat.
das heisst, dass der taskmanager alle anderen laufenden programme unterbrechen wird und in einen wartezustand versetzen kann. und selbst wenn ein selbstgeschriebenes programm noch rechenzeit bekommt, obwohl der tm läuft, ist noch die frage ob man genug rechte hat, diesen zu schliessen.

btw: unter windows ist die handhabung von timern teilweise ein ziemliches problem. erstens gehen viele timer und niedrige intervalle ziemlich auf die performance des systems.
zweitens ist die genauigkeit etwas problematisch. unter windows 9x gibt es 18 ticks per second und ab windows nt gibt es 100 ticks per second. das führt dazu, dass unter win9x nur alle 54ms ein timersignal kommt und unter winnt alle 10ms. bei einer minute gibt das soweit ich weiss schon abweichungen von ein paar sekunden.
aber das nur so am rande. ;)
 

Daniel Toplak

Erfahrenes Mitglied
Es gibt da evtl. noch einen anderen Lösungsweg, bin mir aber net sicher, ob das gehen würde. Und zwar ebenfalls über Win-API Funktionen. Du fängst jede Message von Windows ab. Windows verschickt die Messages über eine Message-Warteschlange. Und dein Programm sollte sich einfach die Message [STRG]+[ALT]+[ENTF] aus dieser Warteschlange nehemen und verarbeiten. Das einzige Problem dabei ist warscheinlich, Windows dazu zu "überreden", daß diese Nachricht für dein Programm bestimmt ist, und nicht für Windows.
Ab das tatsächlich möglich ist, kann ich dir net sagen.

Gruss Homer