powerpoint.ahk 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. #include, Gdip.ahk
  2. f5::
  3. try{
  4. ppt := ComObjActive("PowerPoint.Application")
  5. objppt := ppt.ActivePresentation
  6. TotalSlides:=% objppt.Slides.Count
  7. FileCreateDir, temp
  8. }
  9. catch e {
  10. MsgBox % "Error in " e.Message ", which was called at line " e.Line
  11. }
  12. ;objppt.Export("C:\Users\SK\Documents\AutoHotKey\temp",FilterName:="png",1366,768)
  13. ;"C:\Users\SK\Documents\AutoHotKey\temp", "E:\AHK\AutoHotKeyScripts\temp"
  14. ;path = %A_WorkingDir%\temp
  15. ;objppt.Export(path, FilterName:="png",1366,768)
  16. ;Loop %TotalSlides%{
  17. ;var++
  18. ;MsgBox %var%
  19. ;saveppt := objppt.Slides(var).Export(A_ScriptDir . "\temp\" . var . ".png", "PNG",1366,768)
  20. ;}
  21. ;pt := ppt.ActivePresentation.(test, ppSaveAsPNG)
  22. SysGet, MonitorCount, MonitorCount
  23. ;MsgBox %MonitorCount%
  24. ;MsgBox saved
  25. ;MsgBox inside %MonitorCount%
  26. ppt := objppt.SlideShowSettings
  27. ppt.Run
  28. ;monitorDisplay(objppt, MonitorCount)
  29. Return
  30. Right::
  31. SlideNum :=% objppt.SlideShowWindow.View.Slide.SlideIndex
  32. ;MsgBox %SlideNum%
  33. saveScreenshot(SlideNum)
  34. ;saveppt := objppt.Slides(SlideNum).Export(A_ScriptDir . "\temp\" . SlideNum . ".png", "PNG",1366,768)
  35. objppt.SlideShowWindow.View.Next
  36. monitorDisplay(objppt, MonitorCount)
  37. return
  38. Left::
  39. objppt.SlideShowWindow.View.Previous
  40. monitorDisplay(objppt, MonitorCount)
  41. return
  42. monitorDisplay(objppt, MonitorCount){
  43. try{
  44. CurrentSlideNumber :=% objppt.SlideShowWindow.View.Slide.SlideIndex
  45. }
  46. catch{
  47. FileRemoveDir, temp, 1
  48. ExitApp
  49. }
  50. ;MsgBox %CurrentSlideNumber% is the current slide
  51. monitor := MonitorCount-1
  52. var2 := 0
  53. Loop %monitor%{
  54. ;MsgBox insideloop
  55. var2++
  56. ;MsgBox var2(MonitorNumber) val = %var2%
  57. setDisplay(var2, CurrentSlideNumber-1)
  58. CurrentSlideNumber--
  59. ;var2 := 0
  60. ;MsgBox end of Loop monitor var2 = %var2%
  61. }
  62. }
  63. getCoordinates(MonitorNumber){
  64. ;coord := 1366*MonitorNumber
  65. if(MonitorNumber = 1)
  66. return 1920
  67. if(MonitorNumber = 2)
  68. return 3840
  69. ;return coord
  70. }
  71. ;SetEnv file, C:\Users\SK\Documents\AutoHotKey\1.png
  72. setDisplay(MonitorNumber, PreviousSlideNumber){
  73. global
  74. coord := getCoordinates(MonitorNumber)
  75. SetEnv file, %A_WorkingDir%\temp\%PreviousSlideNumber%.png
  76. ;file := "C:\Users\SK\Documents\AutoHotKey\Slide" . %CurrentSlideNumber% . ".png"
  77. ;file := "C:\Users\SK\Documents\AutoHotKey\1.png"
  78. ;MsgBox %coord%,%MonitorNumber%,%PreviousSlideNumber%,%file%
  79. Gui, %MonitorNumber%:destroy
  80. Gui, %MonitorNumber%:+AlwaysOnTop +LastFound +Owner -Caption
  81. Gui, %MonitorNumber%:Color, Black
  82. Gui, %MonitorNumber%:Add, Picture, w1024 h-1, %file%
  83. Gui, %MonitorNumber%:Show, x%coord% y0 maximize
  84. }
  85. Screenshot(outfile)
  86. {
  87. pToken := Gdip_Startup()
  88. screen=0|0|%A_ScreenWidth%|%A_ScreenHeight%
  89. pBitmap := Gdip_BitmapFromScreen(screen)
  90. Gdip_SaveBitmapToFile(pBitmap, outfile, 100)
  91. Gdip_DisposeImage(pBitmap)
  92. Gdip_Shutdown(pToken)
  93. }
  94. saveScreenshot(SlideNumber){
  95. file := A_WorkingDir . "\temp\" . SlideNumber . ".png"
  96. Screenshot(file)
  97. }
  98. ESC::
  99. objppt.SlideShowWindow.View.Exit
  100. FileRemoveDir, temp, 1
  101. ExitApp