Blokada klaiwszy i schowka w C++

0

Witam!
Aktualnie piszę program zaliczeniowy z baz danych - konkretnie system egzaminacyjny studentów. A że student to szczwana bestia i pewnie chciałby wynieść pytania z sali egzaminacyjnej na zewnątrz lub korzystać ze ściąg na dysku lub w internecie - potrzebne mi są pewne zabezpieczenia. Chodzi o to, by po uruchomieniu programu zajmował on cały ekran i był w pozycji AlwaysOnTop. To po pierwsze, ale trzeba by jeszcze dodatkowo zablokować kombinacje klawiszy podczas startu programu i odblokować je przy jego zakończeniu. Konkretnie chodzi o blokady (lub zmianę funkcjonalności np. na wyświetlenie jakiegos komunikatu) nastepujacych kombinacji:

  • Alt+Tab;
  • Ctrl+Alt+Delete;
  • Ctrl+A;
  • Ctrl+C;
  • Ctrl+V;
  • Ctrl+X;
  • klawisz Windows;
  • Print Screen.

Od biedy - jeśli blokada powyższych klawiszy jest niemożliwa lub zbyt trudna - wystarczyłoby zablokować całą klawiaturę (tylko to nie jest tak całkiem po mojej myśli - przestaną działać skórty klawiszowe itp.)

Dobrze byłoby również całkowicie wyłączyć systemowy schowek, lub po prostu opróżniać go automatycznie po każdej zmianie jego zawartości (widziałem program studenta, który uruchomiony w tle zrzucał schowek do pliku natychmiast po zmianie jego zawartości - wtedy nawet nie ma potrzeby przełączać się na aplikacje w tle).

Jak znam życie to zapomniałem o jakiejś ważnej kwestii z tym związanej lub jakimś skrócie klawiszowym, ale mam nadzieję że wyraziłem się w miarę jasno, jeśli chodzi o mój problem. Teraz uprzejmie proszę o pomoc w jego rozwiązaniu.
Pozdrawiam,
Łukasz

0

czy ja tego juz gdzies nie widzialem :0

a lookales na codeproject.net i codeguru.com?

0

Temat omawiany szukajka i bedzie odpowiedz
:[

0

Program jest pisany w Borland C++ Builder 6

Oki - podsumuje co mam do tej pory.
Po pierwsze - ze schowkiem sobie już poradziłem, wiec print screen, ctrl+c itp. odpada - z tym już nie musicie kombinować.
Potrzebuje teraz pomocy z czymś innym, ale dalej związanym z zagadnieniem. Już wyjaśniam o co chodzi. Zacznę od podania dwóch linków:

  1. http://msdn.microsoft.com/msdnmag/issues/02/09/CQA/
  2. http://www.codeproject.com/win32/AntonioWinLock.asp

W tych dwóch linkach zawiera się wszystko co jeszcze chciałbym zrobić, są tam nawet kody źródłowe. Tylko te kody źródłowe są albo w Visual Studio albo w Visual Basicu. Nie potrafię sobie poradzić by przerobić je na kod działający z Builderem. Bardzo bym prosił osoby obeznane w tym o pomoc. W obu artykułach jest wszystko opisane, dołączone pliki. Nie trzeba już nic kombinować tylko zmusić to do pracy z Builderem.

0

Wystarczyłoby, żeby ktoś nauczył mnie korzystać z pliku "WinLockDll.dll" dostępnego w drugim podanym przeze mnie linku w archiwum z "demo" programu (http://sqbanietz.neostrada.pl/WinLockDll.dll). Tzn. jak dodać ten plik do projektu w Builderze 6 i jak się nim posługiwać. Nie muszę wiedzieć jak blokować te wszystkie kombinacje klawiszy, ukrywać pulpit itp. jeśli tylko będę w stanie to zrobić z pomocą tej dll'ki (wiem, że się da ale nigdy nie robiłem i nie miałem z tym do czynienia). Jeśli ktoś potrafi mi wyjaśnić jak używac tego pliku - będę bardzo wdzięczny.

0

Tzn. jak dodać ten plik do projektu w Builderze 6

Możesz to zrobić na dwa sposoby: dymamicznie -

LoadLibrary

, GetProcAdress

 lub statycznie - musisz wygenerować bibliotekę *.lib i dodać ją do projektu. Oczywiście musisz też załączyć plik <code class="cpp">WinLockDll.h

.

PS. jak masz kody źródłowe tej dll'ki, to po prostu dodaj je do projektu i już ;)

0

Dziękuję wszystkim za pomoc :)
Po znaczącej pomocy kolegi udało mi się zmusić ten plik .dll do pracy i działa wprost idealnie. O czymś takim mogłem tylko pomarzyc. Jeszcze raz dzięki za Wasze zaangażowanie i pomoc!

1 użytkowników online, w tym zalogowanych: 0, gości: 1