vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Fortgeschrittene
Formular-Code zur Laufzeit übersetzen und als EXE speichern 
Autor: Manfred X
Datum: 26.12.15 09:28

Hallo!

Ein Formular kann nicht einfach "als Exe-Datei gespeichert werden".
Du kannst den Code des Formulars an den "CodeDom"-Compiler übergeben
und ihn als ein Windows.Forms-Projekt compilieren lassen.

Der Beispiel-Routine wird ein Text übergeben (ohne Sonderzeichen).
Es wird ein Programm erstellt, das ein Formular öffnet und in
einem Label auf diesem Formular den übergebenen Text anzeigt.
Public Sub CreateDemoFormProjekt(ByVal displaytext As String)
 
   Dim nl As String = Microsoft.VisualBasic.vbCrLf
   Dim c34 As String = Microsoft.VisualBasic.Chr(34)
 
   Using VB_CP As CodeDom.Compiler.CodeDomProvider = _
      New Microsoft.VisualBasic.VBCodeProvider()
 
      'Angaben für das Compilieren des Win-Forms-Projekts zusammenstellen
      Dim ComParams As New CodeDom.Compiler.CompilerParameters()
 
      With ComParams
         .GenerateExecutable = True
         'benötigte Projekt-Verweise
         .ReferencedAssemblies.Add("System.Windows.Forms.DLL")
         .ReferencedAssemblies.Add("System.Drawing.DLL")
         'Erstellte Datei
         .OutputAssembly = "C:\Daten\DemoFormProjekt.Exe"
 
         .GenerateInMemory = False
         .CompilerOptions = "/target:winexe"
         .MainClass = "xxxform"
     End With
 
     'Code-String zum Erstellen eines Projekts, das eine Form öffnet
     '(Man könnte den Code auch aus einer VB-Datei laden ... incl. Designer)
     Dim code As String = _
     "Imports System.Windows.Forms" & nl & _
     "Imports System.Drawing" & nl & _
     "Public Class xxxform" & nl & _
         "Inherits System.Windows.Forms.Form" & nl & _
         "Dim lblInfo As New Label With _ " & nl & _
         "{.Parent = Me, .Width = 300, .Height = 300} " & nl & _
         "Private Sub xxxform_Load(sender As System.Object, " & _
              "e As System.EventArgs) Handles MyBase.Load" & nl & _
             "Me.Size = New Size(350, 350)" & nl & _
             "lblInfo.text = " & c34 & displaytext & c34 & nl & _
         "End Sub" & nl & _
         "Private Sub InitializeComponent()" & nl & _
             "Me.SuspendLayout() " & nl & _
             "Me.ClientSize = New System.Drawing.Size(292, 273) " & nl & _
             "Me.Name = " & c34 & "xxxform" & c34 & nl & _
             "Me.ResumeLayout(False) " & nl & _
         "End Sub" & nl & _
      "End Class"
 
      'Code-Zeichenfolge Compilieren und EXE erstellen 
      Dim ComResults As CodeDom.Compiler.CompilerResults = _
         VB_CP.CompileAssemblyFromSource(ComParams, code)
 
      'ggf. Compiler-Fehlermeldungen anzeigen 
      Dim et As String = ""
      With ComResults
         If .Errors.Count > 0 Then
            et = "Fehler: " & nl
            For i As Integer = 0 To .Errors.Count - 1
               et &= .Errors(i).ErrorText & " (" & .Errors(i).Line.ToString & _
                 ")" & nl
            Next i
        Else
            et = "DemoFormProjekt ist erstellt worden"
        End If
     End With
 
     MessageBox.Show(et)
   End Using
End Sub
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Form2 in Form1 ändern und als exe speichern1.793vb2000725.12.15 22:18
Formular-Code zur Laufzeit übersetzen und als EXE speichern1.148Manfred X26.12.15 09:28
Re: Form2 in Form1 ändern und als exe speichern876sv0001026.12.15 10:07
Re: Form2 in Form1 ändern und als exe speichern943Manfred X26.12.15 10:10
Re: Form2 in Form1 ändern und als exe speichern950vb2000726.12.15 14:16
Re: Form2 in Form1 ändern und als exe speichern920Manfred X26.12.15 15:24

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel