Liste/Catalogue automatique des jeux Wii- Forum

Index du forum > Wii > Les questions sur la Wii

Topic: Liste/Catalogue automatique des jeux Wii

par Déconnecté Newbies123 le 06/03/10 à 13:32:46 (il y a 14 ans 7 semaines 4 jours 23 heures 10 minutes) 18 réponses, vu 2727 fois

Prog. pour faire auto. une liste des jeux Wii sous Win (ISO/RAR)

Bonjour,
Je n'ai pas trouvé de programme Windows pour ce genre d'opération.
Je voudrais trouver de l'aide pour effectuer un programme sous Windows qui me permettra de générer une liste
de mes jeux Wii backup (ISO & RAR) qui se trouve sur mon DD.
Ne connaissant pas la programmation sous Windows (je suis encore un ancien du DOS avec de l'assembler et
du C/C++), j'ai commencé en VBS.
1) Le programme recherche dans un répertoire demandé les fichiers ISO et RAR.
2) Lorsqu'un fichier ISO est trouvé, il lit les 6 premiers caractères pour avoir le code du jeu.
3) Lorsqu'un fichier RAR est trouvé, il extrait le RAR partiellement et idem que le 2) lit les 6 caractères.
4) J'écris dans un CSV le nom du fichier, le format (ISO/RAR), la taille du fichier, le code du jeu Wii.

Par la suite, j'aimerai ajouter dans ce CSV :
1) Le nom officiel du jeu (FR ou ENG si pas de FR)
2) Les langues du jeu
3) L'image du jeu (cover) FR ou ENG si pas en FR
4) Le descriptif
5) ...
Ces infos, je pense qu'il est possible de les prendre de certains sites comme wiitdb mais
je ne sais pas comment prendre directement la bonne info.
Je sais lire la page Web du jeu en script mais alors il faut décoder la page pour trouver les infos.
Si le site change de design, il faudra alors tout refaire. Cela je ne le souhaite pas.
Je suppose qu'il y a moyen de prendre les infos du site en faisant les bonnes requêtes comme
le ferai USB Loader GX.

Code :

Const BIF_EDITBOX = &H10
Const BIF_NONEWFOLDER = &H0200
Const BIF_RETURNONLYFSDIRS = &H1
Const BIF_NEWDIALOGSTYLE = &H40
Const ForReading = 1
Const TristateFalse = 0
StrRelativeTempPath="MyUnrar"
StrTempPath=""

Set objShell = CreateObject("Shell.Application")
Set wshShell = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")

'**Browse For Folder To Be Processed
strPrompt = "Please select the folder to process."
intOptions = BIF_NEWDIALOGSTYLE + BIF_RETURNONLYFSDIRS + BIF_NONEWFOLDER + BIF_EDITBOX
strTargetPath = wshShell.SpecialFolders("MyComputer")
'strTargetPath = "C:\Mes fichiers\IDM\Wii\_new"
strFolderPath = Browse4Folder(strPrompt, intOptions, strTargetPath)
if right(strTargetPath,1)="" then
StrTempPath=StrTargetPath & StrRelativeTempPath
else
strTempPath=strFolderPath & "" & StrRelativeTempPath
end if

Set objNewFile = objFSO.CreateTextFile(strFolderPath & "\Wiilist.csv", True)
Set objMyFolder = objFSO.GetFolder(strFolderPath)
Set objColFiles = objMyFolder.Files

objNewFile.WriteLine("File Name;Extension;File Size;Code")
For Each file In objColFiles
CurrentName=objFSO.getbasename(file.Name)
CurrentExtension=ucase(objFSO.getextensionname(file.Name))
If CurrentExtension = "ISO" Or CurrentExtension = "RAR" Then
ThisCode=CodeName(strFolderPath & "" & file.Name,CurrentExtension)
objNewFile.WriteLine(CurrentName & ";" & CurrentExtension & ";" & file.Size & ";" & ThisCode)
End If
Next
objNewFile.Close

wscript.quit

Function Browse4Folder(strPrompt, intOptions, strRoot)
Dim objFolder, objFolderItem

On Error Resume Next

Set objFolder = objShell.BrowseForFolder(0, strPrompt, intOptions, strRoot)
If (objFolder Is Nothing) Then
Wscript.Quit
End If
Set objFolderItem = objFolder.Self
Browse4Folder = objFolderItem.Path
Set objFolderItem = Nothing
Set objFolder = Nothing
End Function

Function CodeName(CurrentGame,FileType)

Select Case FileType
Case "ISO" :
CodeName=ReadCodeISO(CurrentGame)
Case "RAR" :
CodeName=ReadCodeRAR(CurrentGame)
End Select

End Function

Function KillMyUnrar

strComputer="."
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("SELECT * FROM Win32_Process WHERE Name = 'MyUnrar.exe'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

End Function

Function ReadCodeISO(CurrentGame)

Dim objFS, objFile, objTS

Set objFS = wscript.CreateObject("Scripting.FileSystemObject")
Set objFile = objFS.GetFile(CurrentGame)
Set objTS = objFile.OpenAsTextStream(ForReading, TristateFalse)
ReadCodeISO = objTS.Read(6)

End Function

Function ReadCodeRAR(CurrentGame)

Dim objLastEvent
Set fso = CreateObject("Scripting.FileSystemObject")

If fso.FolderExists(strTempPath) Then
fso.DeleteFolder strTempPath,0
End If
Set f = fso.CreateFolder(strTempPath)
NewTempPath = f.Path
if ucase(NewTempPath)<>ucase(strTempPath) then
Wscript.echo("Error Temp Path :" & NewTempPath & "-" & strTempPath)
Wscript.quit
end if

set WshShell = CreateObject("WScript.Shell")'
IntReturn=WshShell.Run("MyUnrar.EXE e -ai -kb -sm4600000000 " & Chr(34) & CurrentGame & Chr(34) & " " & Chr(34) & strTempPath & Chr(34),0,False)

ISOFileFound=0
NewCurrentGame=""
do
wscript.sleep 300

Set objFolder = fso.GetFolder(strTempPath)
Set objFiles = objFolder.Files

For Each ISOFile in objFiles
NewCurrentGame=strTempPath & "" & ISOFile.Name
If UCase(Right(NewCurrentGame,4))=".ISO" Then
KillMyUnrar
ISOFileFound=1
Exit For
End If
Next
loop until ISOFileFound

MyCode=ReadCodeISO(NewCurrentGame)
If UCase(Left(MyCode,6))= LCase(Left(MyCode,6)) Then
wscript.echo "*" & MyCode & "*"
If fso.FolderExists(strTempPath) Then
fso.DeleteFolder strTempPath,0
wscript.echo "exist2" & strTempPath
End If
wscript.sleep 300
MyCode=ReadCodeRAR(CurrentGame)
End if
' wscript.echo "*" & MyCode & "*"
wscript.sleep 200
fso.DeleteFolder strTempPath,0
ReadCodeRAR=MyCode

End Function


Ce code marche bien pour un répertoire de Wii avec plein de ISO mais pour un répertoire
plein de RAR, j'ai quelques erreurs et il bloque pas toujours au même endroit si je lance plusieurs
fois le programme avec la même sélection. ::'(::

Si quelqu'un pouvait m'aider ou éventuellement refaire le code dans un language plus approprié
avec éventuellement une interface utilisateur (GUI).
Pour info : le MyUnrar.exe, c'est juste le programme unrar.exe renommé (présent avec l'installation de Winrar)
Merci
 



Pages: 1
Messages:
^ Déconnecté lanarchyste
#1, posté le 06/03/10 à 13:41:20
Membre helper
4448 messages
Dieu des dieux
star
avatar
Pour le jeu lis directement le wiitdb qui est en xml. Tu as des méthode pour rechercher un noeud XML avec une clé spécifique, sa sera plus simple.

Sinon pas besoin de dézipper ton RAR si tu as que l'ISO à l'intérieur, tu peut lire direct le RAR pour rechercher l'ID, faut juste la recherché à un offset différent.
Choisir un Film : La meilleure solution quand on ne sait pas quel film regarder
^ Déconnecté Newbies123
#2, posté le 06/03/10 à 13:47:16
Membre
5 messages
Petit nouveau
star
Je n'ai pas trouvé cet ID dans le .RAR. Je pense qu'il est déjà compressé.
^ Déconnecté lanarchyste
#3, posté le 06/03/10 à 13:52:43
Membre helper
4448 messages
Dieu des dieux
star
avatar
Arf pas de bol...Sinon pour USB Loader GX, c'est par rapport au fichier wiitdb qu'il affiche les infos...c'est que du XML facile à lire, tu trouvera plein de tuto sur le net.

