Minimieren und Schließen Deaktivieren
-
Mal ne blöde Frage:
Wie kann ich denn das Schließen und minimieren meines Programms
verhindern?Ich möchte, damit das deutlich wird, einen Browser schreiben, der immer maximiert ist (Full Screen) und sich nur über Passwort schließen lässt.
Die URL soll man auch nur mit Passwort ändern können.Schon jetzt mal Danke für die Antworten
-
Das ist in der Tat eine ziemlich blöde Frage, da sie schon recht ausführlich in der FAQ unter "Forms" erörtert wird.
-
ups...
Danke für den Tipp, dass hatte ich vergessen.
Ich hab mir nämlich nur einen Teil ausgedruckt und das war nicht dabei deshalb hab ich nicht gegucktP.S.: Und wie kann ich das minimieren verhindern?
Ich will außerdem, dass die Taskleiste nicht zu sehen ist!nicht das ihr euch wundert, dass soll ein Browser für die schule werden.(für Präsentationen)
[ Dieser Beitrag wurde am 06.04.2003 um 20:35 Uhr von quizzmaster editiert. ]
-
Steht IMHO alles in der FAQ.
-
Das mag ja sein, aber ich kann mit dem MediaPlayer Fullscreen nix anfangen!
Was soll ich damit machen?
void __fastcall TForm1::MediaPlayer1PostClick(TObject *Sender, TMPBtnType Button) { if (Button == btPlay) { // Get a handle to the MediaPlayer display window // may be "AVIWnd32" for WinNT HDisplayWindow = FindWindow("AVIWnd", NULL); // remove the border and caption LONG dwStyle = GetWindowLong(HDisplayWindow, GWL_STYLE); SetWindowLong(HDisplayWindow, GWL_STYLE, dwStyle & ~WS_CAPTION & ~WS_THICKFRAME); // resize to fullscreen SetWindowPos(HDisplayWindow, HWND_TOPMOST, 0, 0, Screen->Width, Screen->Height, NULL); } }
Ich möchte ja nur, dass meine ganze Form1 kommplett Fullscreen läuft und man sie nicht mit ALT+F4 Schließen und minimieren kann. Das erste habb ich schon geschafft aber man kann immernoch ALT+Tab benutzen und CTRL+ESC.
Dazu gibts zwar was aber das funzt net!
Dann soll ganz am anfang eine andere Form als Dialog angezeigt werden(ShowModal geht net).
Danke für weitere Antworten und Vorschläge
[ Dieser Beitrag wurde am 07.04.2003 um 14:07 Uhr von quizzmaster editiert. ]
-
Weiss das keiner oder habt ihr keine Lust?
Ich brauch das!
Bitte, Bitte, Bitte![ Dieser Beitrag wurde am 07.04.2003 um 21:13 Uhr von quizzmaster editiert. ]
-
Leider ist mein eigens zur Lösung deines Problems abkommandierten Expertenteam noch zu keiner Lösung gelangt. Die 8h sind hald doch relativ knapp. Ich werde mich selbstverständlich sofort darum kümmern und den faulpelzen in den Hintern treten!
Aber wirklich... dich 8h warten zu lassen *kopfschüttel*...
nu aber mal sarkasmus bei seite...
Normalerweise werden solche drängler mal kurz aus die Ersatzbank geschickt indem der thread vorübergehend geschlossen wird... versteh dies als eine Warnung. Lass den Leuten auch Zeit dein Problem zu analysieren. Ist der Thread nicht mehr auf der ersten Seite besteht frühstens eine Notwendigkeit den Thread wieder nach oben zu schieben.
-junix
-
Ok habe verstanden.
Ich habe es auch mitlerweile geschafft, dass sich das prog über die taskleiste legt, aber die Start Taste funzt noch. Kann man die irgendwie abschalten?
-
ALT+F4 verhintern:
in FormCloseAction = caNone;
Tasten sperren
im Header
private: static HHOOK ghhookKB; static void __stdcall SetHook(void); static void __stdcall RemoveHook(void); static LRESULT CALLBACK CheckKey(int, WORD,LONG);
im Code
//--------------------------------------------------------------------------- __fastcall TForm_Main::TForm_Main(TComponent* Owner) : TForm(Owner) { SetHook(); } //--------------------------------------------------------------------------- void __stdcall TForm_Main::SetHook(void) { ghhookKB = SetWindowsHookEx(WH_KEYBOARD_LL, (int(__stdcall*)())CheckKey, HInstance, NULL); } //--------------------------------------------------------------------------- void __stdcall TForm_Main::RemoveHook(void) { UnhookWindowsHookEx(ghhookKB); } //--------------------------------------------------------------------------- LRESULT CALLBACK TForm_Main::CheckKey(int nCode, WORD wParam, LONG lParam) { bool bEatKeyStroke = false; if (nCode == HC_ACTION) { switch (wParam) { case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam; bEatKeyStroke = ((p->vkCode == VK_LWIN)) || ((p->vkCode == VK_RWIN)) || ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)) || ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) || ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)); break; } } return(bEatKeyStroke ? 1 : CallNextHookEx(ghhookKB, nCode, wParam, lParam)); }
-
Also der gibt mir nen Linker Error.
[Linker Error] Unresolved external 'TForm1::ghhookKB' referenced from C:\blabla
Was mach ich falsch?
[ Dieser Beitrag wurde am 08.04.2003 um 14:19 Uhr von quizzmaster editiert. ]
-
Lass mal die statics weg.
-
Kann das leider net prüfen hab das aber schon mal probiert.
Das funzt auch net. leider...
Da gibts noch mehr Fehler
-
Na klar. Kann auch ned. <VergissEs> hat falschen Code gepostet. So gehts:
// Header: //--------------------------------------------------------------------------- #ifndef Unit1H #define Unit1H //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> //--------------------------------------------------------------------------- HHOOK ghhookKB; LRESULT CALLBACK CheckKey(int, WORD,LONG); //--------------------------------------------------------------------------- class TForm1 : public TForm { __published: // Von der IDE verwaltete Komponenten void __fastcall FormClose(TObject *Sender, TCloseAction &Action); private: // Anwender-Deklarationen protected: void __stdcall SetHook(void); void __stdcall RemoveHook(void); public: // Anwender-Deklarationen __fastcall TForm1(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TForm1 *Form1; //--------------------------------------------------------------------------- #endif // CPP //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { SetHook(); } //--------------------------------------------------------------------------- void __stdcall TForm1::SetHook(void) { ghhookKB = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)CheckKey, HInstance, NULL); } //--------------------------------------------------------------------------- void __stdcall TForm1::RemoveHook(void) { UnhookWindowsHookEx(ghhookKB); } //--------------------------------------------------------------------------- LRESULT CALLBACK CheckKey(int nCode, WORD wParam, LONG lParam) { bool bEatKeyStroke = false; if (nCode == HC_ACTION) { switch (wParam) { case WM_KEYDOWN: case WM_SYSKEYDOWN: case WM_KEYUP: case WM_SYSKEYUP: PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam; bEatKeyStroke = ((p->vkCode == VK_LWIN)) || ((p->vkCode == VK_RWIN)) || ((p->vkCode == VK_TAB) && ((p->flags & LLKHF_ALTDOWN) != 0)) || ((p->vkCode == VK_ESCAPE) && ((p->flags & LLKHF_ALTDOWN) != 0)) || ((p->vkCode == VK_ESCAPE) && ((GetKeyState(VK_CONTROL) & 0x8000) != 0)); break; } } return(bEatKeyStroke ? 1 : CallNextHookEx(ghhookKB, nCode, wParam, lParam)); } void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { RemoveHook(); } //---------------------------------------------------------------------------
-
Er compiliert es zwar aber da tut sich nix
Ich kann ALT+TAB und CTRL+ESC immernoch benutzen (WINTASTE auch)
-
Huups... hab grad in der MSDN nachgeschaut. Ist nur für Win NT/XP/2000 - der low level KeyboardHook.
-
Dass der ganze Schnodder auch in der FAQ steht (unter "Tasten") wisst ihr aber, oder?
-
Jetzt schon.
-
Ok thx ich brauchs auch für Win2k hab aber immoment nur WinMe und XP zur Hand ich prob das gleich ma aufm XP Rechner *g*
-
Es funzt fast perfekt, aber das prog is noch im Taskmanager.
Kann man das da irgendwie verbergen oder die Tasten kombination CTRL+ALT+ENTF deaktivieren?
-
Original erstellt von quizzmaster:
Kann man das da irgendwie verbergen oder die Tasten kombination CTRL+ALT+ENTF deaktivieren?Letzteres: Nein!
Ersteres: Ja. Stichwort: Dienst. Gibts 1000fach hier im Forum.