associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Diferenças para "PyWin32Com"

Diferenças entre as versões de 4 e 5
Revisão 4e 2006-01-18 00:28:42
Tamanho: 1842
Editor: FabioCorrea
Comentário: Refactoring Wiki - eliminando pragma
Revisão 5e 2008-09-26 14:07:44
Tamanho: 1842
Editor: localhost
Comentário: converted to 1.6 markup
Nenhuma diferença encontrada!

Receita: PyWin32Com

Exemplo simples de um componente COM em Python utilizando o módulo PyWin32. O componente estará disponível pelo nome especificado em _reg_prog_id_ (no caso, Python.Teste) e um novo _reg_clsid_ pode ser obtido pelo método CreateGuid() do módulo PythonCom. Os métodos expostos pelo componente são listados em _public_methods_ (nesse caso, apenas teste). A primeira vez em que o módulo for executado ele se auto-registrará no sistema e só estará disponível após esse procedimento ser realizado pelo menos uma vez.

Código

   1 class Teste:
   2     _public_methods_ = ['teste']
   3     _reg_progid_ = "Python.Teste"
   4     _reg_clsid_ = '{8DD31796-D958-4A2D-B3E6-F81754A759CB}'
   5 
   6     def teste(self, x):
   7         return x**2
   8 
   9 if __name__=="__main__":
  10     import win32com.server.register
  11     win32com.server.register.UseCommandLine(Teste)

Exemplo de uso (em Python)

   1 from win32com import client
   2 
   3 obj = client.Dispatch('Python.Teste')
   4 print obj.teste(2)

Exemplo de uso (em VB6)

Set obj = CreateObject("Python.Teste")
MsgBox obj.teste(2)

Exemplo de uso (em Perl)

use Win32::OLE;

my $obj = Win32::OLE->new('Python.Teste');
print $obj->teste(2);

Exemplo de uso (em Delphi 7)

// Adicione ComObj na cláusula Uses
var obj : Variant;
begin
  obj := CreateOleObject('Python.Teste');
  ShowMessage(IntToStr(obj.teste(2)));
end;

Exemplo de uso (em Ruby)

require 'win32ole'

k = WIN32OLE.new('Python.Teste')
puts k.teste(2)

Exemplo de uso (em Lua com LuaCOM)

require("luacom")

obj = luacom.CreateObject("Python.Teste")
print(obj:teste(2))

Volta para CookBook.


WashingtonCoutinhoCorrêaJr