Sinon gère les exceptions et débug ton code, dis moi après ce que t'a comme erreur au niveau des répertoire RAR.
Je pense que sa doit être un soucis de processus déjà utilisé ou un fichier mal fermé.

J'avais déjà fait un programme similaire avec interface en C#, mais bon j'ai laissé le truc à l'abandon car inutile... Wii Backup Manager le fait très bien::^^::

Dernière édition le 06/03/10 à 14:04:23 par lanarchyste.
^ Déconnecté Antonito
#4, posté le 06/03/10 à 14:02:34
Rédacteur
7133 messages
Dieu des dieux
starstarstarstar
avatar
Désolé Lanarchyste, mais ton programme était très très bien : sur mon PC où WBFS Manager ne marchait pas .... ton log marchait parfaitement ! (D'ailleurs, je crois qu'il est toujours installé ! )
^ Déconnecté lanarchyste
#5, posté le 06/03/10 à 14:03:58
Membre helper
4448 messages
Dieu des dieux
star
avatar
c'était autre chose ca::^^:: Mais au début il était pas mal::p::

Dernière édition le 06/03/10 à 14:04:14 par lanarchyste.
^ Déconnecté Antonito
#6, posté le 06/03/10 à 14:09:02
Rédacteur
7133 messages
Dieu des dieux
starstarstarstar
avatar
C'était là :

http://www.wii-info.fr/forum-7836-gui-wbfs-by-lanarchyste.htm ::^^::
^ Déconnecté lanarchyste
#7, posté le 06/03/10 à 14:12:24
Membre helper
4448 messages
Dieu des dieux
star
avatar
Oui mais là ce que je parlais (et ce dont lui veut faire aussi), c'est juste un programme qui liste et affiche des infos.

Ce que tu montre c'est un programme permettant d'ajouter des jeux sur une partition WBFS.
^ Déconnecté Antonito
#8, posté le 06/03/10 à 14:24:26
Rédacteur
7133 messages
Dieu des dieux
starstarstarstar
avatar
Quote lanarchyste:
Ce que tu montre c'est un programme permettant d'ajouter des jeux sur une partition WBFS.


Oui, je sais ! Mais tu disais que tu avais fais un programme en C ... je croyais que tu parlais de celui là !

Et puis t'a éditer et rajouter "similaire" .... ::siffle::
^ Déconnecté lanarchyste
#9, posté le 06/03/10 à 14:38:08
Membre helper
4448 messages
Dieu des dieux
star
avatar
Lol je suis fourbe ::^^::
^ Déconnecté Antonito
#10, posté le 06/03/10 à 14:39:32
Rédacteur
7133 messages
Dieu des dieux
starstarstarstar
avatar
Et méchant, et rusé, et chiant .... ::xD::
^ Déconnecté Newbies123
#11, posté le 06/03/10 à 14:51:22
Membre
5 messages
Petit nouveau
star
J'ai déjà ajouté des sleep pour attendre la fin de certain processus.
Maintenant, l'erreur la plus rencontrée, c'est l'erreur de la création du répertoire temporaire.
Le message dit permission refusé:
image
Quand j'ai ce message, je ne vois pas de sous-répertoire \MyUnrar et pourtant CreateFolder ne veut
pas le créer.

Parfois, j'ai aucun code d'erreur, le répertoire MyUnrar reste vide et wscript qui tourne sans arrêter.
J'ai parfois aussi le problème, c'est que le code du jeu lu (côté RAR) est parfois vide.

Peut-être que unrar n'a pas encore eu le temps de décompresser le fichier même si le .ISO est présent.
Je kill le process unrar car je n'ai besoin que des 6ier caractères du fichier ISO extrait.
Je n'ai pas trouvé de librairie ou équivalent pour extraction de fichier RAR directement en mémoire au
lieu de disque. C'est la raison pour laquelle je passe par un répertoire temporaire \MyUnrar où j'extrais
avec unrar le fichier ISO.

Ce qui est étrange, c'est que lorsque je lance le script en prenant toujours mon répertoire RAR de mon DD,
l'erreur ou l'endroit où s'arrête le script est généralement différent.
Parfois, une erreur se produit après 3 code de jeux extrait correctement, parfois, après 50 et voir
même après 150 jeux. Mais jamais jusqu'au bout.
::'(::

