vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Blitzschnelles Erstellen von grafischen Diagrammen!  
 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

Visual-Basic Einsteiger
Re: FTP mit Shell ausführen und Abarbeitungsdatei erstellen 
Autor: BasTler
Datum: 01.07.05 13:50

Function EVI_Aufruf(Korrsatz As String, WaitForProcess As Boolean) As Boolean
  Dim cmdline As String
  Dim hReadPipe1 As Long, hWritePipe1 As Long  ' STDOUT
  Dim hReadPipe3 As Long, hWritePipe3 As Long  ' STDIN
  Dim bytewritten As Long
  Dim llngRetCode As Long, llngReturnStatus As Long
  Dim StuffToWrite As String
  Dim si As STARTUPINFO
  Dim pi As PROCESS_INFORMATION
  Dim sa As SECURITY_ATTRIBUTES
  ' Diese Variablen sind für die Datei mit den JAVA-Anweisungen
  Dim JavaScript As Integer
  Dim KorrsatzPos As Integer
  Dim cmdlineRest As Integer
  Dim SbnrPos As Integer
  ' Diese Variablen sind für eine Protokolldatei
  Dim DateiNr As Integer
  Dim Zeile As String
 
  On Error GoTo EVI_Aufruf_Fehler
 
  EVI_Aufruf = True
  sa.nLength = Len(sa)
  sa.lpSecurityDescriptor = 0&
  sa.bInheritHandle = True
 
  ' Hier wird geprüft, ob die Anwendung schon läuft
  If OpenProcess(PROCESS_ALL_ACCESS, 0&, JavaProcID) = 0 Then
    ' A pipe of redirection of STDOUT
    If CreatePipe(hReadPipe1, hWritePipe1, sa, 0&) Then
    Else
      MsgBox "Konnte Pipe STDOUT nicht öffnen: " & Err.LastDllError
    End If
    ' A pipe of redirection of STDIN
    If CreatePipe(hReadPipe3, hWritePipe3, sa, 0&) Then
    Else
      MsgBox "Konnte Pipe STDIN nicht öffnen: " & Err.LastDllError
    End If
 
    si.cb = Len(si)
    si.dwflags = STARTF_USESTDHANDLES Or STARTF_USESHOWWINDOW
    'si.dwFlags = STARTF_USESHOWWINDOW
    si.hStdOutput = hWritePipe1
    si.hStdError = hWritePipe1
    si.hStdInput = hReadPipe3
    si.wShowWindow = SW_NORMAL
 
    ' Programmaufruf
    cmdline = "javaw.exe -Xmx128m -cp "
    cmdline = cmdline & "c:\programme\jet\bin\bsh-1.3.0.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\JeTClient.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\jadice-viewer.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\iiclient.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\EVIStarter.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\commons-httpclient-2.0-rc2.jar;"
    cmdline = cmdline & "c:\programme\jet\bin\commons-logging.jar"
    cmdline = cmdline & " -Dde.debeka.jet.home=c:\programme\jet"
    cmdline = cmdline & " bsh.Interpreter"
    If CreateProcess(0&, cmdline$, 0&, 0&, True, NORMAL_PRIORITY_CLASS, 0&, 0&, _
      si, pi) Then
    Else
      MsgBox "EVI konnte nicht gestartet werden !", 16, Title16
    End If
    JavaProcID = pi.dwProcessId
    WritePipe3 = hWritePipe3
  Else
    pi.dwProcessId = JavaProcID
    hWritePipe3 = WritePipe3
  End If
 
  ' JADICE.LOG ist eine Kontrolldatei, in der die über die Pipe
  ' geschickten Anweisungen und deren Länge zurückgeschrieben werden
  DateiNr = FreeFile
  Open "D:\JADICE.LOG" For Output Access Write Lock Read As #DateiNr
  ' EviScript.txt ist die Datei, in der die über die Pipe zu schickenden
  ' JAVA-Anweisungen stehen
  JavaScript = FreeFile
  Open "D:\EviScript.txt" For Binary Access Read As #JavaScript
  Do Until EOF(JavaScript)
    Line Input #JavaScript, StuffToWrite
    DoEvents
    If Left$(StuffToWrite, 1) = ";" Then
    Else
      ' Die ersten Übergaben in "StuffToWrite" sind zum Initialisieren des 
      ' Aufruf's
      If InStr(1, StuffToWrite, "persnr") Then
        KorrsatzPos = InStr(1, StuffToWrite, "persnr") - 1
        ' hier noch die SBNR in Spalte Abt. einfügen
        cmdline = Left$(StuffToWrite, KorrsatzPos) & param.persnr & """" & "" & _
          ", ""001"", """ & param.sbnr
        SbnrPos = InStr(1, StuffToWrite, "BS")
        cmdlineRest = Len(StuffToWrite) - ((SbnrPos) + 1)
        StuffToWrite = cmdline & "" & Right$(StuffToWrite, cmdlineRest)
      End If
      If InStr(1, StuffToWrite, "Korrsatz") Then
        KorrsatzPos = InStr(1, StuffToWrite, "Korrsatz") - 1
        cmdlineRest = Len(StuffToWrite) - (KorrsatzPos + 8)
        cmdline = Left$(StuffToWrite, KorrsatzPos) & "" & Korrsatz
        cmdline = cmdline & """, " & """" & param.User
        StuffToWrite = cmdline & Right$(StuffToWrite, cmdlineRest)
      End If
      StuffToWrite = StuffToWrite & vbNewLine
    ' Ausgabe in die andere Anwendung
      If WriteFile(hWritePipe3, ByVal StuffToWrite, Len(StuffToWrite), _
        bytewritten, 0&) Then
        Zeile = StuffToWrite & ";" & bytewritten
        Print #DateiNr, Zeile
      Else
        MsgBox "Pipe für EVI wurde nicht beschrieben.", 16, Title16
      End If
    End If
  Loop
  Close #DateiNr
  Close #JavaScript
  EVI_Aufruf = False
  Exit Function
 
EVI_Aufruf_Fehler:
  MsgBox "EVI_Aufruf hat einen Fehler: " & Err
End Function
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
FTP mit Shell ausführen und Abarbeitungsdatei erstellen1.007Dominik30.06.05 15:12
Re: FTP mit Shell ausführen und Abarbeitungsdatei erstellen496BasTler01.07.05 13:42
Re: FTP mit Shell ausführen und Abarbeitungsdatei erstellen503BasTler01.07.05 13:50

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