Was mache ich hier falsch?
-
Hier erstmal der Code:
try { Passwort = StrToInt (Edit1->Text); if (Passwort == "zahlen") ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_SHOW); HWND hDesktop,hListView; hDesktop = FindWindowEx(FindWindow("Progman",0),0,"SHELLDLL_DefView",0); hListView = FindWindowEx(hDesktop,0,"SysListView32",0); ShowWindow(hListView, SW_RESTORE); Close (); } catch (...) { }Ich denke, man kann erkennen was ich vor habe. Aber egal. Ich will, das wenn das richtige Passwort eingegeben wird die Taskleiste und die Desktopsymbole wieder sichtbar werden. Mit der Taskleiste, funktioniert es auch, aber die Desktopsymbole werden auch wieder sichtbar wenn man ein Falsches Passwort eingegeben hat.
Kann mir da jemand helfen?
-
alles was passieren soll, wenn das PW wahr ist, nach der 'if' Bedingung in Klammern setzen '{......}
-
Was solln das?
Erst wandelst du Edit1->Text in eine Zahl um, danach vergleichst du die Zahl mit einem String...?
-
OldMan00 schrieb:
alles was passieren soll, wenn das PW wahr ist, nach der 'if' Bedingung in Klammern setzen '{......}
Vielen dank, jetzt klappt alles.
GCoder schrieb:
Was solln das?
Erst wandelst du Edit1->Text in eine Zahl um, danach vergleichst du die Zahl mit einem String...?Ich hab da nicht wirklich nen String drine. "zahlen" hab ich hier nur anstelle des Passwortes geschrieben.
-
Hallo
^Du kannst StrToIntDef verwenden, damm brauchst du kein try-catch.
Allerdings finde ich es sehr schlecht, nur Zahlen als Passwort zuzulassen. Schließlich heißt es Passwort, und jede Beschränkung auf eine Zeichengruppe (bei dir Zahlen) vereinfacht Angriffe auf das Passwort. Also wandle nicht in Zahlen um, sondern vergleiche gleich auf Strings, und du schlägst zwei Fliegen mit einer Klappe.bis bald
akari
-
akari schrieb:
Hallo
^Du kannst StrToIntDef verwenden, damm brauchst du kein try-catch.
Allerdings finde ich es sehr schlecht, nur Zahlen als Passwort zuzulassen. Schließlich heißt es Passwort, und jede Beschränkung auf eine Zeichengruppe (bei dir Zahlen) vereinfacht Angriffe auf das Passwort. Also wandle nicht in Zahlen um, sondern vergleiche gleich auf Strings, und du schlägst zwei Fliegen mit einer Klappe.bis bald
akariDanke, mit StrToIntDef probier ich nachher gleich mal aus.
Kannst du mir ein bisschen genauer erklären, wie ich auch wörter zulassen kann?
Ich bin noch Anfänger und hab nicht soviel Ahnung.
-
try { Passwort = Edit1->Text; if (Passwort == "wort"){ ShowWindow(FindWindow("Shell_TrayWnd", NULL), SW_SHOW); HWND hDesktop,hListView; hDesktop = FindWindowEx(FindWindow("Progman",0),0,"SHELLDLL_DefView",0); hListView = FindWindowEx(hDesktop,0,"SysListView32",0); ShowWindow(hListView, SW_RESTORE); Close (); } } catch (...) { }
-
Danke.
Ich hatte zwar erst Probleme mit der Variablen Vereinbarung, aber dann hab ich es hin bekommen.@akari:
Das mit StrToIntDef hab ich aber nicht hinbekommen. habs deshalb wieder zu try-catch geändert.
-
Hallo
Das mit StrToIntDef hab ich aber nicht hinbekommen.
Was verstehst du unter "nicht hinbekommen"? Was ist so schwer daran?
Passwort = StrToIntDef (Edit1->Text, 0); // Wenn Edit1->text nicht in eine Integer-Zahl umgewandelt werden kann, wird 0 zurückgegebenAllerdings ist das durch den String-Vergleich auch nicht mehr nötig.
bis bald
akari
-
Ich weiß auch nicht, warum es nicht geklappt hat. könnte es daran liegen, das ich ", 0" nicht geschrieben habe?
Aber ist auch egal. Mit try-catch funktioniert es einwnadfrei und denn ist es Okay.Aber trotzdem danke, das du mir helfen wolltest.