Visual-Basic Programm mit Java steuern

userSeb

Mitglied
Hallo,
ich bin relativ neu auf dem Gebiet der Programmierung. Ich durchsuche schon eine ganze Weile sämtliche Foren, komme aber nicht so richtig weiter.

ich möchte folgendes machen:
-eine VB.exe (VB6.0) starten und parameter übergeben (funktioniert)
-die Parameter in der VB.exe nutzen (funktioniert)
-während das VB Prgramm läuft, mit Java weitere Daten senden und im VB Programm verarbeiten (weiß nicht, wie)
-aus dem VB Programm heraus Daten an Java senden (weiß nicht, wie)

das habe ich bisher gemacht:

Java:
class Run{
	public static void main(String[] args){
	
		String[] commandLine = {"Programm1.exe " ,"test", "test2"};
		
		try{
			Process p = Runtime.getRuntime().exec(commandLine);
		}
		catch(Exception e){
			e.printStackTrace();
			}
		}
}

und das VB Programm enthält unter anderem folgenden Code (Command1 = CommandButton; Text1 = TextBox):

Private Sub Command1_Click()
Text1.Text = Command$
End Sub


Ich würde gerne Strings, oder noch besser StringArrays hin und her schicken. JNI hab ich mir schon angeschaut, war mir aber ein bisschen kompliziert.

Für Anregungen bin ich sehr dankbar!
 
Was mir dazu einfällte ne Datenbank dazwischen schalten mit zwei Tabellen eine für Java und eine für VB. Commands in die Tabelle schreiben und nach ausführen des Commands wieder löschen.

DB muss in beiden Welten verfügbar sein z.B. MySQL oder SQL Lite usw.
 
danke ARauder, das mit den Sockets war ne gute Idee. VB spielt Server, Java ist Client. Senden Richtung VB klappt:

Java:
 out.writeBytes(line);
line ist dabei ein String.

leider funktioniert der Rückweg noch nicht richtig. Hab gelesen, dass es wohl was mit dem Zeichcode in VB zu tun hat (ASCII).

versuche so zu senden:

answer = "Hallo Client!"
Winsock1.SendData answer

in Java stockt es dann bei

Java:
.
.
.
InputStream sin = socket.getInputStream();
DataInputStream in = new DataInputStream(sin);
.
.
.
String lineIn = null;
lineIn = in.readUTF();

wie kann ich das umgehen?
 
für meine zwecke hat folgendes funktioniert:

Java:
BufferedReader in2 = new BufferedReader( new InputStreamReader( socket.getInputStream()) );

lineIn = in2.readLine();

und im VB:

Dim answer() As Byte
answer = "Hallo Client!"
answer = answer & Chr(10)
Winsock1.SendData answer

gesendet wir bei mir so:

Java:
OutputStream sout = socket.getOutputStream();
DataOutputStream out = new DataOutputStream(sout);

String line = "Hallo Server";

out.write(line.getBytes());

DANKE für die Hilfe!
 

Zurück
Oben