COM Object Reference
- joedf
- Posts: 6849
- Joined: 29 Sep 2013, 17:08
- Facebook: J0EDF
- Google: +joedf
- GitHub: joedf
- Location: Canada, Quebec
- Contact:
Re: COM Object Reference
Interesting..





Windows 10 x64 Professional, Intel i5-8500 @ 3.00 GHz, 16GB DDR4 3200 MHz, NVIDIA GTX 1060 6GB | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
Re: COM Object Reference
Related: Automating Foobar Using COM
We live alone. We die alone. Everything else is just an illusion.
Re: COM Object Reference
A remake of the index.
Index
Last edited by kon on 11 Jan 2015, 04:17, edited 2 times in total.
Re: COM Object Reference
COM Object: Publisher.Application
Purpose: Microsoft Publisher is an entry-level desktop publishing application from Microsoft, differing from Microsoft Word in that the emphasis is placed on page layout and design rather than text composition and proofing.
System Requirements: Microsoft Office Publisher
Documentation Link: Object model reference (Publisher 2013 developer reference)
Other Links: Save the active document as .jpg
Basic Code Example: This example will open Publisher, create a new document, draw a curve and a line, add some text, and SaveAs with two different formats (.jpg and .pub).
Purpose: Microsoft Publisher is an entry-level desktop publishing application from Microsoft, differing from Microsoft Word in that the emphasis is placed on page layout and design rather than text composition and proofing.
System Requirements: Microsoft Office Publisher
Documentation Link: Object model reference (Publisher 2013 developer reference)
Other Links: Save the active document as .jpg
Basic Code Example: This example will open Publisher, create a new document, draw a curve and a line, add some text, and SaveAs with two different formats (.jpg and .pub).
Code: Select all
; Constants
msoTrue := -1
pbPictureResolutionCommercialPrint_300dpi := 3
pbTextOrientationHorizontal := 1
VT_R4 := 4 ; 32-bit floating-point number
pbApp := ComObjCreate("Publisher.Application") ; Create a Publisher application object and store a reference to it in the pbApp variable
pbApp.ActiveWindow.Visible := true ; Make the window visible
; Application.NewDocument Method (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff940013%28v=office.15%29.aspx
pbDoc := pbApp.NewDocument() ; Create a new document and store a reference to the object in the pbDoc variable
; Shapes Methods (Publisher)
; http://msdn.microsoft.com/en-us/library/office/dn338310%28v=office.15%29.aspx
pbDoc.Pages(1).Shapes.AddLine(100, 150, 500, 550) ; Draw a line from the point (100, 150) to point (500, 550)
; Shapes.AddCurve Method (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff939838%28v=office.15%29.aspx
arrPoints := ComObjArray(VT_R4, 4, 2)
arrPoints[0, 0] := 100
arrPoints[0, 1] := 150
arrPoints[1, 0] := 240
arrPoints[1, 1] := 600
arrPoints[2, 0] := 370
arrPoints[2, 1] := 100
arrPoints[3, 0] := 500
arrPoints[3, 1] := 550
pbDoc.Pages(1).Shapes.AddCurve(arrPoints) ; Draw a curve using the points specified by the array
; Shapes.AddTextbox Method (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff939294%28v=office.15%29.aspx
pbTextbox := pbDoc.Pages(1).Shapes.AddTextbox(pbTextOrientationHorizontal, 40, 60, 520, 65) ; Create a textbox
; Story.TextRange Property (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff940334%28v=office.15%29.aspx
pbTextRange := pbTextbox.TextFrame.Story.TextRange ; Store a reference to the range of text inside the textbox
pbTextRange.Text := "AutoHotkey is awesome!"
pbTextRange.Font.Bold := msoTrue
pbTextRange.Font.Size := 40
pbTextRange.Font.Name := "Arial"
; Page.SaveAsPicture Method (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff939984%28v=office.15%29.aspx
SavePath := A_ScriptDir "\MyTestFile.jpg" ; Save the picture to the same directory as this script
pbDoc.Pages(1).SaveAsPicture(SavePath, pbPictureResolutionCommercialPrint_300dpi)
; Document.SaveAs Method (Publisher)
; http://msdn.microsoft.com/en-us/library/office/ff940221%28v=office.15%29.aspx
SavePath := A_ScriptDir "\MyTestDocument.pub" ; Save the document to the same directory as this script
pbDoc.SaveAs(SavePath)
return
Re: COM Object Reference
Wouldn't this be better suited to a GitHub repository or something along those lines? Perhaps under the AhkScript group?
Re: COM Object Reference
COM Object: Msxml2.XMLHTTP, a.k.a. XmlHttpRequest object.
Purpose: Making HTTP requests. Unlike UrlDownloadToFile, it doesn't require managing a temporary file. Unlike WinHttpRequest, it can notify us when the request is complete.
System Requirements: IE7+ and AutoHotkey v1.1.17+ to use onreadystatechange.
Documentation Link: XMLHttpRequest object
Basic Code Example:
I started looking into this because using WinHttpRequest in synchronous mode causes the script to hang until the request completes, but it turns out you can get around that by opening the request in asynchronous mode and calling WinHttpRequest.WaitForResponse(). The advantages of XMLHTTP are that the API is well known to many web developers, and the events (like onreadystatechange) are compatible with AutoHotkey.
Purpose: Making HTTP requests. Unlike UrlDownloadToFile, it doesn't require managing a temporary file. Unlike WinHttpRequest, it can notify us when the request is complete.
System Requirements: IE7+ and AutoHotkey v1.1.17+ to use onreadystatechange.
Documentation Link: XMLHttpRequest object
Basic Code Example:
Code: Select all
req := ComObjCreate("Msxml2.XMLHTTP")
; Open a request with async enabled.
req.open("GET", "https://autohotkey.com/download/1.1/version.txt", true)
; Set our callback function (v1.1.17+).
req.onreadystatechange := Func("Ready")
; Send the request.
req.send()
/*
; If you're going to wait, there's no need for onreadystatechange.
; Setting async=true and waiting like this allows the script to remain
; responsive while the download is taking place, whereas async=false
; will make the script unresponsive.
while req.readyState != 4
sleep 100
*/
#Persistent
Ready() {
global req
if (req.readyState != 4) ; Not done yet.
return
if (req.status == 200 || req.status == 304) ; OK.
MsgBox % "Latest AutoHotkey version: " req.responseText
else
MsgBox 16,, % "Status " req.status
ExitApp
}
Last edited by lexikos on 30 Oct 2016, 18:46, edited 1 time in total.
Reason: Update URL
Reason: Update URL
- joedf
- Posts: 6849
- Joined: 29 Sep 2013, 17:08
- Facebook: J0EDF
- Google: +joedf
- GitHub: joedf
- Location: Canada, Quebec
- Contact:
Re: COM Object Reference
Hello asynchronous downloads!





Windows 10 x64 Professional, Intel i5-8500 @ 3.00 GHz, 16GB DDR4 3200 MHz, NVIDIA GTX 1060 6GB | [About Me] | [ASPDM - StdLib Distribution]
[Populate the AHK MiniCity!] | [Qonsole - Quake-like console emulator] | [LibCon - Autohotkey Console Library] | [About the AHK Foundation]
- Joe Glines
- Posts: 576
- Joined: 30 Sep 2013, 20:49
- Facebook: https://www.facebook.com/theAutomatorGuru/
- Google: https://plus.google.com/105328929654286634910
- GitHub: joetazz
- Location: Dallas
- Contact:
Re: COM Object Reference
Any idea what the maximum size that can be stored in this? I read through some of the documentation however I was playing around and was storing a lot more characters than what I saw in the documentation.
sinkfaze wrote:COM Object: WScript.Shell
Purpose: Exchange variables between scripts
System Requirements: General
Documentation Link: WshEnvironment Object
Other Links: Environment Variables

Sign-up for Monthly AutoHotkey Webinars

Web Scraping Tutorials
Automate Chrome

Selenium and AutoHotkey
Connect with me on LinkedIn

Connect with Fascinating Friends on AHK Facebook
YouTube Channel
Udemy Course on HotStrings

How-to: Create a shortcut that automatically logs in to any website
- Joe Glines
- Posts: 576
- Joined: 30 Sep 2013, 20:49
- Facebook: https://www.facebook.com/theAutomatorGuru/
- Google: https://plus.google.com/105328929654286634910
- GitHub: joetazz
- Location: Dallas
- Contact:
Re: COM Object Reference
Joetazz wrote:Any idea what the maximum size that can be stored in this? I read through some of the documentation however I was playing around and was storing a lot more characters than what I saw in the documentation.
I reached a max of 524,285 charchters on my 64 bit version of Windows 7

Sign-up for Monthly AutoHotkey Webinars

Web Scraping Tutorials
Automate Chrome

Selenium and AutoHotkey
Connect with me on LinkedIn

Connect with Fascinating Friends on AHK Facebook
YouTube Channel
Udemy Course on HotStrings

How-to: Create a shortcut that automatically logs in to any website
Re: COM Object Reference
I have installed ImageMagick with the COM option in the installer (the checkbox about VBS something, don't remember exactly). I can run the ImageMagickObject .vbs test script that comes with ImageMagick. But I can't get it to work in AHK. The sample script generated "Invalid class string" error on this linesinkfaze wrote:COM Object: ImageMagickObject COM+ Object
Purpose: ImageMagick® is a software suite to create, edit, and compose bitmap images.
System Requirements: ImageMagickObject COM+ Object
Documentation Link:
Other Links: http://www.imagemagick.org/script/binar ... hp#windows
Basic Code Example:
Code: Select all
oI := ComObjCreate("ImageMagickObject.MagickImage.1")