IF Else in OnPaint.... geht wieder net!!



  • Hallo.
    ICh habe vor, dass, wenn die Datei AMAKE02.dll existiert,sollte das Programm NORMAL weiterfahren und normal den Dialog zeichnen und normal verlaufen.

    Wenn die Datei NICHT vorhanden ist, soll der dialog IDD_SERIAL aufgerufen werden und man muss den Freischaltcode eigneben, um alle funktionen nutzen zu können. Ist dieser Falsch, so bleiben eoinige Funktionen deaktiviert. wenn der Code richtig ist, wird die datei amalke02.dll erstellt und alle fuktionen werden aktiviert.

    Aber: Das erstemal, wo die Datei nich da ist, wird der IDD_SERIAL Dialog geöffnet auch alles andere funzt!
    NUR: Wenn ich auf OK klicke, also dort bei der MEssageBox "Weiter gehts mit dem DEMO, code falsch!", wenn ich nen FALSCHEN Code eingebe, fürht das PRogg doch tatsächlich einfach ELSE aus und erstellt die DLL Datei!!!! Und beim nächsten start ist dann doch die VOLLVERSION, weil ja die DLL existiert, obwohl die nicht sollte!!!

    Kann mir da einer helfen??
    Hier mal mein Code in der Funktion ELSE in onPaint();

    //Überprüfen ob DATEI existiert (Grund: FREISCHALTEN!!)
            //Wenn nicht, dann CODE verlangen oder DEMO Version!)
    
    CFileStatus FileStatus;
    if (CFile::GetStatus ("c:\\Windows\\amake02.dll", FileStatus))
    {
    CPaintDC dc(this);
            CTime AktuelleZeit;
            AktuelleZeit = CTime::GetCurrentTime();
            dc.TextOut(90, 315, AktuelleZeit.Format("%A, %d %B, %Y"));
            SetTimer(1,1000,NULL);
            CDialog::OnPaint();
    }
    else 
    {
    //Dateiname ist nicht vorhanden
        HANDLE hFile;
    hFile = CreateFile("c:\\Windows\\amake02.dll", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL | FILE_ATTRIBUTE_NORMAL, NULL);
    char szBuffer[] = "ACHTUNG! Diese Datei wird\nvom Programm ABRECHNUNG MAKER 2002\nverwendet! NICHT LÖSCHEN!";
    DWORD dwWritten;
    WriteFile(hFile, szBuffer, strlen(szBuffer), &dwWritten, NULL);
    CloseHandle(hFile);
    CFreischaltDlg dlgSerial;
    dlgSerial.DoModal();
    }
    

    mfg
    Programmer



  • Schau dir doch mal deinen Code an und denk selber.
    Du überprüfst, ob die Datei existiert, falls nicht, gehst du in den else-Abschnit. Dann erstellst du die Datei. Dann öffnest du den Dialog. D.h.: Die Datei wird IMMER erstellt, wenn sie noch nicht da ist. BTW: Jeder Möchtegerncracker wird sich über diesen Schutz totlachen, kannst dir eigentlich sparen.



  • Original erstellt von dEUs:
    Schau dir doch mal deinen Code an und denk selber.
    Du überprüfst, ob die Datei existiert, falls nicht, gehst du in den else-Abschnit. Dann erstellst du die Datei. Dann öffnest du den Dialog. D.h.: Die Datei wird IMMER erstellt, wenn sie noch nicht da ist. BTW: Jeder Möchtegerncracker wird sich über diesen Schutz totlachen, kannst dir eigentlich sparen.

    Irgendwie hast du ja recht, aber...
    es muss doch eine möglichkeit geben, sowas in der art zu machen...
    Pararell zu meinem Problem oder jetztigen Frage werde ich mal in der MSDN suchen... mal schauen, ob sich da was finden lässt 😉



  • Du musst nur dein Gehirn anwerfen und logisch den Ablauf durchdenken ... Im Grunde hat das garnix mehr mit der MFC zu tun ...



  • Hey, das ist mal ein echter Kracher! 😃
    Wenn Du dazu was in der MSDN findest, ist Bill ab heute für mich ein Gott! 😃

    Nix für ungut:
    Ist zwar ein beschissener Schutz, den Du Dir da ausgedacht hast, aber erstell die Datei doch wenigstens NACH der Überprüfung der Usereingabe und zwar IM entsprechenden Dialog.



  • BINGOOO!!!!
    Thx!

    DU bist BILL oder?? *hahahahaha*

    NIchts gegen dich!



  • Naja, vielleicht solltest du dich erstmal vertiefend in die Programmierung einarbeiten bevor du zu kommerziell wirst... Aber mal was anderes. Den absoluten Kopierschutz erreichst du nie. In dem Betrieb in dem ich arbeite verwenden wir Dongles. 100%ig sicher sind die auch nicht (siehe AutoCAD 2000). Aber wenn du etwas nachdenkst und dir ein gutes Konzept entwickelst hälst du zumindest die Wannabe-Cracker davon ab ein Programm zu vervielfältigen.

    Wenn du wenigstens noch die Daten in der Datei ein wenig verschlüsseln würdest. Und sei es du ersetzt alle 'a's durch 'b's und so weiter. Da wäre es wenigstens nicht sooooooooo einfach dein Programm zu knacken...


Log in to reply