Snydekoder til Delphi program

Tags:    delphi

Jeg har lavet et program (en multiple choice test) som et projekt i skolen nu. Jeg kunne godt tænke mig, som en ekstra feature, at det er muligt når som helst mens programmet kører, at taste eksempelvis "programmering", hvorefter man tildeles dobbelt point for rigtige svar.

Jeg har tidligere rodet med nogle OnKeyPress events på min form, men umiddelbart kan jeg ikke lige regne ud hvordan jeg kan bruge det til at få programmet til at registrere en hel serie af tastetryk. Er der nogle gode forslag?

Mvh. Emilbp



10 svar postet i denne tråd vises herunder
3 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato


Hej Emil,

Lyder som en skidt ide at lægge snydekoder ind i programmet...

... men hvad du kan gøre er, at lave en "listands maskine" som accepterer den ene tast du kan fange af gangen. Tastes korrekt til næste tegn hele vejen aktiveres bool snyd = true; tastes forkert sendes tilbage til tilstand 0.

Med venlig hilsen
Ieet



Jeg kender ikke så meget til delphi, men man kan vel bruge et array, hvis de eksistere.



Det er desværre altså ikke så let som folk gør det til. Mener ikke udmiddelbart der findes en hurtig standart løsning til at gøre dette, og du skal altså enten ud i nogle nye komponenter eller en masse kodning.

Byggede engang en keylogger som loggede folk tastetryk, som bygger på nogle funktioner - desværre ikke helt nogle jeg kan huske. Men fandt denne tutorial til at lave log med folk tastetryk.

Artiklen er desværre bare på tysk, så ikke lige så let at forstå:
http://www.delphi-treff.de/tutorials/systemnahe-programmierung/win32/mouse-und-tastatur-hooks/

Men ellers så søg på noget "Delphi keylogger", eller lignende på google.



Det er et projekt i Programmering C på HTX, og kun for sjov jeg laver denne feature, for lige at lave lidt ekstra i mit program.

Kan du give et kodeeksempel? For jeg havde tænkt på noget af det samme, men hvis det første tegn der tastes "p" trigger en OnKeyPress event på formen, hvordan får jeg den så til at gå videre igen, hvis der trykkes på "r" som det næste osv.?



Det må jeg sige, at jeg ikke lige kan forestille mig hvordan du vil gøre :S



Jeg har fået løst mit problem nu. Jeg har følgende kode:
Fold kodeboks ind/udKode 

Multiplikator er en int, som bliver ganget på, når der bliver lagt point til, og TastedeIKode er en int, som jeg bruger til at finde ud af hvor meget af koden brugeren har tastet.



Shafh, hvorfor skule det være svært, det skal jo bare virke i hans program?

Emil her er lidt kode at kigge på:

Fold kodeboks ind/udKode 


Selve onkey procedure:

Fold kodeboks ind/udKode 


og det sidste oncreate:

Fold kodeboks ind/udKode 


Håber det giver lidt idéer at arbejde med..



Hmm kan godt være i har ret. Syntes bare jeg arbejde med det engang, og havde helvede problemer med det.

Emil, virker din kode også hvis dit program ikke er aktiv?



Det virker nu. Man kører hele testen igennem, og når den så er slut og viser resultatet disabler jeg alle komponenter. Derved bliver formen aktiv, og koden kan tastes. Når man så starter et nyt spil, så får man dobbelt point, så det fungerer som jeg gerne vil have den til.





Hej Emil,

Godt at se at du implementerede det foreslåede :D

Med venlig hilsen
Ieet





t