1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

DOS-Befehl in Visual Basic 6.0 einbauen???

Discussion in 'Programmieren' started by joshi123, Jan 14, 2007.

Thread Status:
Not open for further replies.
  1. joshi123

    joshi123 Byte

    Hallo,

    wie kann ich oder ist es überhaupt möglich einen befehl, der in einer dos-batch-datei steht in visual-basic 6.0 einbauen???

    das heisst, ich weiss wie man eine normale selbstgeschriebene batchdatei über visual-basic ausführen kann...
    nun würde ich gerne genau dies vermeiden, also dass ich nur noch mein visual-basic-programm in einem ordner habe und nicht noch tausend andere batch-dateien.

    Gruß
    Joshi
     
  2. Angel-HRO

    Angel-HRO Megabyte

    Das geht so:

    Code:
    Option Explicit
    
    Private Declare Function OpenProcess Lib "kernel32.dll" (ByVal _
      dwAccess As Long, ByVal fInherit As Integer, ByVal hObject _
      As Long) As Long
    
    Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
      hHandle As Long, ByVal dwMilliseconds As Long) As Long
    
    Private Declare Function CloseHandle Lib "kernel32" (ByVal _
      hObject As Long) As Long
    
    Function LaunchApp32(ByVal MYAppname As String, Optional ByVal Unsichtbar As Boolean = False) As Integer
      On Error Resume Next
      Const SYNCHRONIZE = 1048576
      Const INFINITE = -1&
      Dim ProcessID&
      Dim ProcessHandle&
      Dim Ret&
      Dim VbWert
    
      LaunchApp32 = -1
    
      If Unsichtbar Then
        VbWert = vbHide
      Else
        VbWert = vbNormalFocus
      End If
    
      ProcessID = Shell(MYAppname, VbWert)
      If ProcessID <> 0 Then
        ProcessHandle = OpenProcess(SYNCHRONIZE, True, ProcessID&)
        Ret = WaitForSingleObject(ProcessHandle, INFINITE)
        Ret = CloseHandle(ProcessHandle)
    
      Else
        LaunchApp32 = 0
      End If
    
    End Function
    
    Private Sub StarteAnwendung()
    LaunchApp32 "c:\winnt\system32\calc.exe"
    End Sub
     
  3. joshi123

    joshi123 Byte

    Vielen vielen Dank für die schnelle Antwort...
    vielleicht sollte ich ein Beispiel geben, was genau in der batch-datei steht und wie mein Programm aussieht...

    ich habe eine oberfläche mit VB 6.0 erstellt mit buttons, wenn man auf den ersten button drückt, wird zur Zeit die datei "1.bat" ausgeführt. Genau dies würde ich gerne umgehen, das heisst das ich die datei 1.bat löschen kann.
    in der datei "1.bat" steht folgendes drin :

    pushd interface

    reset all

    popd

    pushd interface ip

    set address name = "LAN-Verbindung" source = static addr = xxx.xxx.xxx.xxx mask = xxx.xxx.xxx.xxx
    set address name = "LAN-Verbindung" gateway = xxx.xxx.xxx.xxx gwmetric = x
    set dns name = "LAN-Verbindung" source = static addr = none
    set wins name = "LAN-Verbindung" source = static addr = none


    P.S.: die "X" stehen für Zahlen
     
  4. zonk91

    zonk91 Byte

    DU kannst mit VB auch einfach eine Dos Datei schreiben, ausführen lassen und dann die dos datei wieder löschen lassen
     
Thread Status:
Not open for further replies.

Share This Page