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

Diferenças para "PyWin32Com"

Diferenças entre as versões de 1 e 5 (4 versões de distância)
Revisão 1e 2005-07-10 21:43:05
Tamanho: 1812
Comentário:
Revisão 5e 2008-09-26 14:07:44
Tamanho: 1842
Editor: localhost
Comentário: converted to 1.6 markup
Deleções são marcadas assim. Adições são marcadas assim.
Linha 1: Linha 1:
#pragma section-numbers off
Linha 4: Linha 3:
Exemplo simples de um componente COM em Python. 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. 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.

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