View Full Version : CERCASI SEMPLICE ISTRUZIONE VBASIC
ASKY1982
13-06-2006, 21:45
Ciao a tutti...
Mi potete aiutare??
Cerco un'istruzione visual basic che apra il porta cd...
Non rieSCO A FARLA :muro: :mc:
help :cry: :cry:
Ciao a tutti...
Mi potete aiutare??
Cerco un'istruzione visual basic che apra il porta cd...
Non rieSCO A FARLA :muro: :mc:
help :cry: :cry:
nessuno riesce a farla...
tutto è già pronto!!
----------modulo bas------------------
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
--------------------------------------
------------pulsante 1----------------
returnstring = "0&"
retvalue = mciSendString("Apri CDROM", returnstring, 127, 0)
--------------------------------------
------------pulsante 2----------------
returnstring = "0&"
retvalue = mciSendString("Chiudi CDROM", returnstring, 127, 0)
--------------------------------------
ASKY1982
14-06-2006, 10:42
grazieeee mileeee!!!!! :) :) ;)
ASKY1982
14-06-2006, 10:46
Scusami ma cosa intendi per modulo bas?? :)
ASKY1982
14-06-2006, 10:50
e poi ho provato a fare il copia incolla man non va :cry:
ASKY1982
14-06-2006, 12:42
aiutatemiiii :mc: :cry:
La parte relativa al modulo bas ... la devi inserire in un modulo BAS ...
Un modulo bas non è altro che un file in cui si può scrivere solo codice; in genere si dichiarano qui tutte le variabili globali, funzioni e sub usate in tutto il progetto ...
Copia questo codice in un modulo bas:
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
Public Sub OpenCD(driveletter As String)
Dim mssg As String * 255
Dim ReturnValue As Long
driveletter = driveletter & ":\"
ReturnValue = mciSendString("open " & driveletter & _
" Type cdaudio Alias cd", mssg, 255, 0)
ReturnValue = mciSendString("set cd door open", _
vbNullString, 0, 0)
ReturnValue = mciSendString("close cd", 0&, 0, 0)
End Sub
Nel form invece, per richiamare la sub che apre il lettore, basta usare il seguente codice (tra gli apici inserire la lettera dell' unità del lettore):
OpenCD "E"
Questo è solo uno dei tanti modi per aprire o chiudere un lettore ... in ogni caso tutti i modi usano la funzione di libreria mciSendString ... se cerchi in google trovi moltissime applicazioni di tale funzione ...
ASKY1982
14-06-2006, 17:12
grazie mille!!! :) :p
ci sono riuscitoooo
siete dei grandi..
Posso farvi un'altra domandina??? :p
Come posso fr avvenire delle azioni quando si digita una certa lettera della tastiera??
Mitzuashi
14-06-2006, 17:24
Usa gli eventi keyPress,
intercetti la lettera che e' stata digitata e richiami l'evento.
Per esempio:
Private Sub Form_KeyPress(KeyAscii As Integer)
'KeyAscii ha il codice del tasto che e' stato digitato.
'Fai un if o un case per associare l'azione al tasto da te scelto'
If (KeyAscii = vbKeyA) Then
funzione_desiderata
end if
End Sub
Ciao
ASKY1982
14-06-2006, 17:57
B
ASKY1982
14-06-2006, 17:59
Bella sono riuscito a fare anche queso:))) :p :)
ora mi manca un'ultima cosa..
Ho inserito un file ole di tipo WAVE..
però voglio che si apra solo ogni qual volta il timer finisca di contare...come posso fare??
ragazzi grazie per l'aiuto che mi state dando
Che intendi con "ho inserito un file ole di tipo wave"?
Non puoi semplicemente fare così?
In un modulo bas (quello che hai già usato) inserisci la seguente dichiarazione di funzione:
' questa dichiarazione che sfrutta la libreria Win Multimedia
Public Declare Function sndPlaySound Lib "winmm" Alias "sndPlaySoundA" _
(ByVal lpszSoundName As String, ByVal uFlags As Long) As Long
Crei un controllo Timer ed imposti la sua proprietà interval (magari un valore più grande della durata del wave altrimenti si accavalla tutto :p) ed usi il seguente codice:
Dim wave As Long
Private Sub Timer1_Timer()
wave = sndPlaySound("c:\aaa.wav", 1)
End Sub
ASKY1982
14-06-2006, 22:25
E se invece con un pulsante vorrei passare al form successivo come potrei fare??
Ehm ... ma ci hai presi per il manuale VB? :sofico: :mc:
Crei tutti i form che ti servono (Form1, Form2, Form3 ...) e per richiamarli usi il metodo Show() ... per nasconderli invece il metodo Hide()
Esempio:
Form2.Show
Form2.Hide
ASKY1982
14-06-2006, 22:38
mmmm efettivamente ne sto un pò aprofittando :p
Se hai altre domande su VB6, querami tranquillamente su msn che facciamo prima :p
ASKY1982
14-06-2006, 22:47
Usa gli eventi keyPress,
intercetti la lettera che e' stata digitata e richiami l'evento.
Per esempio:
Private Sub Form_KeyPress(KeyAscii As Integer)
'KeyAscii ha il codice del tasto che e' stato digitato.
'Fai un if o un case per associare l'azione al tasto da te scelto'
If (KeyAscii = vbKeyA) Then
funzione_desiderata
end if
End Sub
Ciao
ma come faccio a intercettare la lettera??? :mc:
ASKY1982
14-06-2006, 22:48
Se hai altre domande su VB6, querami tranquillamente su msn che facciamo prima :p
Ti ringrazio per la tua disponibilita...sei molto gentile
ma come faccio a intercettare la lettera??? :mc:
Leggendo il valore KeyAscii che contiene il codice ascii del carattere intercettato dall' evento KeyPress ...
Poi con la funzione chr() lo converti in carattere :D
ASKY1982
14-06-2006, 23:00
Leggendo il valore KeyAscii che contiene il codice ascii del carattere intercettato dall' evento KeyPress ...
Poi con la funzione chr() lo converti in carattere :D
bhooo :p
e dove lo leggo questo valore?? :p
Ma allora nn hai guardato il codice che ti ha postato Mitzuashi? :p
Vabbè, ti scrivo dell' altro codice, magari capsici meglio ...
Crea una textbox di nome Text1 ... questo è l' evento KeyPress che intercetta i tasti premuti nella textbox, infatti il carattere premuto genera l' evento e gli passa il codice ascii del carattere stesso:
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = Asc("a") Then
MsgBox ("Hai premuto " & Chr(KeyAscii)) 'ovvero "Hai premuto a"
End If
End Sub
All' interno dell' evento, il parametro KeyAscii indica il codice ascii del carattere premuto ... devi solamente usarlo, non lo leggi da nessuna parte perchè insito nella dichiarazione dell' evento.
Nel codice ti ho fatto anche l' esempio delle funzioni Asc() e Chr(); Asc converte un carattere in ascii e Chr converte l' ascii nel carattere.
ASKY1982
15-06-2006, 11:08
Ok ho capito... :D
sono riuscito a realizzare il tuo esempio... :p
Però vorrei generare un evento nel momento in cui digito una lettera ma senza scrivere in una textbox... :mc:
ASKY1982
15-06-2006, 17:25
MYNOS79 DOVE SEI??? :p :p
Eccomi ...
Cioè vuoi intercettare un tasto premuto all' interno della tua applicazione (ovvero entro i limiti del form)? oppure un qualsiasi tasto premuto in generale in windows (tipo KeyLogger)?
Nel primo caso basta che usi l' evento KeyPress del Form ... nel secondo invece devi usare della api di windows, non ricordo quale ma la cosa è fattibile; devo spulciare tra i programmini che facevo in vb6 tanti anni fa.
ASKY1982
16-06-2006, 11:25
Ma che cosa sono le api di windows??Dove posso trovarle :p :D
comunque vorrei fare il tuo secondo caso con un keylogger o altro :)
Mitzuashi
17-06-2006, 12:22
Ciao ASKY1982, vediamo se riesco a spiegartelo moto semplicemente.
Le API ( Application Program Interface) sono appunto delle interfaccie messe a disposizione per evitare di dover scrivere tutte le funzionalita' che ti possono servire per un programma.
Per esempio "Declare Sub GetCursorPos Lib "User32" (ByRef lpPoint As POINTAPI)" e' l'API tramite il quale puoi ricavare la posizione del cursore.
Ovviamente spiegare esattamente cosa solo le API ma soprattutto come si usano, non credo sia cosa che si puo' fare in un forum, soprattutto come si usano.
Ti consiglio di cercare in Internet API e leggerti qualcosina, documentati con libri e poi, se avrai ancora problemi posta cosa non ti e' chiaro e troverai sicuramente qualcuno disposto a spiegartelo, magari anche con esempi.
Non so se ti sono stato utile, pero' a me personalmente risulta molto difficile spiegare esattamente come si devono intendere le API, magari mynos79 e' piu' bravo di me (sicuramente) nella spiegazione.
ASKY1982
17-06-2006, 16:15
grazie Mitzuashi pr l'aiutooo
gentilissimo :) :)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.