lordlappy Skrevet 11. oktober 2006 Rapporter Del Skrevet 11. oktober 2006 (endret) hei jeg er ny på visual basic 2005. lurte på om noen vet hvordan koden er for å åpne/lukke cdromen er ikke ute etter å legge den ut på en annen sin pc slik at den går ut og inn hele tiden men at jeg kan trykke på åpne på dette programmet og cdromen åpner seg og når jeg trykker lukk så lukker den seg. eventuelt en side som forteller om hva alle koder er til o.s.v Endret 12. oktober 2006 av lordlappy Lenke til kommentar
Gjakmarrja Skrevet 11. oktober 2006 Rapporter Del Skrevet 11. oktober 2006 (endret) Bruk MCI sendstring. Noe sånt i VB.NET 2005 (ikke testet): Public Class Form1 Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click mciSendString("Set CDAudio Door Open Wait", _ 0&, 0&, 0&) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click mciSendString("Set CDAudio Door Closed Wait", _ 0&, 0&, 0&) End Sub End Class Endret 11. oktober 2006 av chills Lenke til kommentar
lordlappy Skrevet 12. oktober 2006 Forfatter Rapporter Del Skrevet 12. oktober 2006 (endret) A call to PInvoke function 'WindowsApplication2!WindowsApplication2.Form1::mciSendString' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature. denne feilmeldingen kom opp på denne coden: mciSendString("Set CDAudio Door Closed Wait", _ 0&, 0&, 0&) Endret 12. oktober 2006 av lordlappy Lenke til kommentar
aadnk Skrevet 12. oktober 2006 Rapporter Del Skrevet 12. oktober 2006 (endret) I VB .NET er Long (32-bit) kalt Integer, derfor må deklarasjonen av API-et endres: Public Class Form1 Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click mciSendString("Set CDAudio Door Open Wait", _ 0&, 0&, 0&) End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click mciSendString("Set CDAudio Door Closed Wait", _ 0&, 0&, 0&) End Sub End Class Nå vet jeg ikke sikkert om koden fungerer, da jeg ikke har CD-/DVD-ROM på denne maskinen, men feilmeldingen er i det minste borte. Endret 12. oktober 2006 av aadnk Lenke til kommentar
lordlappy Skrevet 12. oktober 2006 Forfatter Rapporter Del Skrevet 12. oktober 2006 hmm jah feilmeldinga er borte men cd romen går ikke ut eller inn noen som har noen andre forslag så bare kom med dem. takker for alle forslag Lenke til kommentar
aadnk Skrevet 12. oktober 2006 Rapporter Del Skrevet 12. oktober 2006 (endret) Hm, jeg satte i en CD-ROM, men koden ville fremdeles ikke fungere. Etter litt om og men, fant jeg ut at den virtuelle DVD-ROMen var satt til default, og at en derfor måtte spesifisere diskbokstaven til enheten jeg satte inn: Public Class Form1 Private Declare Function mciSendString Lib "winmm.dll" Alias "mciSendStringA" (ByVal lpstrCommand As String, _ ByVal lpstrReturnString As String, ByVal uReturnLength As Integer, ByVal hwndCallback As Integer) As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Bytt ut bokstavnavn med enheten til din CD-ROM SetDoorState("g:\", "open") End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click ' Gjør likeledes her SetDoorState("g:\", "closed") End Sub Public Sub SetDoorState(ByVal Device As String, ByVal newState As String) ' Åpne den angitte enhet som "cd1" mciSendString("open " & Device & " type cdaudio alias cd1", 0&, 0, 0) ' Sett dørstatus mciSendString("set cd1 door " & newState & " wait", 0&, 0, 0) ' Rydd opp mciSendString("close cd1", 0&, 0, 0) End Sub End Class Endret 12. oktober 2006 av aadnk Lenke til kommentar
lordlappy Skrevet 12. oktober 2006 Forfatter Rapporter Del Skrevet 12. oktober 2006 den fungerte fint takk skal du ha for hjelpen Lenke til kommentar
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å