Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: VB6: CD-aseman luukun avaus

Sivun loppuun

Antti Laaksonen [13.01.2002 18:23:56]

#

WinApista löytyvä mciSendString on siksi monipuolinen komento, että sillä onnistuu lähes kaikki äänentoistoon liittyvät asiat. Yksi eksoottisimmista toiminnoista lienee CD-aseman luukun avaus, jolle löytyy luultavasti eniten käyttöä pilailuohjelmissa yms.

Homma hoituu yksinkertaisesti siten, että mciSendString-funktiolle lähetetään viesti "Set CDAudio Door Open" vakioasetuksilla. Mitään muuta ei tarvita, ja siitä syystä esimerkkikoodikin on todella lyhyt. Edes formia ei tarvita, joten sen voi poistaa ja tilalle laittaa moduulin.

Public 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

Sub Main()
    Dim X As Long
    X = mciSendString("Set CDAudio Door Open", "", 0, 0)
End Sub

Spoq [10.04.2002 20:33:14]

#

Toimii! :)

AHaa [02.04.2003 15:42:00]

#

Ja kiinnihän tuon saa kun laittaa viestiksi "CDAudio Door Closed" Ihan kiva homma!

Monkkats [20.09.2003 15:52:41]

#

Ihan kiva :)

killerfox [18.01.2004 19:33:53]

#

Vois kertoa sitten vielä mitä äänentoistoon liittyviä asiota sillä voi tehdä.

hunajavohveli [13.02.2004 15:59:02]

#

Compile error:

Constants, fixed-length strings, arrays, and Declare statements not allowed as Public members of object modules.

Noin sanoo, jos pistää formiin. Jos pistää moduuliin, ei tapahdu mitään. Joko en osaa jotain juttua, tai sitten tuo vaatii VB kutosen.

Tiha [13.03.2004 00:26:55]

#

Formiin esim näin:

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 Form_Load()
  Dim X As Long
   X = mciSendString("Set CDAudio Door Open", "", 0, 0)
End Sub

apocalypse [14.03.2004 16:30:03]

#

Ei toi kyl formissa toimi tollee?

hunajavohveli [21.04.2004 14:51:08]

#

No tuo Tihan koodi ei sentään valita virheestä, mutta ei kyllä tapahdukaan mitään.

Edit: Kokeilin pistää moduuliinkin tuon funktion määrittelyn, muttei siltikään toimi. Näin äkkiseltään keksin kaksi mahdollista syytä: VB5, tai WinXP.

Edit: Nyt on VB6, muttei siltikään toimi. :(

Nocando [30.11.2004 09:46:21]

#

Entä kuinka avataan tietty asema jos niitä on useampi? Monissa koneissahan on esimerkiksi kirjoittava- ja lukeva CD-asema.

Submin [14.12.2004 16:02:57]

#

Nocando: kaverilla ainaki sekos kone vähä ku oli 2 asemaa 8)

Juice [27.03.2005 00:36:35]

#

Näin jos on monta asemaa:

mciSendString("Set CDAudio!ASEMANKIRJAIN Door Open", "", 0, 0)
'eli esim.
mciSendString("Set CDAudio!E Door Open", "", 0, 0)

Gary534 [29.05.2005 13:39:31]

#

Tää Toimii tosi hyvin itse asiassa tarvitsinkin juuri tätä koodia uuteen ohjelmaani.

php mies [04.10.2005 22:51:31]

#

Ku sulla on formi auki ni kaksoisklikkaat sitä siihen aukee se mihin voit kirjottaa koodis pyyhi kaikki muu pois paitsi "Public Class Form1" ja "End Class" tekstit.

"Ohjeita tyhmälle tyhmemmältä :)"

leonarven [23.09.2006 21:14:28]

#

Mulla toi ei toimi :( . Tulee ilmoitus:

Complite error:

Constats, fixed-lenght strings, arrays, user-defined types and Declare statments not allowed as Public memers of object modules

Vike91 [10.11.2006 08:13:32]

#

Jos laittaa:

Public 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

Sub Main()
    Dim X As Long
do
X = mciSendString("Set CDAudio Door Open", "", 0, 0)
    x = mciSendString("Set CDAudio Door Closed", "", 0, 0)
loop
End Sub

Niin varmana on kivaa! ;)

moptim [26.12.2006 08:30:04]

#

Minulla pelkästään aukeaa. "Set CDAudio Door Closed" ei wörki.

fouli [10.03.2007 14:31:03]

#

laittakaa toi loppu tällee tonne subii:

For b = 1 To 50
Dim X As Long
X = mciSendString("Set CDAudio Door Open", "", 0, 0)
X = mciSendString("Set CDAudio Door Closed", "", 0, 0)
Next b

NIIN ON VARMANA TODELLA KIVAA :D

Sagetheboss [21.04.2007 19:06:36]

#

Onnistuuko sama mitenkään qbasicilla?

gamehouse [27.06.2007 09:49:34]

#

ei minun tietääkseni...

moptim [18.09.2007 19:21:12]

#

Sagetheboss, ei kannata ees kokeilla. Pitäis käyttää vintouvsin funktioita, missä on kvikpasikilla aivan törkeä homma (jos nyt ees onnas). Suosittelen että unohdat.

Sagetheboss [23.09.2007 16:36:15]

#

Kokeilimpa kuitenkin. Ei onnistunut ja työmäärä on kyllä hirveä.

Kebab [14.05.2008 13:37:58]

#

Yksinkertainen ohjelma mutta varma viihdykki

JAMSUO93 [07.10.2008 23:24:22]

#

Aika kova. Kyllä naamat venähtää kun luukku hilaa edes takas auki. Tekee vaan tosta loputtoman silmukan tosta avaamisesta :DDDD

Numis97 [13.02.2011 19:18:17]

#

Missä muodossa ko. systeemi pitää tallentaa? .exe ei ainakaan toiminut.

ErroR++ [03.05.2011 20:22:43]

#

Ei .NET:issä toimi Declare Function:it.
HÖ!!!

ErroR++ [04.05.2011 15:08:59]

#

TOIMII!!!!!!!!!!


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta