Oppure

Loading
11/11/09 15:27
Mikiwi93
Postato originariamente da GrG:

22-08-2007, 22:20
Il Resource Editor e' un add-in (che va installato, se guardi nel menu principale di VB dovresti vedere la voce "Add-Ins";) che permette di creare e editare un file di tipo ".res" (resources) in cui puoi mettere dati di tipo stringhe, o dati letti da files (ad esempio immagini, musica, suoni, ma anche file di testo ordinari)
Quando contruisci l'eseguibilie, il file .res viene "incluso" nell'eseguibile stesso, per cui non c'e' bisogno di includere nella distribuzione i vari files che sono stati inseriti dentro. Nel tuo caso, ci puoi memorizzare sia i files di suoni, che quello con le domande. Un hacker ovviamente sara' capace di "estrarre" quella informazione dall'eseguibile, ma di certo non i tuoi studenti (basta che non dici come funziona, altrimenti chiedono al fratello maggiore :) )

Per esempio, supponiamo che hai inserito un suono come risorsa con identificatore 101 e il file con le tue domande con identificatore 102, il codice seguente suona il fille e ti carica nella stringa "s" il contenuto del file. Semplice no?


Option Explicit
Private Const SND_APPLICATION = &H80
Private Const SND_ALIAS = &H10000
Private Const SND_ALIAS_ID = &H110000
Private Const SND_ASYNC = &H1
Private Const SND_FILENAME = &H20000
Private Const SND_LOOP = &H8
Private Const SND_MEMORY = &H4
Private Const SND_NODEFAULT = &H2
Private Const SND_NOSTOP = &H10
Private Const SND_NOWAIT = &H2000
Private Const SND_PURGE = &H40
Private Const SND_RESOURCE = &H40004
Private Const SND_SYNC = &H0
Private Declare Function PlaySound Lib "WINMM.DLL" Alias "PlaySoundA" (ByRef Sound As Any, _
ByVal hLib As Long, ByVal lngFlag As Long) As Long

Private Sub Form_Load()

Dim b() As Byte
b = LoadResData(101, "MIDI";)
PlaySound b(0), 0, SND_MEMORY Or SND_NODEFAULT Or SND_SYNC

b = LoadResData(102, "TEXT";)
s = StrConv(b, vbUnicode)

End Sub

Quindi dentro al progetto c'è da mettere un file res contenete il file xm nominato 101 giusto?
aaa
11/11/09 17:59
GrG
no...


allora nel menu in alto in Tools vedi se c'è anche la voce Resource Editor, se non c'è lo devi abilitare.

Per abilitarlo clicca su Add-In e poi su Add-In Manager...
Ti si aprirà una finestra, cerca Microsoft Resource editor e clicca sulla casello Loaded/Unloaded e dai l'ok

poi vai in tools sarà comparsa una nuova voce, cioè resource editor ci clicchi e si aprirà una finestra... nel menù in alto scegli "Add custom resource..." Ha l'immagine tipo finestra di win98 divisa in 4, se ci posi il cursore spunterà appunto: "Add custom resource..."

Ci clicchi, e scegli il file musicale (la playsound mi pare riproduce solo wav). Quando lo aggiungi vedrai nel treeview una nuova cartella con il nome di "CUSTOM" (mi pare) e con il nuovo oggetto aggiunto (che di nome avrà 101), su quest'ultimo ci clicchi 2 volte sopra, si apre la finestra delle proprietà a Type gli dai il nome che vuoi a id gli dai l'id che vuoi (puoi anche lasciare i valori di default) e fai ok... poi salvi dal menu in alto il file .res

a questo punto usi quel codice scrivedo b = LoadResData(tuo_id, "tuo_nome";)

in b sarà caricato il file, quindi lo puoi (volendo) anche scrivere (con la Open) in una cartella temporanea e riprodurlo
aaa
12/11/09 17:58
Mikiwi93
Postato originariamente da GrG:

no...


allora nel menu in alto in Tools vedi se c'è anche la voce Resource Editor, se non c'è lo devi abilitare.

Per abilitarlo clicca su Add-In e poi su Add-In Manager...
Ti si aprirà una finestra, cerca Microsoft Resource editor e clicca sulla casello Loaded/Unloaded e dai l'ok

poi vai in tools sarà comparsa una nuova voce, cioè resource editor ci clicchi e si aprirà una finestra... nel menù in alto scegli "Add custom resource..." Ha l'immagine tipo finestra di win98 divisa in 4, se ci posi il cursore spunterà appunto: "Add custom resource..."

Ci clicchi, e scegli il file musicale (la playsound mi pare riproduce solo wav). Quando lo aggiungi vedrai nel treeview una nuova cartella con il nome di "CUSTOM" (mi pare) e con il nuovo oggetto aggiunto (che di nome avrà 101), su quest'ultimo ci clicchi 2 volte sopra, si apre la finestra delle proprietà a Type gli dai il nome che vuoi a id gli dai l'id che vuoi (puoi anche lasciare i valori di default) e fai ok... poi salvi dal menu in alto il file .res

a questo punto usi quel codice scrivedo b = LoadResData(tuo_id, "tuo_nome";)

in b sarà caricato il file, quindi lo puoi (volendo) anche scrivere (con la Open) in una cartella temporanea e riprodurlo

ma così in questo modi si èuò integrare file .exe??
aaa
12/11/09 18:12
GrG
Si puoi integrare un qualunque file
aaa
12/11/09 18:19
Mikiwi93
Postato originariamente da GrG:

Si puoi integrare un qualunque file

comunque provando a fare b = LoadResData(101, "PROGRAMMA";) non parte,e poi ho natato che ora mi genrea i numeri dopo la virgola,come posso fare in modo che generi solo i numeri prima della virgola?
aaa
12/11/09 19:12
GrG
allora, per farmi capire, devi spiegarti meglio... dicendomi cosa vuoi fare, cosa hai fatto e che centrano i numeri decimali O.o
aaa
12/11/09 19:32
Mikiwi93
Postato originariamente da GrG:

allora, per farmi capire, devi spiegarti meglio... dicendomi cosa vuoi fare, cosa hai fatto e che centrano i numeri decimali O.o

Ho fatto questo:
 a = Label5.Caption
   b = Val(a)
   c = b * 3 / 7 * 8 + 2 * 2 / 4 * 22
   d = c / 2 / 5 * 4
    If Text1.Text = d Then
       B = LoadResData(101, "PROGRAMMA")
        Else
        Label6.Caption = "Seriale sbagliato"
        End If

Fino ad un pò di tempo fà accettava e genrava 2034,ora vuole e genera alcuni numeri dopo la virgola.....voglio far partire un file .exe grande 321 kb
aaa
12/11/09 20:28
GrG
ti puoi spiegare un pò meglio?

cioè che file di risorse hai messo? (una canzone, un exe...) e per quale motivo?

comunque il problema non è per il file di risorse (intendo quello dei numeri)... praticamente preso un numero effettui varie operazioni, senza però usare variabili... cioè, visto che usi numeri puri e nessuna incognita il "numero decimale" o comunque diverso da quello che dovrebbe venire dipende solo da ciò che scrivi nella label5.caption....
aaa