Wubbable Skrevet 12. januar 2007 Skrevet 12. januar 2007 Skal finne HDD serialen siden jeg lager en sikkerhetsfunksjon i programmet mitt slik at brukere må ha en nøkkel for å bruke det (som sjekkes opp mot en "database") Slik er det, men jeg kan tydeligvis ikke bruke "String$": btw, tar gjerne imot hjelp om hvordan jeg kan finne andre ting som er unikt for hver datamaskin (UTEN ekstra DLL filer, den ferdige kompilasjonen skal bestå av kun en programfil)
Wubbable Skrevet 12. januar 2007 Forfatter Skrevet 12. januar 2007 (endret) VolNameBuf = New String(Chr(0), 255) 7705861[/snapback] Da skjer dette... Og endrer jeg til det den foreslår, fungerer ikke selve funksjonen.. "Variable GetSerialNumber is used before it has been assigned a value. A null reference exception could result at runtime" Endret 12. januar 2007 av Vigilant
alftore Skrevet 12. januar 2007 Skrevet 12. januar 2007 Bytt VolNameBuf = New String(255, Chr(0)) med VolNameBuf = New String(Chr(0), 255) Lengden på strengen kommer sist. http://msdn2.microsoft.com/en-us/library/s...ing.string.aspx
Wubbable Skrevet 13. januar 2007 Forfatter Skrevet 13. januar 2007 Som du ser, så har jeg jo allerede gjort det...
GeirGrusom Skrevet 13. januar 2007 Skrevet 13. januar 2007 (endret) Nei, det har du ikke. Du har byttet om rekkefølgen på den siste. VolNameBuf = New String(Char(0), 255)FileSysNameBuf = New String(255, Chr(0)) Ser du? Bytt om rekkefølgen i konstruktoren i den siste linja. Fort gjort å gå glipp av Endret 13. januar 2007 av GeirGrusom
Wubbable Skrevet 13. januar 2007 Forfatter Skrevet 13. januar 2007 (endret) Får fortsatt feil.. Last ned solutionen, og test selv Takk på forhånd hvis du klarer det HDDserial.zip Endret 13. januar 2007 av Vigilant
GeirGrusom Skrevet 13. januar 2007 Skrevet 13. januar 2007 Det var en del feil i koden, spesielt deklarasjonen av GetVolumeInformation. Som en generell regel, så betyr "lp" foran et parameter til en unmanaged funksjon, at det er en peker, da skal ByVal byttes ut med ByRef. Og størrelse på integer datatypene er anderledes i VB.NET: Integer er 32 bit, Long er 64 bit, ig VB6 er Integer 16 bit, og Long 32 bit. $ bak funksjonene Mid, Right, Left osv, er ikke nødvendig, dette er noe som henger igjen fra QuickBasic, og er ikke egentlig lenger en del av syntaksen ($%&) Len([string]) skal være [string].Length men Len fungerer det også. Nå er det i orden.
Wubbable Skrevet 13. januar 2007 Forfatter Skrevet 13. januar 2007 Takker så mye Forstod litt av det du sa, men ikke alt, siden jeg fant denne koden på et eller annet forum, og selve koden var tydeligvis for VB6... Men nå fungerer den, så tusen takk
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå