pcidss
Messages postés1Date d'inscriptionvendredi 14 mars 2008StatutMembreDernière intervention14 mars 2008
-
14 mars 2008 à 16:55
XelectroX
Messages postés209Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention 6 novembre 2009
-
20 nov. 2008 à 22:06
Bonjour à tous,
Je ne sais pas si je poste dans le bon forum ou si je commet une erreur, en tout cas ce n'est pas faute d'avoir cherché dans le forum sans trouver d'information. Je ne tenais pas à poster de doublon :)
Je rencontre actuellement un soucis et peut etre que l'un d'entre vous saura m'aiguiller:
J'ai réalisé un client messenger en VB et généré mon setup d'installation via NSIS.
Pour les besoins du client, il faudrait que lorsque le client est téléchargé on insère dedans une sorte de tracker.
Imaginons, si le client est téléchargé avec l'url dl.php?blabla=coincoin, j'aimerai insérer dans mon setup un fichier txt ou ini qui comprendrait "coincoin".
Alors j'ai bien une idée farfelu de faire un script en PHP auquel je spécifie un setup "clean", et le script ouvre l'archive LZMA, insère le txt et reforme le setup par le biais du script NSIS, mais d'un part c'est gore, d'autre part ca risque d'être gourmant en ressources.
Si l'un d'entre vous dispose d'une solution miracle (pour un serveur Linux), je suis preneur !
Un grand merci à l'avance pour vos lumières :D
XelectroX
Messages postés209Date d'inscriptionsamedi 11 novembre 2000StatutMembreDernière intervention 6 novembre 2009 20 nov. 2008 à 22:06
Informes-toi sur Mono et CodeDom de .NET ainsi que leurs compatibilité ;)
- Crée ton code de l'installateur dans un fichier .vb (qui ne devra pas être compiler dans le programme du générateur d'installateur) en intégrant 2 namespaces ("My.Resources" et un avec un nom du genre "Installer" ou ce que tu veux en fait), et importe Microsoft.VisualBasic, System, (System.Collections, je suis pas sûr qu'il soit obligatoire, à tester)
Pour le namespace "My.Resources", regarde en bas du post ;)
- Observe le format d'un fichier .resx
- Crée ton code permettant de le générer
- Utilise un shell avec le programme "ResGen.exe" que tu peux trouver dans .NET Framework SDK (pour générer un fichier .resources à partir de ton .resx)
- Génére l'exécutable grâce au bout de code ci-dessous
Bout de code VB.NET de CodeDom :
Dim src As String
'Lit tout ton fichier et place le contenu dans la variable src
Dim Compiler As CodeDom.Compiler.CodeDomProvider = CodeDom.Compiler.CodeDomProvider.CreateProvider("VB")
Dim Options As New CodeDom.Compiler.CompilerParameters
With Options
.GenerateExecutable = True
.OutputAssembly = txtOutput.Text
With .ReferencedAssemblies
.Add("System.dll")
End With
.GenerateInMemory = False
.CompilerOptions = "/optimize"
.TempFiles = New CodeDom.Compiler.TempFileCollection(".", True)
.MainClass = "Namespace.Main"
.EmbeddedResources.Add("Resources.resources")
End With
Dim Results As CodeDom.Compiler.CompilerResults
Dim Sources(0) As String
Sources(0) = src
Results = Compiler.CompileAssemblyFromSource(Options, Sources)
If Results.Errors.Count > 0 Then
' Display compilation errors.
MsgBox("Erreurs lors de la compilation !", MsgBoxStyle.Critical)
Dim ce As CodeDom.Compiler.CompilerError
For Each ce In Results.Errors
Debug.Print(ce.ToString())
Next ce
Else
MsgBox("Compilation terminée avec succès !", MsgBoxStyle.Information)
End If
Code du "My.Resources"
Namespace My.Resources
'Cette classe a été générée automatiquement par la classe StronglyTypedResourceBuilder
'à l'aide d'un outil, tel que ResGen ou Visual Studio.
'Pour ajouter ou supprimer un membre, modifiez votre fichier .ResX, puis réexécutez ResGen
'avec l'option /str ou régénérez votre projet VS.
'''<summary>
''' Une classe de ressource fortement typée destinée, entre autres, à la consultation des chaînes localisées.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Retourne l'instance ResourceManager mise en cache utilisée par cette classe.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Remplace la propriété CurrentUICulture du thread actuel pour toutes
''' les recherches de ressources à l'aide de cette classe de ressource fortement typée.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set(ByVal value As Global.System.Globalization.CultureInfo)
resourceCulture = value
End Set
End Property
End Module
End Namespace
En espérant t'avoir éclairé, mais je suis incertain pour l'utilisation sur Mono ...