Jump to content

inking toolbar to be used during a PowerPoint presentation.


Recommended Posts

Wondering if you can help a teacher out.  For the last few years of remote, hybrid, and in-person teaching I've been using an AutoHotKey script that creates an inking toolbar to be used during a PowerPoint presentation.  (https://www.autohotkey.com/boards/viewtopic.php?t=79163) The annotation tools available through Ppt are woefully inadequate, and, on my machine at least, jump around all over the place - sometimes on the bottom, sometimes on the left, sometimes on the right.  It's a scavenger hunt every single time.  The inking tool is always available, and recent updates allowed for the addition of lots more colors, which I used for modeling phenomena with students. One tragic day I arrived to school to find that my district IT dep't took away access to AutoHotKey.  No more tool bar. 

I've been trying to resurrect some programming skills from a past life. I'm working through various tutorials and help files, with the goal of recreating the toolbar in AutoIt.  I'm really needing some help to move things along though.  I've been going through your PowerPoint UDF and all of your functions seem to just relate to editing the slides. Can you point me in the direction of how to create a toolbar that accesses the annotation tools that are available during the slideshow itself? 

 

Edited by Jos
Split post into its own thread
Link to comment
Share on other sites

The AHK script consists of about 7500 lines of code plus inline DLLs plus GDI Image processing. Quite a task to translate this to AutoIt.
Can't you ceate an Exe from this AKH tool and run this exe?

To create an AutoIt script you have to look at the PowerPoint Object Reference.
Seems he uses Presentation.SlideShowWindow.View a lot.

I know nothing about AHK, DLLs and GDI. So this isn't just a simple translation job.

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki
ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts
OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki
OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download
Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki
PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki
Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki

Standard UDFs:
Excel - Example Scripts - Wiki
Word - Wiki

Tutorials:
ADO - Wiki
WebDriver - Wiki

 

Link to comment
Share on other sites

7 hours ago, sandgre said:

One tragic day I arrived to school to find that my district IT dep't took away access

They can take away anything, therefore, the problem/solution is not in recreating it in AutoIt but to get the IT dept. to let you use what you feel you need.

Follow the link to my code contribution ( and other things too ).
FAQ - Please Read Before Posting.
autoit_scripter_blue_userbar.png

Link to comment
Share on other sites

1. You probably know https://support.microsoft.com/en-us/office/draw-on-slides-during-a-presentation-80a78a11-cb5d-4dfc-a1ad-a26e877da770

2. A reference to VBA https://docs.microsoft.com/en-us/office/vba/api/powerpoint.slideshowview.pointertype

3.  Some powerpoint UDF users can probably easy translate this

ActivePresentation.SlideShowSettings.Run.View.PointerColor.RGB = RGB(255, 0, 0)
    ActivePresentation.SlideShowSettings.Run.View.PointerType = ppSlideShowPointerPen  '2

Or maybe a short term alternative just to get quicker to your contextmenu (you could add a mousemove to a certain position so it allways comes at the same location)

#include <MsgBoxConstants.au3>

; Press Esc to terminate script, Pause/Break to "pause"

Global $g_bPaused = False

HotKeySet("{PAUSE}", "TogglePause")
HotKeySet("{ESC}", "Terminate")
HotKeySet("+!q", "ShowInk") ; Shift-Alt-d

While 1
        Sleep(100)
WEnd

Func TogglePause()
        $g_bPaused = Not $g_bPaused
        While $g_bPaused
                Sleep(100)
                ToolTip('Script is "Paused"', 0, 0)
        WEnd
        ToolTip("")
EndFunc   ;==>TogglePause

Func Terminate()
        Exit
EndFunc   ;==>Terminate

Func ShowInk()
        MouseClick($MOUSE_CLICK_RIGHT)
        sleep(200)
        send("{DOWN 7"}
EndFunc   ;==>ShowMessage

 

But I wouldn't be surprised if your IT department closes AutoIt also. (Then you only have as alternative Powershell or VBA itself left)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...