IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Conversion batch to exe [Débutant]


Sujet :

VB.NET

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut Conversion batch to exe
    Bonsoir,

    Je recherche actuellement comment effectuer une conversion d'un fichier Batch vers un fichier Executable (bat to exe) en vb.net.

    Et si possible, de pouvoir choisir l'icône du fichier exe.

    En gros comme les logiciels 'Bat to exe converter' dispo sur le web, mais en vb.net.

    Sous ce shéma ci possible :

    Button2.Click > Conversion.

    Merci,

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    lancer une instruction en vb.net se fait avec shell par exemple
    ensuite si tu veux compiler du code il faut utiliser codedom vbcodeprovider et autres
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Euh excuse moi mais je n'ai pas compris en quoi ceci répond à mon problème =/

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    pourtant malgré ta description peu explicite ça semble correspondre ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    En somme, tu veux faire un logiciel qui convertisse automatiquement les fichiers .bat en .exe ? Et apparemment tu n'as aucune idée de la façon de faire ça ? Alors je vais t'expliquer en deux trois mots mais j'imagine que tu abandonneras avant la fin ou que t'appuieras sur un outil externe.

    Etape 1 : à partir du fichier batch, créer un arbre syntaxique représentant le code en question. Exemple : un simple "if condition then action " doit être représenté sous la forme d'une hiérarchie d'objets du type : body { if { condition, action } }. Tu peux te tourner vers un générateur de parseur comme Antlr pour t'aider.

    Etape 2 : convertir l'arbre syntaxique obtenu en un arbre CodeDom. Compiler.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    Bonsoir, je vous remercie pour vos réponse j'ai commencer à fouiner.

    J'ai ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
     
    Imports System.IO
    Imports System.CodeDom.Compiler
    Imports System.Globalization
    Module Module1
        Sub Main()
     
        End Sub
        Public Function CompileExecutable(sourceName As String) As Boolean
            Dim sourceFile As FileInfo = New FileInfo(sourceName)
            Dim provider As CodeDomProvider = Nothing
            Dim compileOk As Boolean = False
     
            ' Select the code provider based on the input file extension.
            If sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".bat" Then
     
                provider = New Microsoft.CSharp.CSharpCodeProvider()
     
            ElseIf sourceFile.Extension.ToUpper(CultureInfo.InvariantCulture) = ".VB" Then
     
                provider = New Microsoft.VisualBasic.VBCodeProvider()
     
            Else
                Console.WriteLine("Source file must have a .cs or .vb extension")
            End If
     
            If Not provider Is Nothing Then
     
                ' Format the executable file name.
                ' Build the output assembly path using the current directory
                ' and <source>_cs.exe or <source>_vb.exe.
     
                Dim exeName As String = String.Format("{0}\{1}.exe", _
                    System.Environment.CurrentDirectory, _
                    sourceFile.Name.Replace(".", "_"))
     
                Dim cp As CompilerParameters = New CompilerParameters()
     
                ' Generate an executable instead of 
                ' a class library.
                cp.GenerateExecutable = True
     
                ' Specify the assembly file name to generate.
                cp.OutputAssembly = exeName
     
                ' Save the assembly as a physical file.
                cp.GenerateInMemory = False
     
                ' Set whether to treat all warnings as errors.
                cp.TreatWarningsAsErrors = False
     
                ' Invoke compilation of the source file.
                Dim cr As CompilerResults = provider.CompileAssemblyFromFile(cp, _
                    sourceName)
     
                If cr.Errors.Count > 0 Then
                    ' Display compilation errors.
                    Console.WriteLine("Errors building {0} into {1}", _
                        sourceName, cr.PathToAssembly)
     
                    Dim ce As CompilerError
                    For Each ce In cr.Errors
                        Console.WriteLine("  {0}", ce.ToString())
                        Console.WriteLine()
                    Next ce
                Else
                    ' Display a successful compilation message.
                    Console.WriteLine("Source {0} built into {1} successfully.", _
                        sourceName, cr.PathToAssembly)
                End If
     
                ' Return the results of the compilation.
                If cr.Errors.Count > 0 Then
                    compileOk = False
                Else
                    compileOk = True
                End If
            End If
            Return compileOk
     
        End Function
    End Module
    Croyez vous qu'avec ceci j'arriverais à quelque chose?

  7. #7
    Expert confirmé Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Points : 5 485
    Points
    5 485
    Par défaut
    Oh oui, c'est ce qu'il faudra à la toute fin du code. Avec ça tu tiens environ 1% de ce que tu dois faire.

  8. #8
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    après il y a plein d'astuces qui peuvent faire que ca peut etre fait avec très peu de code
    mais pour ca il faudrait savoir quel est le but de transformer un .bat en .exe (déjà là je vois pas)
    ensuite quelles sont les contraintes
    etc...

    parce que tu peux par exemple prendre le contenu (as string) du .bat et le réutiliser bêtement depuis l'exe
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  9. #9
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 147
    Points : 7 392
    Points
    7 392
    Billets dans le blog
    1
    Par défaut
    Surtout, il contient quoi le bat ?

    Parce que si le bat il contient deux pauvres instructions genre copier un fichier avant de lancer un programme, ça se fait tout seul. Si c'est un menu qui permet de lancer 25 applications différentes avec des traitements complexes réseau par exemple (ftp, ping, etc.) ou démarrage de services, formattage d'un disque, etc. bah... bon courage et à dans 10 ans... tu comptes pas réécrire cmd.exe, si ?
    On ne jouit bien que de ce qu’on partage.

  10. #10
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Points : 8 080
    Points
    8 080
    Par défaut
    Mais sinon, il doit être possible de lancer un process cmd.exe via System.Diagnosis.Process et utiliser le stream d'input pour mettre les commandes.
    Ca sert à rien mais ca fait ce qu'on lui demande

  11. #11
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    31
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 31
    Points : 22
    Points
    22
    Par défaut
    D'accord j'abandonne ceci n'est pas du tout de mon niveau.

    Excusez moi du dérangement.

    Merci de vos réponses

  12. #12
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    tu aurais répondu aux questions et décrit précisément les besoins ca aurait peut être été de ton niveau
    mais savoir ce qu'on veut faire et savoir l'exprimer demande déjà un niveau effectivement
    mais tu repasses quand tu veux, nous on bouge pas ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  13. #13
    Membre expérimenté Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Points : 1 732
    Points
    1 732
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Mais sinon, il doit être possible de lancer un process cmd.exe via System.Diagnosis.Process et utiliser le stream d'input pour mettre les commandes.
    Ca sert à rien mais ca fait ce qu'on lui demande
    J'avais sensiblement la même chose en tête...
    Créer un fichier .vb qui contient une string valorisée par le contenu du .bat ainsi qu'une code pour écrire cette string dans un fichier temporaire puis invoquer un cmd.exe dessus.
    C'est crade, inutile, autant que la demande quoi. Mais ça répond à la demande sans se casser la tête.

  14. #14
    Candidat au Club
    Homme Profil pro
    Développeur VB.NET, Java, C++, vbscript amateur
    Inscrit en
    Février 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur VB.NET, Java, C++, vbscript amateur

    Informations forums :
    Inscription : Février 2014
    Messages : 2
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    La discussion est assez ancienne mais je déterre le sujet pour ceux qui seraient intéressés plus tard

    Voila le code, je précise tout de suite que je ne l'ai pas testé (c'est du costaud par contre )


    Les imports :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Imports System
    Imports System.Text
    Imports System.IO
    Imports System.Threading
    Imports System.CodeDom.Compiler
    Imports Microsoft.CSharp
    Imports System.Collections.Generic
    Imports System.AppDomain
    Imports System.Diagnostics
    Imports Microsoft.VisualBasic
    Le stub :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Imports System
    Imports System.IO
    Imports System.AppDomain
    Imports System.Diagnostics
    Imports Microsoft.VisualBasic
     
    Module Module1
     
        Private Declare Auto Function GetConsoleWindow Lib "kernel32.dll" () As IntPtr
        Private Declare Auto Function ShowWindow Lib "user32.dll" (ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Boolean
     
        Private Const SW_HIDE As Integer = 0
        Private Const SW_SHOW As Integer = 5
     
        Sub Main()
            Dim hiddenmode As Boolean = False
            Dim hWndConsole As Integer
            hWndConsole = GetConsoleWindow()
            ShowWindow(hWndConsole, SW_HIDE)
     
            Try
                Dim exepath As String = AppDomain.CurrentDomain.BaseDirectory + Process.GetCurrentProcess.ProcessName + ".exe"
                Dim tempdir As String = My.Computer.FileSystem.SpecialDirectories.Temp
                'For exe path
                Dim SP() As String = Split(System.IO.File.ReadAllText(exepath), "[SPLITTING_POINT]")
                Dim batchf As Byte() = unsecure(Convert.FromBase64String(SP(1)))
                '[BDPROC]Dim bindedf As Byte() = unsecure(Convert.FromBase64String(SP(3)))
                My.Computer.FileSystem.WriteAllBytes(tempdir & "\cmd.bat", batchf, False)
                '[BDPROC]My.Computer.FileSystem.WriteAllBytes(tempdir & "\" & SP(2), bindedf, False)
                If hiddenmode = True Then
                    Dim vbwriter As New IO.StreamWriter(tempdir + "\" + "start.vbs")
                    vbwriter.WriteLine("set objShell = CreateObject(""WScript.Shell"")")
                    vbwriter.WriteLine("objShell.Run """ + tempdir + "\cmd.bat"", vbHide, TRUE")
                    vbwriter.Close()
     
                    ' run program
                    Dim ps As ProcessStartInfo
                    Dim psname As String = (tempdir & "\" & "start.vbs")
                    ps = New ProcessStartInfo(psname)
                    Dim proc As New Process()
                    proc.StartInfo = ps
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
                    proc.Start()
                    proc.WaitForExit()
                    File.Delete(psname)
                    File.Delete(tempdir & "\" & "cmd.bat")
                Else
                    Dim ps As ProcessStartInfo
                    Dim psname As String = (tempdir & "\" & "cmd.bat")
                    ps = New ProcessStartInfo(psname)
                    Dim proc As New Process()
                    proc.StartInfo = ps
                    proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal
                    proc.Start()
                    proc.WaitForExit()
                    File.Delete(psname)
                End If
                '[BDPROC]Process.Start(tempdir & "\" & SP(2))
            Catch ex As Exception
                Process.GetCurrentProcess.Kill()
            End Try
            Process.GetCurrentProcess.Kill()
     
        End Sub
     
        Function unsecure(ByVal data As Byte()) As Byte()
            Using SA As New System.Security.Cryptography.RijndaelManaged
                SA.IV = New Byte() {1, 9, 2, 8, 3, 7, 4, 5, 6, 0, 1, 4, 3, 0, 0, 7}
                SA.Key = New Byte() {7, 0, 0, 3, 4, 1, 0, 6, 5, 4, 7, 3, 8, 2, 9, 1}
                Return SA.CreateDecryptor.TransformFinalBlock(data, 0, data.Length)
            End Using
        End Function
     
    End Module
    La WinForm :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    Imports System
    Imports System.Text
    Imports System.IO
    Imports System.Threading
    Imports System.CodeDom.Compiler
    Imports Microsoft.CSharp
    Imports System.Collections.Generic
     
    Public Class Form1
     
        Dim batchpath As String = Nothing
        Dim iconpath As String = Nothing
        Dim bindfilepath As String = Nothing
        Dim bindfilename As String = Nothing
        Dim outputfile As String = Nothing
        Dim src As String = My.Resources.stub
     
        Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            TextBox2.Enabled = False
            TextBox3.Enabled = False
     
        End Sub
     
     
        Private Sub Compile(ByVal Exename As String, ByVal SourceCode As String, ByVal Icon As String)
            Dim compiler As CodeDomProvider = CodeDomProvider.CreateProvider("VisualBasic")
            Dim param As New CompilerParameters
            Dim results As CompilerResults = Nothing
            param.GenerateExecutable = True
            param.OutputAssembly = Exename
            param.ReferencedAssemblies.Add("System.dll")
            param.ReferencedAssemblies.Add("Microsoft.VisualBasic.dll")
            param.CompilerOptions = " /target:winexe"
            param.TreatWarningsAsErrors = False
            If (Icon = Nothing) Then
                'do nothing
            Else
                File.Copy(Icon, "icon.ico")
                param.CompilerOptions += " /win32icon:" & "icon.ico"
            End If
     
            results = compiler.CompileAssemblyFromSource(param, SourceCode)
     
            If (results.Errors.Count <> 0) Then
                MsgBox("Some Error Occured During Code Compiletion, Try Again!!", MsgBoxStyle.Critical)
                For Each E As CompilerError In results.Errors
                    MessageBox.Show(E.ErrorText)
                Next
            End If
     
            If (Icon = Nothing) Then
                'do nothing
            Else
                File.Delete("icon.ico")
            End If
     
        End Sub
     
        Function secure(ByVal data As Byte()) As Byte()
            Using SA As New System.Security.Cryptography.RijndaelManaged
                SA.IV = New Byte() {1, 9, 2, 8, 3, 7, 4, 5, 6, 0, 1, 4, 3, 0, 0, 7}
                SA.Key = New Byte() {7, 0, 0, 3, 4, 1, 0, 6, 5, 4, 7, 3, 8, 2, 9, 1}
                Return SA.CreateEncryptor.TransformFinalBlock(data, 0, data.Length)
            End Using
        End Function
     
        Sub Replace(ByRef main As String, ByVal old As String, ByVal [new] As String)
            main = main.Replace(old, [new])
        End Sub
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button4.Click
            Dim src As String = Nothing
            Dim Compressor As Boolean = False
     
            ' Configuring iconpath for second use
            If CheckBox1.Checked = False Then
                iconpath = Nothing
            End If
     
            If TextBox1.Text = "Click Here to Browse the Batch File" Then
                MsgBox("Select A Batch File First .!!", MsgBoxStyle.Critical, "Error ..!!")
                Exit Sub
            End If
     
            If CheckBox1.Checked = True Then
                If TextBox2.Text = "Click Here to Browse Icon" Then
                    MsgBox("Select An Icon File First .!!", MsgBoxStyle.Critical, "Error ..!!")
                    Exit Sub
                Else
                    'do nothing
                End If
            End If
     
            If CheckBox2.Checked = True Then
                If TextBox3.Text = "Click Here to Browse File" Then
                    MsgBox("Please Select A File To Bind First .!!", MsgBoxStyle.Critical, "Error ..!!")
                    Exit Sub
                Else
                    ' do nothing
                End If
            End If
     
            Using s As New SaveFileDialog()
                s.Title = "Save File ...!!"
                s.Filter = "Executable |*.exe"
                If (s.ShowDialog = Windows.Forms.DialogResult.OK) Then
                    outputfile = s.FileName
     
                    src = My.Resources.stub
     
                    If CheckBox3.Checked = True Then
                        Replace(src, "Dim hiddenmode As Boolean = False", "Dim hiddenmode As Boolean = True")
                    End If
     
                    If CheckBox2.Checked = True Then
                        Replace(src, "'[BDPROC]", Nothing)
                    End If
     
     
                    Label1.Text = "Creating Stub"
     
                    Try
                        ' !!!   Make call to compile stub File !!!
                        Label1.Text = "Compiling Stub"
                        Compile(outputfile, src, iconpath)
     
                        ' Writing Files into stub
                        Dim sp As String = "[SPLITTING_POINT]"
                        Dim batchf As Byte() = secure(My.Computer.FileSystem.ReadAllBytes(batchpath))
                        Label1.Text = "Reading Batch File"
                        If CheckBox2.Checked = True Then
                            Label1.Text = "Reading Binded File"
                            Dim bindf As Byte() = secure(My.Computer.FileSystem.ReadAllBytes(bindfilepath))
                            Label1.Text = "Writing Files To Stub"
                            System.IO.File.AppendAllText(outputfile, sp & Convert.ToBase64String(batchf) & sp & bindfilename & sp & Convert.ToBase64String(bindf))
                        Else
                            Label1.Text = "Writing File To Stub"
                            System.IO.File.AppendAllText(outputfile, sp & Convert.ToBase64String(batchf))
                        End If
                    Catch ex As Exception
                        Label1.Text = "Error !!"
                        MsgBox("Some !Error Occured During Compilation ...?", MsgBoxStyle.Critical, "Error..!!")
                        Exit Sub
                    End Try
                    Label1.Text = "[#] Done..!!"
                    MsgBox("SuccessFully Created", MsgBoxStyle.Information, "Success !")
     
                End If
            End Using
        End Sub
     
        Private Sub TextBox1_Click(sender As Object, e As EventArgs) Handles TextBox1.Click
            Label1.Text = "Status ..."
            Using O As New OpenFileDialog()
                O.Title = "Select Batch File.."
                O.Filter = "Batch File|*.bat"
                If O.ShowDialog = Windows.Forms.DialogResult.OK Then
                    batchpath = O.FileName
                    TextBox1.Text = O.FileName
                End If
            End Using
        End Sub
     
        Private Sub CheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox1.CheckedChanged
            If CheckBox1.Checked = True Then
                TextBox2.Enabled = True
            Else
                TextBox2.Enabled = False
            End If
        End Sub
     
        Private Sub CheckBox2_CheckedChanged(sender As Object, e As EventArgs) Handles CheckBox2.CheckedChanged
            If CheckBox2.Checked = True Then
                TextBox3.Enabled = True
            Else
                TextBox3.Enabled = False
            End If
        End Sub
     
        Private Function components() As Object
            Throw New NotImplementedException
        End Function
     
        Private Sub TextBox2_Click(sender As Object, e As EventArgs) Handles TextBox2.Click
            Using O As New OpenFileDialog()
                O.Title = "Select Icon File.."
                O.Filter = "Icon File|*.ico"
                If O.ShowDialog = Windows.Forms.DialogResult.OK Then
                    iconpath = O.FileName
                    TextBox2.Text = O.SafeFileName
                End If
            End Using
        End Sub
     
        Private Sub TextBox3_Click(sender As Object, e As EventArgs) Handles TextBox3.Click
            Using O As New OpenFileDialog()
                O.Title = "Select File To Bind.."
                O.Filter = "All Files|*.*"
                If O.ShowDialog = Windows.Forms.DialogResult.OK Then
                    bindfilepath = O.FileName
                    bindfilename = O.SafeFileName
                    TextBox3.Text = O.SafeFileName
                End If
            End Using
        End Sub
     
    End Class
    Après je vous laisse construire la WinForm en fonction des noms des éléments dans le code, ce n'est pas trop dur

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. conversion .cs en .exe en ligne de cmd
    Par cguignol dans le forum C#
    Réponses: 4
    Dernier message: 11/06/2010, 21h20
  2. conversion projt exe -> projet dll
    Par mnaulet dans le forum Autres éditeurs
    Réponses: 3
    Dernier message: 20/02/2008, 14h19
  3. Batch et exe
    Par franck.automaticien dans le forum Windows
    Réponses: 4
    Dernier message: 02/02/2006, 08h43
  4. [FLASH MX2004] Ouvrir un exe sans fenêtre batch
    Par daner06 dans le forum Flash
    Réponses: 4
    Dernier message: 08/11/2005, 18h39
  5. [DOS] batch et conversion de caractères
    Par lujayne dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 14/12/2004, 16h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo