View Single Post
  #6  
Old 24-07-2002, 10:12
GSCA-Member GSCA-Member is offline
Junior Member
 
Join Date: Jul 2002
Posts: 11
Thanks: 0
Thanked 0 Times in 0 Posts
GSCA-Member
.

Hi Robman,

ich kann dir ein bisschen helfen .

API-Funktionen checken ob die cd-rom eingelegt ist damit davon gelesen werden kann.
beispiele hierzu wären:
GetDriveTypeA
GetVolumeInformationA
GetDriveAttributeA
FindFirstFileA
SetCurrentDirectoryA
GetFileSize
CreateFileA
GetDiskFreespaceA
GetFileAttributeA
mciSendCommandA & mciSendStringA (bei AudioCD's)

---------------------------------------
GetDriveTypeA ist die wichtigste, denn sie checkt ob de CD eingelegt
ist oder nicht.

Nun ein bisschen Theorie:
das grosse "A" am ende jeder dieser API-Funktionen besagt, dass es eine 32 Bit-Anwendung ist.
Würde das "A" fehlen wäre es eine 16 Bit-Anwendung (für DOS).
(soll aber jetzt nicht stören, da dass nicht sooo wichtig für uns ist)

Die API-Funktion GetMessageBoxA die oben jetzt nicht aufgeführt ist, ist dazu da, die Fehlermeldung im Pop-up Fenster, gleich zu anfang, wenn man versucht das Spiel ohne CD zu starten, auszugeben.
D.h. dann auch, dass diese Messagebox gelöscht werden muss .

Sicherlich gibt es noch mehr als die oben genannten Funktionen, denn die CD-Protection selber, also der Kopierschutz wird bestimmt auch bei manchen Spielen extra abgefragt.

Hmm, was gibts noch zu sagen?!
Also Assembler sollte man können, damit man die einzelnen Code-Zeilen
versteht. Desweiteren sollte man sich mit einem Dissassembler auskennen und auch noch einem Hex-Editor, denn diese zwei Programme braucht man auf alle Fälle.
Will man z.B., wie oben gesagt, die Messagebox löschen muss man sie aus dem Programm nopen - mehr dazu kannst du von mir per PN (private nachricht) erfahren, denn hier will ich nicht näher darauf eingehen .

mfg GSCA-Member
Reply With Quote