Qwerty212 Posted July 13, 2020 Share Posted July 13, 2020 (edited) Hello from Barcelona. Today I come with a really funny problem: I have been asked to launch a PowerPoint presentation in some computers running PowerPoint Viewer. So far, so good. The pptx are going to be stored in our server, but thanks to _WinNet_AddConnection2 funtion I can open it without having to map the network drive. The thing is that my boss wants the files are showed from the server, without giving the option of downloading the ppt files to the users (PowerPoint Viewer works fine for us in this case). As soon as I run the ppt file I got this screen: For my project this is a major problem beacuse it crearly shows the path where the ppt files are going to be stored in the server. It can be a security problem if we are trying to keep our files away from anyone in the LAN. It also shows the word "Downloading", but I have used DriveSpaceFree() Function and the disk's free space is the same before, during and after the presentation. I do not want this popup to be shown, so I have tried things like turning it transparent as soon as it shows up, but it stills appears, and someone with a mobile phone could make a slowmotion video and catch the path of the files. This is the info that I get from the window with autoit: Quote >>>> Window <<<< Title: Descarga Class: NUIDialog Position: 475, 224 Size: 350, 124 Style: 0x94C80000 ExStyle: 0x00000509 Handle: 0x00000000002503A0 >>>> Control <<<< Class: NetUIHWND Instance: 1 ClassnameNN: NetUIHWND1 Name: Advanced (Class): [CLASS:NetUIHWND; INSTANCE:1] ID: Text: Position: 0, 0 Size: 344, 95 ControlClick Coords: 148, 17 Style: 0x56000000 ExStyle: 0x00000000 Handle: 0x00000000000902D4 And this is the code that I'm using: #include <WinAPIShellEx.au3> #include <WinNet.au3> ;I do declare the variables with the server credentials $sServer = '192.168.20.13' $sShare = 'Compartida\Carpetas Personales\formacion\formacion' $sUsername = 'localserver\userfake' $sPassword = 'pssworduserfake' $sServerShare = '\\' & $sServer & '\' & $sShare $result = _WinNet_AddConnection2("", $sServerShare, $sUsername, $sPassword, 1) If $result Then ShellExecute($sServerShare & "\AAAA.ppsx") Do Sleep(1) WinSetTrans("[CLASS:NUIDialog]", "", 0) Until ProcessExists("PPTVIEW.EXE") Do Sleep(1) WinSetTrans("[CLASS:NUIDialog]", "", 0) Until WinExists("[CLASS:NUIDialog]") Do Sleep(1) WinSetTrans("[CLASS:NUIDialog]", "", 0) Until WinExists("[CLASS:PPTFrameClass]") Else ConsoleWrite("Unable to connect to " & $sServerShare & @CRLF) EndIf As you can see I have tried to set the popup window transparent as soon as it appears, but it is shown like a flash. Is there any way to pre-turn its transparency before it is showed? Any help or hint would be trully appreciated. Edited August 4, 2020 by Qwerty212 Link to comment Share on other sites More sharing options...
water Posted July 13, 2020 Share Posted July 13, 2020 If someone could take a video from the download message he could as well take a video from the whole presentation If you can't set the message window to transparent you could try to overlay the whole screen with a black or blurred picture to make the message window unreadable. Maybe you could switch off the screen while the download message gets displayed? Just my 2 cents worth. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 13, 2020 Author Share Posted July 13, 2020 Just now, water said: If someone could take a video from the download message he could as well take a video from the whole presentation If you can't set the message window to transparent you could try to overlay the whole screen with a black or blurred picture to make the message window unreadable. Maybe you could switch off the screen while the download message gets displayed? Just my 2 cents worth. Good morning water. Thanks for your reply. I have created a splashGUI and I have given to it WinSetOnTop = 1 in a While loop, but the message is popping over it The video problem is something that my boss should consider, but it overpasses my goal. Link to comment Share on other sites More sharing options...
water Posted July 13, 2020 Share Posted July 13, 2020 Maybe this works (never tried it myself): https://www.codeproject.com/Articles/11099/Turn-on-off-monitor AutoIt provides function _SendMessage (including an example) for this. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Network_Guy Posted July 13, 2020 Share Posted July 13, 2020 try to manualy copy the pptx file to local disk then open it with shell execute and delete it after u close powerpointviewer,exp:- #include <WinAPIShellEx.au3> #include <WinNet.au3> ;I do declare the variables with the server credentials $sServer = '192.168.20.13' $sShare = 'Compartida\Carpetas Personales\formacion\formacion' $sUsername = 'localserver\userfake' $sPassword = 'pssworduserfake' $sServerShare = '\\' & $sServer & '\' & $sShare $result = _WinNet_AddConnection2("", $sServerShare, $sUsername, $sPassword, 1) If $result Then FileCopy($sServerShare & "\AAAA.ppsx",@TempDir&"\AAAA.ppsx") $PID=ShellExecute(@TempDir&"\AAAA.ppsx") ProcessWaitClose($PID) FileDelete(@TempDir&"\AAAA.ppsx") Else ConsoleWrite("Unable to connect to " & $sServerShare & @CRLF) EndIf Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 13, 2020 Author Share Posted July 13, 2020 2 hours ago, Network_Guy said: try to manualy copy the pptx file to local disk then open it with shell execute and delete it after u close powerpointviewer,exp:- #include <WinAPIShellEx.au3> #include <WinNet.au3> ;I do declare the variables with the server credentials $sServer = '192.168.20.13' $sShare = 'Compartida\Carpetas Personales\formacion\formacion' $sUsername = 'localserver\userfake' $sPassword = 'pssworduserfake' $sServerShare = '\\' & $sServer & '\' & $sShare $result = _WinNet_AddConnection2("", $sServerShare, $sUsername, $sPassword, 1) If $result Then FileCopy($sServerShare & "\AAAA.ppsx",@TempDir&"\AAAA.ppsx") $PID=ShellExecute(@TempDir&"\AAAA.ppsx") ProcessWaitClose($PID) FileDelete(@TempDir&"\AAAA.ppsx") Else ConsoleWrite("Unable to connect to " & $sServerShare & @CRLF) EndIf Thanks for the hint. The goal is to do not store anything in the local drive (that's one of the reasons that the "Downloading" window may cause some heart attacks to my boss ). The PowerPoints are going to be shown in a computer with no clipboard, the Explorer.exe has been changed by a own .exe in the regedit, the USB ports are disabled... I've tried to create a ramdisk and hide it with FileSetAttrib($f_path,"+SH") I'm pretty confident about that anything is downloaded into the hdd due the result of DriveSpaceFree() but I would prefer to avoid a window that claims that it is downloading something. Is there any chance of forcing the screen coordinate of this window with a regedit? The computers do have the ALT+TAB disabled, so maybe it would be a chance of forcing it to be created outside the visible area? Thanks for the ideas Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 14, 2020 Author Share Posted July 14, 2020 I have archieved good results with this regwrite values: RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\PowerPoint Viewer\Options", "Left", "REG_DWORD", @DesktopWidth - 1) RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\PowerPoint Viewer\Options", "Top", "REG_DWORD", @DesktopHeight - 1) And moving the window outside the visible area instead of just turning it transparent: WinMove("[CLASS:NUIDialog]", "", @DesktopWidth + 8000, 9000, 1, 1, 1) WinSetTrans("[CLASS:NUIDialog]", "", 0) The values of the RegWrite do work when the values are lower than the @DesktopHeight and the @DesktopWidth. At first I tried to put something like: RegWrite("HKEY_CURRENT_USER\Software\Microsoft\Office\14.0\PowerPoint Viewer\Options", "Left", "REG_DWORD", @DesktopWidth + 9000) But it didn't worked. The Downloading screen was still visible for a few ms. The good part is that, even with this values, there is a harmless popup with a progressbar that says "Opening Presentation" that is placed inside the visible area plus the presentation is opened maximized inside the visible area of the desktop. I'm going to do some more testing to see if it really get hidden everytime. Now I'm going to try to open a MS Word .docx with MS Word Viewer without giving the option to open a new file from the File Menú. Thanks for your help. Greets from Barcelona Link to comment Share on other sites More sharing options...
Nine Posted July 14, 2020 Share Posted July 14, 2020 I am pretty sure that the file is saved locally in the Download folder. If the person would shutdown (unplugged) the computer during the presentation, the file would still be there at the next startup. I think your approach has a breach there. I would suggest you use InetGet and save the file into a ramdisk. That way you won't ever see a download message and the file cannot be retrieved in the previous scenario I just described. “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 14, 2020 Author Share Posted July 14, 2020 7 minutes ago, Nine said: I am pretty sure that the file is saved locally in the Download folder. If the person would shutdown (unplugged) the computer during the presentation, the file would still be there at the next startup. I think your approach has a breach there. I would suggest you use InetGet and save the file into a ramdisk. That way you won't ever see a download message and the file cannot be retrieved in the previous scenario I just described. I think it so, but there's no file anywhere. I've searched all around the disk and there's no ppt or any file with the same or similar size. It would be great to see if there's any info about how PPVIEW.exe handles remote files. Link to comment Share on other sites More sharing options...
Nine Posted July 14, 2020 Share Posted July 14, 2020 Did you enable explorer to show system/hidden files ? Because it is obvious that the file is saved somewhere locally... “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 14, 2020 Author Share Posted July 14, 2020 8 minutes ago, Nine said: Did you enable explorer to show system/hidden files ? Because it is obvious that the file is saved somewhere locally... Yes I did. I've also used DriveSpaceFree() Function and the disk's free space is the same before, during and after the presentation. I think that it downloads the presentation somehow. (Using the same method I can play a video huge video in VideoLAN and it opens in a second). I have argued against using formats as PowerPoints and they have not payed any attention to my claims. You can open a pdf with a huge amount of programs, same for pictures and videos, but if you do want to open a ppt file then you have to use LibreOffice (it can not play ppt files in kiosk mode restraining "Save As option"), PowerPoint (it has a cost in licenses) or PowerPoint Viewer (discontinued and with very few options). Link to comment Share on other sites More sharing options...
Nine Posted July 14, 2020 Share Posted July 14, 2020 Use this tool to see where the file is located. In the bottom panel, look at the files list, you will see the folder where the file has been downloaded. Right click in PPVIEW.exe will tell you the name of the file. “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
Qwerty212 Posted July 14, 2020 Author Share Posted July 14, 2020 It's weird because using the tool provided it points that the PPTVIEW.exe is using APPDATA folder. Inside there are .lnk files that point to the remote files in the server (they are just 1 or 2Kb). Link to comment Share on other sites More sharing options...
Nine Posted July 14, 2020 Share Posted July 14, 2020 (edited) I suppose then that the download is not creating a file, but it is reading the file into memory and closing the remote file right after the download. Edited July 14, 2020 by Nine “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now