Dernière édition le 06/03/10 à 14:53:33 par Newbies123.
^ Déconnecté Antonito
#12, posté le 06/03/10 à 14:57:50
Rédacteur
7133 messages
Dieu des dieux
starstarstarstar
avatar
Pour le problème de "droit", tu es sous Vista ou Seven ? Car je crois que même si tu es admin, tu n'a pas le contrôle total du PC ... il y a un mode "Super Administrateur" où la, tu as tout les droits ...
^ Déconnecté Newbies123
#13, posté le 06/03/10 à 15:20:54
Membre
5 messages
Petit nouveau
star
non, j'ai désactivé le control d'accès utilisateur (Seven 32 bits).
de toute façon, je n'ai pas toujours ce message.
Le code est complet, vous pouvez le tester en copiant le tout dans un fichier .VBS
Vous copiez le unrar.exe (qui se trouve dans votre répertoire de Winrar) et coller dans le
répertoire où vous avez créé le VBS. Renommer ensuite le unrar.exe en myunrar.exe .
Il suffit pour tester de lancer ce VBS et d'indiquer dans la fenêtre de sélection de répertoire où se
trouve vos fichiers backup Wii (RAR/ISO). (Pas la partition WBFS !!!)
Merci pour vos tests/commentaires.

Dernière édition le 06/03/10 à 15:21:16 par Newbies123.
^ Déconnecté lanarchyste
#14, posté le 06/03/10 à 15:35:56
Membre helper
4448 messages
Dieu des dieux
star
avatar
En ce qui concerne le bureau, normalement tu devrais avoir les droits...admin ou pas donc c'est pas normal.
Comment tu décompresse les fichiers RAR ? Tu le décompresse t'attends un peu et tu tue le process ? Si c'est ca c'est pas propre il te faut trouver une autre option.
As tu regarder dans les paramètres si tu pouvais extraire x taille de données ?

Si non essaye avec 7zip qui est compatible aussi avec les rar...t'aura peut etre plus d'options pour l'extraction.
^ Déconnecté Newbies123
#15, posté le 07/03/10 à 22:20:17
Membre
5 messages
Petit nouveau
star
Bon, en fait, j'ai vu qu'avec quelques tests, si j'augmente les sleep, cela marche.
Bizarre...je verrai cela plus tard si personne ne m'aide.
Je m'attaque à la partie wiitdb.xml (je n'ai jamais fais non plus).
J'ai réussi à trouver comment trouver le code du jeu Wii mais pas encore
comment exploiter les autres éléments (vbscript avec XPath)
On trouve peut d'info/exemple sur internet, les exemples sont quasi tous identique.

Si quelqu'un sait comment faire en vb script pour utiliser ce wiitdb.xml
::wtf::
^ Déconnecté Danyboyt
#16, posté le 31/03/10 à 17:04:32
Membre
1 messages
Petit nouveau
star
moi,jai une solution a ton probleme. En plus de ca, il fonctionne sous windows.

J'ai fabriqué un petit programme qui fait une liste du dossier que tu veux. Il suffit de le copier dans le dossier que tu veux la liste,et tu clic dessus,voila,ta liste est fait.

Dernière édition le 31/03/10 à 17:08:57 par Danyboyt.
^ Déconnecté lanarchyste
#17, posté le 31/03/10 à 17:08:09
Membre helper
4448 messages
Dieu des dieux
star
avatar
Une commande DOS existe pour ca, avec une redirection tu peut même stocker la liste dans un fichier.

Sinon le programme Directory List & Print est sympa :;)::
Choisir un Film : La meilleure solution quand on ne sait pas quel film regarder
^ Déconnecté Newbies123
#18, posté le 23/05/10 à 00:00:58
Membre
5 messages
Petit nouveau
star
Bonsoir,
mon programme marche correctement. Cela fait environ 1 mois que je l'utilise sans problème.
j'ai même fait une version qui crée un fichier csv et html.
le fichier html est compatible IE, Firefox, ...
l'impression du fichier html est nickel (4 jeux par page)

Pages: 1

Ajouter commentaire:
Créez un compte ou identifiez vous pour poster un commentaire.

Index du forum > Wii > Les questions sur la Wii


Pour votre téléphone, Jailbreak iPhone et Jailbreak iPad. - Hack PS3 - Hacker sa WiiU - Hacker PS Vita - Rage Comics, troll face - Retrouvez chaque jour des image drole sur internet grâce à LOLTube. - Meme Internet
262 connectés (1 membre, 261 anonymes)© 2007-2015 Attila