PureDispHelper
PureDispHelper
Hallo zusammen,
über PureDispHelper wurde bereits viel diskutiert. Aber leider finde ich im Forum nur Beispiele mit
dhCreateObject …
Ich brauche aber dringend ein Beilpiel mit
dhGetObject…
Geht das auch ohne PureDispHelper?
Für Hilfe wäre ich sehr dankbar.
Gruß, Günter
Beispiel in VB:
Public me As Variant
Set me = GetObject(, "Meine.Extension")
me.TuEtwas()
über PureDispHelper wurde bereits viel diskutiert. Aber leider finde ich im Forum nur Beispiele mit
dhCreateObject …
Ich brauche aber dringend ein Beilpiel mit
dhGetObject…
Geht das auch ohne PureDispHelper?
Für Hilfe wäre ich sehr dankbar.
Gruß, Günter
Beispiel in VB:
Public me As Variant
Set me = GetObject(, "Meine.Extension")
me.TuEtwas()
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Falsches Forum, hier werden Tipps & Tricks gepostet
Versuchs mit dhGetValue, gibt auch Objekte zurück!

Versuchs mit dhGetValue, gibt auch Objekte zurück!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Das ist meines Wissens nach auch erforderlich. Mit VBS kenne ich mich aber
nicht aus.
nicht aus.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Es muss immer ein Object mit dhCreateObject erstellt werden.
Unterobjekte werden dann mit dhGetValue angelegt.
Siehe Beispiel mit Excel.
Workbook wäre dann das Objekt.
FF
Unterobjekte werden dann mit dhGetValue angelegt.
Siehe Beispiel mit Excel.
Code: Alles auswählen
dhGetValue("%o", @Workbook, ExcelApp, ".Workbooks.Add")
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Das Objekt, das ich ansprechen will, ist eine Extension eines anderen Programms. Benutzte ich dhCreateObjekt, würde ich eine neue Instanz bilden und das andere Programm würde nicht reagieren.
Möglicherweise kann ich PureBasic nicht verwenden. Aber so schnell will ich nicht aufgeben, schließlich gibt es im DispHelper die Funktion dhGetObject, über deren Parameter ich mir aber nicht im Klaren bin.
Möglicherweise kann ich PureBasic nicht verwenden. Aber so schnell will ich nicht aufgeben, schließlich gibt es im DispHelper die Funktion dhGetObject, über deren Parameter ich mir aber nicht im Klaren bin.
Es gibt mit dhGetObject wohl ein Problem wenn der erste Parameter mal NULL sein muss.
Dafür bei det DispHelper_Include.pb folgendes erweitern. dhGetObjectEx_(...)
Beispiel aus Scoure von Disphelper
Werde mich noch mit ts-soft wegen dieses Problem in verbindung setzen
FF
Dafür bei det DispHelper_Include.pb folgendes erweitern. dhGetObjectEx_(...)
Code: Alles auswählen
ImportC "disphelper.lib"
...
...
dhGetObject_(szFile.p-bstr, szProgId.p-bstr, *ppDisp.IDispatch) As "_dhGetObject"
dhGetObjectEx_(szFile.l, szProgId.p-bstr, *ppDisp.IDispatch) As "_dhGetObject"
...
...
Code: Alles auswählen
Procedure.s FormatMessage(ErrorNumber.l)
Protected *Buffer, len, result.s
len = FormatMessage_(#FORMAT_MESSAGE_ALLOCATE_BUFFER|#FORMAT_MESSAGE_FROM_SYSTEM,0,ErrorNumber,0,@*Buffer,0,0)
If len
result = PeekS(*Buffer, len - 2)
LocalFree_(*Buffer)
ProcedureReturn result
Else
ProcedureReturn "Errorcode: " + Hex(ErrorNumber)
EndIf
EndProcedure
XIncludeFile "DispHelper_Include.pb"
dhInitializeImp()
;// Get a running instance of word
r1 = dhGetObjectEx_(0, "Word.Application", @wdApp);
Debug FormatMessage(r1)
FF

Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Okay, ab nächsten Monat habe ich wieder etwas mehr Zeit. Denke mal dasmk-soft hat geschrieben: Werde mich noch mit ts-soft wegen dieses Problem in verbindung setzen
FF
ich auch noch nicht die aktuellen Helper von Dir beigefügt habe, naja Umzug
Rechner kaputt usw., alles ein bissel durcheinander bei mir

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
