Schrift
[thread]1242[/thread]

Methoden eines unbekannten Objektes: Win32::OLE

Leser: 15


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
format_c
 2005-01-27 10:43
#12678 #12678
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Gibt es
a)
eine Möglichkeit die Methoden und Eigenschaften eines Objektes herauszufinden? In meinem Fall Win32::OLE->new('Notes.NotesSession');?

b)
Kennt jemand eine vollständige Dokumentation des OLE-Objektes? Die Dokumtentation von LotusScript hilft mir nicht wirklich.

Gruß Alex
renee
 2005-01-27 11:00
#12679 #12679
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
zu a) Das hier sollte Dich  weiterbringen:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/perl -wl

package ap;

use Win32::OLE::Const "Adobe Photoshop";

package main;

$, = $/;

print sort grep defined *{"ap::$_"}{"CODE"}, keys %ap::;


zu b) wenn Du activePerl hast, dann ist da ein OLE-Browser dabei... vielleicht dort mal reinschauen...

edit: bei der hilfe zu a) halt 'Adobe Photoshop' durch Dein Programm ersetzen...\n\n

<!--EDIT|renee|1106816490-->
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
ptk
 2005-01-27 11:24
#12680 #12680
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
@renee: Nett! Man sollte nur beachten, dass man damit nicht zwischen Methoden und Funktionen unterscheiden kann, und dass man eigentlich noch @ISA traversieren muesste.
renee
 2005-01-27 12:02
#12681 #12681
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
stammt nicht von mir, sondern von einem netten Perlmonk, der mir dadurch sehr geholfen hat!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
format_c
 2005-01-27 12:34
#12682 #12682
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
[quote=ptk,27.01.2005, 10:24]@renee: Nett! Man sollte nur beachten, dass man damit nicht zwischen Methoden und Funktionen unterscheiden kann, und dass man eigentlich noch @ISA traversieren muesste.[/quote]
Was bedeutet denn traversieren?

Gruß Alex
format_c
 2005-01-27 12:38
#12683 #12683
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
@renee:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#!/usr/bin/perl -wl

package ap;

use Win32::OLE::Const "Notes.NotesSession";

package main;

$, = $/;

print sort grep defined *{"ap::$_"}{"CODE"}, keys %ap::;
_ _ END _ _
No type library matching "Notes.NotesSession" found at test2.pl line 5
Win32::OLE(0.1601): GetOleTypeLibObject() Not a Win32::OLE::TypeLib object at C:/Perl/site/lib/Win32/OLE/Const.pm line 45.


Gruß Alex
ptk
 2005-01-27 12:49
#12684 #12684
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
[quote=format_c,27.01.2005, 11:34][quote=ptk,27.01.2005, 10:24]@renee: Nett! Man sollte nur beachten, dass man damit nicht zwischen Methoden und Funktionen unterscheiden kann, und dass man eigentlich noch @ISA traversieren muesste.[/quote]
Was bedeutet denn traversieren?

Gruß Alex[/quote]
Die Vererbungshierarchie kann man sich als Baum (oder sogar Graph?) vorstellen. Man faengt unten an und hangelt sich von SUPER-Modul zu SUPER-Modul, um alle Funktionen einzusammeln.

Als Pseudo-Code koennte das so aussehen:
Code: (dl )
1
2
3
4
5
6
7
8
sub dump_subs {
my $package = shift;
my @subs = sort grep defined *{$package."::$_"}{"CODE"}, keys %{$package."::};
for my $isa (@{$package."::ISA"}) {
push @subs, dump_subs($isa);
}
@subs;
}
format_c
 2005-01-27 13:03
#12685 #12685
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Da es pseudocode ist funktioniert er wohl nicht, abgesehen von dem fehlenden ". Hast du einen Funktionierenden Code?
Code: (dl )
1
2
3
4
5
6
7
8
9
10
sub dump_subs {
my $package = shift;
my @subs = sort grep defined *{$package."::$_"}{"CODE"}, keys %{$package."::"};
for my $isa (@{$package."::ISA"}) {
push @subs, dump_subs($isa);
}
@subs;
}
print join ", ",dump_subs(CGI);
_ _ END _ _


Gruß Alex
ptk
 2005-01-27 13:57
#12686 #12686
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Doch, funktioniert, wenn du CGI in Anfuehrungszeichen setzt und noch use CGI irgendwo einfuegst.
format_c
 2005-01-27 17:42
#12687 #12687
User since
2003-08-04
1706 Artikel
HausmeisterIn
[Homepage] [default_avatar]
Cool, geht das auch mit Objekten?

Gruß Alex
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2005-01-27 10:43.