Allgemeine Fragen zur PROFAN Programmierung

Views (Heute): 243070 (4506)

| Suchen
| Zurück zur Übersicht

Autor | Thema: Lesen / Schreiben von Sektoren einer Diskette
Stefan Schnell
| Datum:31.03.02 19:06 (mail@stschnell.de) |
Hallo Community, früher gab es mal unter DOS einen Interrupt 13h mit der Funktion 02h und 03h, direktes Lesen oder Schreiben von Spuren und Sektoren einer Diskette. Gibt es eine ähnliche Funktion auch unter Profan / Windows? Mein Ziel ist es, die Seriennummer einer Diskette direkt zu manipulieren. Danke für Eure Antworten. Tschüss Stefan Schnell
Stefan Schnell
| Datum:05.04.02 20:22 (mail@stschnell.de) |
Hallo Community, habe einiges gelesen, bin wohl auf einem Weg, komme aber nicht so recht weiter, kennt von Euch einer die WinAPI-Funktion DeviceIOControl? Irgendwie kann man damit, bei Übergabe des entsprechenden Parameters, Disketten lesen, formatieren, wohl auch direkt auf den ParallelPort zugreifen. Insgesamt ist diese Funktion aber nicht so gut dokumentiert. Mal sehen... Tschüss Stefan Schnell
Gerhard Putschalka
| Datum:06.04.02 08:57 (g.putschalka@utanet.at) |
Hallo Stefan, in meinem Fundus habe ich ein Beispiel von Richard Maurukas gefunden. Du kannst es unter http://members.telering.at/g.putschalka/lwinform.zip herunterladen. Es ist aber nur kurze Zeit auf meiner HP verfügbar. Mfg. Gerhard.
spiderman
| Datum:06.04.02 10:39 |
Ich hab da was älteres aus der PSP gefunden :) ' PRFellow-Vorlage ' Autor: Thomas Hölzer ' Seriennummer einer Disk nur unter Win 9x (nicht NT!) schreiben ' Benutzung auf eigene Gefahr! ' Voreingestellt ist LW A: ' Benutzen Sie diesen Code nur, nachdem Sie eine ' Testdiskette ohne Schreibschutz in LW A: eingelegt haben ' Vorsicht: Die Seriennummer von Festplatten lassen sich ebenfalls schreiben ' Das kann Probleme bei Garantiefällen geben! Def CloseHandle(1) !"KERNEL32","CloseHandle" Def CreateFile(7) !"KERNEL32","CreateFileA" Def DeviceIoControl(8) !"KERNEL32","DeviceIoControl" Def FillStringNull$(1) Translate$(Space$(@%(1)),Chr$(32),Chr$(0)) ' DOS-Interrupt $21 in Win32 Declare VWIN32_DIOC_DOS_IOCTL% Let VWIN32_DIOC_DOS_IOCTL%=1 ' Weitere Deklarationen und Initialisierungen Declare Vxd&,Device#,Registers#,MediaData#,InOutPut# Declare Fill$ Dim Device#,14 Dim Registers#,28 Dim MediaData#,8 Dim InOutput#,4 ' Die Strukturen sicherheitshalber mit Nullen initialisieren Let fill$=FillStringNull$(28) String Registers#,0=fill$ String MediaData#,0=fill$ String InOutPut#,0=fill$ ' Die Seriennummer einsetzen Long MediaData#,2=12345 'Ins EAX-Register DOS-Funktion $440D: Long Registers#,12=$440D ' EBX - das Laufwerk (0=Aktuelles, 1 = A:,3= C: usw.): Long Registers#,0=1 'LW A: ' ECX - Unterfunktion (Set Media ID): Long Registers#,8=$46 ' EDX - Struktur mit Datenträgerinfo - hier nur mit Seriennummer: Long Registers#,4=MediaData# ' Jetzt gehts wirklich los ' Virtuellen Gerätetreiber ansprechen (*vwin32 ist intern in vmm32.vxd) String Device#,0=Add$("\\\\.\\vwin32",Chr$(0)) Let Vxd&=CreateFile(Device#,$40000000,3,0,3,128,0) ' Ist der Treiber zur Zusammenarbeit bereit? If Neq(Vxd&,-1) ' Hier wird geschrieben If Equ(0,\ DeviceIoControl(Vxd&,VWIN32_DIOC_DOS_IOCTL%,Registers#,28,Registers#,28,Mediadata#,0)) MessageBox("Fehler bei DeviceIoControl!","Fehler! - Seriennummer wurde nicht geschrieben",16) Else Let fill$="Seriennummer geschrieben für Disk", Chr$(Add(Long(Registers#,0),64));":" MessageBox(fill$,"Info",64) EndIf Else MessageBox("Ungültiges VXD-Handle","Abbruch",16) EndIf ' Aufräumen CloseHandle(Vxd&) Dispose Device# Dispose Registers# Dispose MediaData# Dispose InOutPut# WaitInput
Stefan Schnell
| Datum:06.04.02 14:29 (mail@stschnell.de) |
Hallo Gerhard und Spiderman, danke für Eure Ansätze, habe sie downgeloaded bzw. gesichert. Werde meine Erfahrungen hier kurz kundtun. Tschüss Stefan Schnell
Roland G. Hülsmann
| Datum: 06.04.02 16:19 (rgh-soft@t-online.de) |
Hallo Spidermann, ich möchte Dich bitten folgende drei Punkte zu beachten, die in den Forumsregeln unmißverständlich stehen: 1. sind hier nur Postings mit wirklichem Namen gestattet! 2. sind nur Postings mit existierender eMail-Adresse gestattet! 3. weiß ich zufällig, daß eine Weitergabe copyright-geschüzter Vorlagen als Text aus PRFellow NICHT gestattet ist, und somit Urheberrecht verletzt. Ein Hinweis auf Vorlagen ist natürlich gestattet. Weiteres findest Du in der Hilfe zu PRFellow. (Das gilt im Übrigen für jegliche Freeware oder Shareware: Das Urheberrecht bleibt beim Autor, seine der Software beigefügten Copyright-Bestimmungen sind bindend!) Ich bitte Dich also, Dich bei künftigen Postings an die Forumsregeln zu halten! Danke! Gruß Roland

| Zurück zur Übersicht