vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevAniGif - als kostenlose Vollversion auf unserer vb@rchiv CD Vol.5  
 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
Re: Text aus TextBox ausführen 
Autor: Manfred X
Datum: 04.01.10 12:08

Hallo!

Also ich mache das - etwas umständlich, aber sicher - in folgenden Schritten:

1. Der User gibt seinen Code ein

2. Dieser Code wird in einen klammernden Code eingefügt, der aus dem
ganzen ein separat ausführbares Programm (incl. Datenleser und
Ergebnisspeicherung) macht.

3. Der komplettierte Programm-Code wird in einer Datei gespeichert,
per System.Codedom.Compiler übersetzt und ausgeführt.
Die zur Ausführung benötigten Daten stehen in einer serialisierbaren Klasse, die
ebenfalls gespeichert wird. (Damit ist alles auch eindeutig dokumentiert)
Das übergeordnete Programm wartet, bis der gestartete Prozess beendet ist.

4. Die Ergebnisse des Programmlaufs stehen dann in einer Datei (=serialisierbare
Klasse) und können von meinem "Stamm-Programm" eingelesen (deserialisiert) werden.
(Damit sind auch die Ergebnisse dokumentiert)

(Der folgende Code ist keine fertige Routine, sondern es handelt sich
nur um die Abschnitte, die sich auf den CodeDom beziehen.)

Imports System.CodeDom.Compiler (System.Dll)


        Dim cdp As CodeDomProvider
        cdp = New VBCodeProvider()
 
        ' Konfigurieren des Compilers.
        Dim cpParameters As CompilerParameters = _
        New CompilerParameters()
        Dim p As String = My.Application.Info.DirectoryPath
        p += "\"
        With cpParameters
            .GenerateExecutable = True
            .GenerateInMemory = False
            .OutputAssembly = p + cApplicationName
            .MainClass = cMainClassName
            .IncludeDebugInformation = False
            .CompilerOptions = "/optimize+"
 
            ' Verfügbare Assemblies hinzufügen.
            Dim asm As [Assembly]
            For Each asm In AppDomain.CurrentDomain.GetAssemblies()
                .ReferencedAssemblies.Add(asm.Location)
            Next asm
        End With
 
 
       'Kompilieren des Codes (im String: strCode) 
       Dim cr As CompilerResults = _
            cdp.CompileAssemblyFromSource( _
            cpParameters, strCode)
 
       If cr.Errors.Count = 0 Then
 
          'erstellte Anwendung starten
          Dim psi As ProcessStartInfo = _
          New ProcessStartInfo(p + cApplicationName)
          'Die Konsole soll nicht geöffnet werden
          psi.WindowStyle = ProcessWindowStyle.Hidden
 
          If Process.Start(psi) Is Nothing Then
             MessageBox.Show("Prozess kann nicht gestartet werden", ...")
      End If
Nicht besonders professionell ...
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Text aus TextBox ausführen1.633VB.NET200503.01.10 11:15
Re: Text aus TextBox ausführen1.004ModeratorDaveS03.01.10 12:23
Re: Text aus TextBox ausführen983Manfred X04.01.10 03:41
Re: Text aus TextBox ausführen926VB.NET200504.01.10 10:27
Re: Text aus TextBox ausführen992Manfred X04.01.10 12:08
Re: Text aus TextBox ausführen949ModeratorDaveS04.01.10 13:18
Re: Text aus TextBox ausführen900VB.NET200504.01.10 17:10

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