Einbinden von python23.dll bzw. Pythonf in Visual Basic Code

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Andre
User
Beiträge: 1
Registriert: Sonntag 14. Mai 2006, 22:03

Hallo Ihr da draußen,

ich habe kürzlich mit Visual Basic 6 angefangen um einen einfachen Zugang zu Windowsprogrammen zu erhalten. Ich habe zuvor ein Test-Modul in Python geschrieben, dass ich nun über einen Kommandoknopf von VB aus starten möchte. Ich kenne mich derzeit weder in VB noch in Python gut genug aus um das Problem selber lösen zu können. Ich habe im ersten Schritt versucht einfache Python Funktionen über den Aufruf "Private Declare Function ..... Lib "...." von Visual Basic aus zu starten. Ich scheitere aber schon an den Übergabeparametern. Hat einer von Euch ein paar nützliche Tips und nach Möglichkeit ein paar einfache Beispiele, wie ich eigene Python Funktionen und wie ich selbst erstellte Funktionen in einem Python Modul einsprechend einbinden und zum Laufen bringen kann.
Ich bin für jeden Tip dankbar! :D
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Andre hat geschrieben:ich habe kürzlich mit Visual Basic 6 angefangen um einen einfachen Zugang zu Windowsprogrammen zu erhalten.
[...]
Ich habe im ersten Schritt versucht einfache Python Funktionen über den Aufruf "Private Declare Function ..... Lib "...." von Visual Basic aus zu starten.
Hi Andre!

- Ich kann dir nicht mehr zu Visual Basic 6 raten, da VB6 nicht mehr weiterentwickelt wird und demnächst auch von Microsoft ohne Unterstützung da stehen wird.

- "Private Declare Function" kannst du nicht zum Verbinden von Python- und VB-Programmen verwenden.

- VB-Programme und Python-Programme sind nur über eine COM-Schnittstelle direkt miteinander Verknüpfbar. Das ist erstens recht kompliziert und zweitens ein wenig fehleranfällig. Du brauchst dazu pyWin32. http://sourceforge.net/project/showfile ... p_id=78018

- Eine Erklärung, wie das mit Python und COM funktioniert, findest du hier: http://www.python.org/windows/win32com/ ... pframe.htm

- Andererseits lassen sich Python-Programme und VB6-Programme wie bei allen anderen Programmen auch, als eigenständige Prozesse laufen. Du kannst also von VB6 aus mit dem Befehl "shell" ein Python-Programm als eigenständigen Prozess aufrufen. Mit ein paar Tricks kannst du sogar darauf warten, bis das Python-Programm fertig ist und erst dann im VB-Code weiter machen. Die Parameter kannst du direkt an die Kommandozeile übergeben. In Python verarbeitest du die Parameter am besten mit dem Modul "optparse". http://python.org/doc/2.4.3/lib/module-optparse.html

- Die Programme können auch als Server laufen und per XML-RPC Anweisungen vom anderen Programm übernehmen. XML-RPC ist in Python eingebaut http://python.org/doc/2.4.3/lib/module-xmlrpclib.html und für VB gibt es eine DLL http://comxmlrpc.sourceforge.net/ die so etwas kann.

- Ich rate dir aber nicht mehr auf VB6 zu setzen und (wir sind ja hier in einem Python-Board) die GUI auch mit Python zu erstellen. Ich empfehle, zuerst Python zu lernen und erst dann mit der GUI-Programmierung (GUI = Graphical User Interface) zu beginnen. Seit ich weiß, wie bequem man mit wxPython http://wxpython.org GUI-Programme schreiben kann, empfehle ich nur noch wxPython. Um wxPython zu lernen, empfehle ich das englischsprachige Buch "wxPython in Action". Es gibt leider noch kein deutschsprachiges Buch zu diesem Thema.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Antworten