My firm presents seminars. Each seminar runs for three days, and each contains multiple PowerPoint presentations for each day.
Our presenters have minimal technical expertise. When they’re presenting, they use a very basic remote that can forward and advance slides or switch to a black screen. That’s it.
When they get to the end of the first PowerPoint presentation, they do not want to have to walk over to the laptop, close the show, and open the next one. This needs to happen seamlessly. And for many years, it has. Older versions of PowerPoint had an option called “Package for CD” which would bundle all of the presentations into a single folder (along with any embedded audio and video files – there are lots of those). The folder would also contain an EXE of PowerPoint Viewer, and a .BAT file containing the file names of all of the shows. So all we’d have to do is run the BAT file, and each PPT file would play sequentially.
However PPT 2010 no longer bundles multiple files together. I tried to come up with a BAT file that calls for the PPT exe to run, and then lists each file, with a command line switch to run in slideshow mode. And it works… some of the time. And then some of the time it comes with a “can’t read file” error.
In a nutshell – we need a way to run a series of PPT files in slideshow mode, so that one file opens and then at the end of the file it opens the next one, without needing to press any buttons or touch the laptop.
This is the text of the BAT file I created that works intermittently:
"C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE" /S 00Intro.pptx 01Legal.pptx 02pers.pptx
Any help would be appreciated.
When they get to the end of the first PowerPoint presentation, they do
not want to have to walk over to the laptop, close the show, and open
the next one. This needs to happen seamlessly.
SlideDog (http://slidedog.com) does exactly this.
You add Powerpoints to a playlist
SlideDog loads them up
SlideDog will seamlessly switch to the next PPT in line when on the last slide of the current PPT and you click next on your remote.
SlideDog currently supports Office 2010 PowerPoint and PowerPoint Viewer 2010
Disclaimer: I am one of the creators of SlideDog.
I haven't tested this. I assume that the ppt thingy ignores your 2nd and 3rd param. The docs didn't say anything about processing more than one file on the arg list.
Try this:
START /WAIT POWERPNT.EXE" /S 00Intro.pptx
START /WAIT POWERPNT.EXE" /S 01Legal.pptx
(use the relevant SET PATH=%PATH%;c:/prog .... or full path names as appropriate)
The user will have to close powerpoint before the batch file will open the next.
Slick way of getting all presentations into one presentation with individual templates:
Under New Slides, click reuse slides, choose the presentation.
To keep formatting:
Create new master slider anywhere on presentation.
Save the design template of the presentation you want to transfer slides from.
Highlight transferred slides and go to design - browse for saved design template.
Happy to answer any questions.
Do not put your code to BAT file, but to shortcut:
"C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE" /S " ¤full path to file¤\00Intro.pptx" "¤full path to file¤\01Legal.pptx" "¤full path to file¤\02pers.pptx"
Or create Task for Task Scheduler (if you want run it in automatic mode:
Run: "C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE"
Parameters: /S " ¤full path to file¤\00Intro.pptx" "¤full path to file¤\01Legal.pptx" "¤full path to file¤\02pers.pptx"
Both cases were succesfully tested under Win 8.1 / Office 2010
In my case:
"C:\Program Files (x86)\Microsoft Office\Office14\POWERPNT.EXE" /S "D:\Publications\CAD.pptx" "D:\Publications\showmustgoon.pptx"
Related
Context
I have a Windows app printing PDF files by forwarding the file paths to ShellExecuteEx and the verb print. Adobe Reader is installed and registered for that verb. Reader by default creates a LNK shortcut file in the start menu:
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Adobe Acrobat DC.lnk
Hide windows
By default, reader shows a GUI window when printing a PDF. Some customer doesn't want that window and simply tried to "hide" it by changing the LNK file content using Windows Explorer properties to at least minimize the windows by default. That customer didn't know if that works or not, one simply tried.
To my surprise this worked, changing the minimize vs. non-minimize/default setting of the LNK file made the reader windows being visible or minimized.
No changes in registry
I've searched the registry for changed settings regarding the print verb, but couldn't find any. The new setting really seemed to be only stored within the LNK file:
The registry contained references to the actual EXE only, not the LNK file. Pretty much like expected, I've never came across any shell verb registration using LNK files at all.
"C:\Program Files\Adobe\Acrobat DC\Acrobat\Acrobat.exe" /p /h "%1"
Though, all invocations of the verb print seemed to recognize that setting, either manually using the context menu of some PDF in Windows Explorer or executing things on the shell:
powershell -Command "Start-Process -Verb print '\\?\C:\[...].pdf'"
Why is that important?
Adobe Reader provides the command line argument /h to minimize itself as well, but using that doesn't fully hide a window at all. Instead, a window is shown for a second or so and afterwards minimized, e.g. like Adobe is doing that itself. OTOH, with the changed LNK file things are different: Either really now window is shown at all or only some artifacts like the window title or alike for less than a second.
It really seems that the difference is between Adobe doing something on it own after it has loaded and stuff vs. Windows itself creating the minimized window already.
Additionally, if possible at all I would like to avoid customers needing to change the LNK file themself. The problem with that change is that it's not tied to the print verb only, but whenever Adobe Reader gets opened. And sometimes customers really need to have a look at PDFs themself instead of automatic printing only.
So, how does that work?
Is Windows itself using the setting of that LNK file or is this something implemented by Adobe Reader?
Using ProcMon, I couldn't find any hint about that Adobe Reader itself reads the LNK file. As well, I couldn't find this behaviour documented in the topics about shell verbs, ShellExecuteEx etc. It's totally unexpected to me, as the LNK file is some arbitrary file in theory, which might not exist at all, can be named as one likes, even multiple of those could exist in theory starting different apps of some package or the same app with different arguments etc.
Thanks for any insights.
I know there already is an answer to the question here:
How to add new(customized) Theme colors to Powerpoint using VBA
But it didn't work. And as I'm not allowed to comment there (not enough reputation) I'm sorry for opening up a new question. (Dear admins - this isn't really clever in my opinion. Now we have two threads on the same thing, just because I'm not allowed to comment.)
Back to topic:
http://echosvoice.com/wp-content/uploads/pptfiles/customcolors.pdf
I followed the instructions of Echo, recommended in the other thread, but it didn't work. I have ppt2010 and tried with a THMX, a POTX and a PPTX. It's always the same. I rename the file by adding a .zip - I extract the ZIP - I copy Echo's example code and paste it right before /a:theme in theme1.xml file - I save it - I zip the whole folder - I delete the ZIP Extension - and it's corrupt. When I doubleclick, PPT opens without a slide. When I got to "open" and choose the template, I get an error message. "Repair" doesn't help. - What am I doing wrong?
(Somewhere else I read, I have to add this to every theme-file, but it doesn't make a difference)
Be kind to yourself. Use 7-zip (free) to open the PPTX (it can open them directly w/o having to rename them, and won't corrupt the files).
Alternatively, rename the file to zip, doubleclick to open the zip in Windows Explorer, drag any file you need to edit to the desktop, edit it there, drag it back into the still-open zip, then close the zip.
I have been working on creating a pretty advanced GUI enabled database in Microsoft Access and am now in the implementation phase of my project.
My dream is to make an .exe file that will point to the actual .accdb database file (which will be hidden) as I cannot change the icon of the .accdb but will be able to modify the .exe's icon thus giving my implementation a more professional feel.
I'd prefer not to just create a shortcut to the .accdb and change that icon.
Through some quick digging, my plan was to create a .bat file that opens the .accdb and then use some online ".bat to .exe" converter to then add an icon to the .exe.
I can't figure out how to create a .bat file that opens my .accdb. I've tried a variety of different things like:
start "" C:\Program Files (x86)\CompassTrack "Science Department.accdb"
and other things that dont work.
It occurred to me that a .bat to .exe approach may not be the best way to do this. I don't particularily like the brief command prompt window appearance and would be open to any suggestions as to how to get a nice looking .exe file to open my .accdb.
If the best way really is a .bat file, I'd appreciate some help with the .bat file. The path to the file is C:\Program Files (x86)\CompassTrack\Science Department.accdb but for some reason every time, command prompt would return "Cannot find C:\Program "
Thanks in advance!
to change icon of an exe file using batch, look here
and to start your file use:
cd "C:\Program Files (x86)\CompassTrack"
start "" "Science Departement.accdb"
I believe you can just change the icon of your Access database. Go to Current Database (in recent versions under Office Button > Access Options) and the option is in there.
Here's a really simple C# program that you can compile into an exe very easily to if you have .NET 3.5 installed. it uses a utility called the command line compiler. You'll have to change the file path obviously.
using System;
using System.Windows.Forms;
using System.Diagnostics;
using System.IO;
public class App
{
public static void Main(string[] args)
{
Process myProcess = new Process();
myProcess.StartInfo.FileName = #"c:/your_file_path_goes_here/YourDB.accdb";
myProcess.Start();
}
}
You'll write the above to a text file with the extension .cs. Then create a batch file (a text file with the extension .bat) with this code.
#echo OFF
echo Compiling A File . . .
C:\WINDOWS\Microsoft.NET\Framework\v3.5\csc.exe /win32icon:_.ico /target:winexe /recurse:*.cs
echo.
#pause
Put these in the same dir as whatever icon you want to use, but make sure the icon is an iso file named _, as seen in the batch program. When you run the bat file, it will create the exe with the icon of your choice and it will simply launch the access database.
The feature and ability is part of the Access development system. Attempting to modify some .exe file etc. will not work.
I do suggest that you set the icon under file->options current database. It not clear why this is not working (perhaps start a new question to resolve that issue).
Keep in mind that if you deploy or change the resulting location, then you have to change the above “options” setting (manually, or by code – this much explain why your icon is not displaying – the path name cannot be relative – must be absolute.
ALSO select the box that says to use the icon for all forms and reports (this will give your application a MUCH more polished look. Since the .exe that actually runs your file is msacces.exe, then you can’t really change the application icon any other way. You see icons for the application AND ALSO forms like this "when" you set the application icon as per above:
So you WILL want to set the application icon. You then create a shortcut on your desktop. And again set the icon for that windows shortcut (it will nicely show up in the task bar with that icon).
The actual shortcut will look much like this:
"C:\Program Files (x86)\Microsoft Office\Office14\MSACCESS.EXE"
"c:\RidesDev\SkiRides\ RidesXP.accde" /runtime
The above shortcut will be on a single line (space between the two lines). The above is for Access 2010, so for 2013, then the folder is office15, and for 2016, it is office16 in above.
Also NOTE very important is the /runtime. This will ensure that the access icon NEVER shows during start-up.
Also, during start-up you will often see the MS Access splash logo during start-up. E.g. this:
You can replace this splash screen by placing a .bmp (picture) file in the SAME folder as the accDE with the same name.
So in above, if I place a RidesXMP.bmp picture file, then during start-up in place of the access splash screen, you see this:
Since you likely want the forms + reports icon to be custom, then the above makes the most sense. Your approach would ONLY give you a desktop icon, not one for the task bar, forms etc.
The above will result in hiding the access splash logo during start-up, and also apply an icon to all forms etc. I don’t suggest some approach that attempts to modify some .exe or some such – that’s likely to cause issues on customers computers. And using some .exe will not give you the icon for forms and repots.
Thank you for any/all help, I am a newbie at batch files but I am trying to find a way to create a batch file that I can install on my end users computer that will clear onenote cache they using resources when they leave their OneNote open for a significant amount of time since they pretty much use onenote all day for information documentation and retrieval. to get to it you would type in the run window onenote /safeboot, but I can't get a batch to do that and maybe it can't be done.
this is probably not a task for a batch file, but for a scheduled task (just use its wizard to create one). set it to run regularly however convenient to you, eg. at login, or at 12am.
This microsoft article indicates that the /safeboot switch opens Onenote in safe mode and in that mode the user can choose to clear the cache. It does not appear to be a Onenote option to clear the cache, though perhaps Autoit could be trained to do so.
It would appear that onenote /safeboot allows you to clear the cache, but it's a manual action to be taken. I'd suggest that unless Autoit can execute the clearing then exit, then random auto-execution may be a very bad idea.
The desktop shortcut is unhelpful in locating onenote.exe. Probably the best method is by executing, from the prompt,
dir /s onenote.exxe
I found my version (2010) at c:\Program Files (x86)\Microsoft Office\Office14\onenote.exe
Under these circumstances, a batch file
#ECHO OFF
SETLOCAL
"c:\Program Files (x86)\Microsoft Office\Office14\onenote.exe" /safeboot
GOTO :EOF
can start a Onenote instance, offering the clear cache option. This may be useful during start-up, but may be useful at any time if offered as a desktop icon, for instance as the first screen it presents is the clear-cache option. You might construct an icon with the same graphic, but running the batch file, for instance...
I am trying to open a .chm file.
I downloaded the source, extracted it, and double clicked on Waffle.chm and clicked "Open" but no matter what element in the chm file I click, I get the message:
Navigation to the webpage was canceled.
What you can try:
Retype the address.
What's going on here?
Summary
Microsoft Security Updates 896358 & 840315 block display of CHM file contents when opened from a network drive (or a UNC path). This is Windows' attempt to stop attack vectors for viruses/malware from infecting your computer and has blocked out the .chm file that draw data over the "InfoTech" protocol, which this chm file uses.
Microsoft's summary of the problem: http://support.microsoft.com/kb/896054
Solutions
If you are using Windows Server 2008, Windows 7, windows has created a quick fix. Right click the chm file, and you will get the "yourfile.chm Properties" dialog box, at the bottom, a button called "Unblock" appears. Click Unblock and press OK, and try to open the chm file again, it works correctly. This option is not available for earlier versions of Windows before WindowsXP (SP3).
Solve the problem by moving your chm file OFF the network drive. You may be unaware you are using a network drive, double check now: Right click your .chm file, click properties and look at the "location" field. If it starts with two backslashes like this: \\epicserver\blah\, then you are using a networked drive. So to fix it, Copy the chm file, and paste it into a local drive, like C:\ or E:. Then try to reopen the chm file, windows does not freak out.
Last resort, if you can't copy/move the file off the networked drive. If you must open it where it sits, and you are using a lesser version of windows like XP, Vista, ME or other, you will have to manually tell Windows not to freak out over this .chm file. HHReg (HTML Help Registration Utility) Utility Automates this Task. Basically you download the HHReg utility, load your .chm file, press OK, and it will create the necessary registry keys to tell Windows not to block it. For more info: http://www.winhelponline.com/blog/fix-cannot-view-chm-files-network-xp-2003-vista/
Windows 8 or 10? --> Upgrade to Windows XP.
"unblocking" the file fixes the problem. Screenshot:
Win 8 x64:
just move it to another folder or rename your folder (in my case: my folder was "c#").
avoid to use symbol on folder name. name it with letter.
done.
In addition to Eric Leschinski's answer, and because this is stackoverflow, a programmatical solution:
Windows uses hidden file forks to mark content as "downloaded". Truncating these unblocks the file. The name of the stream used for CHM's is "Zone.Identifier". One can access streams by appending :streamname when opening the file. (keep backups the first time, in case your RTL messes that up!)
In Delphi it would look like this:
var f : file;
begin
writeln('unblocking ',s);
assignfile(f,'some.chm:Zone.Identifier');
rewrite(f,1);
truncate(f);
closefile(f);
end;
I'm told that on non forked filesystems (like FAT32) there are hidden files, but I haven't gotten to the bottom of that yet.
P.s. Delphi's DeleteFile() should also recognize forks.
The definitive solution is to allow the InfoTech protocol to work in the intranet zone.
Add the following value to the registry and the problem should be solved:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000001
More info here: http://support.microsoft.com/kb/896054
Go to Start
Type regsvr32 hhctrl.ocx
You should get a success message like:
" DllRegisterServer in hhctrl.ocx succeeded "
Now try to open your CHM file again.
other way is to use different third party software. This link shows more third party software to view chm files...
I tried with SumatraPDF and it work fine.
I fixed this programmatically in my software, using C++ Builder.
Before I assign the CHM help file, Application->HelpFile = HelpFileName, I check to see if it contains the "Zone.Identifier" stream, and when it does, I simply remove it.
String ZIStream(HelpFileName + ":Zone.Identifier") ;
if (FileExists(ZIStream))
{ DeleteFile(ZIStream) ; }
There are apparently different levels of authentication. Most articles I read tell you to set the MaxAllowedZone to '1' which means that local machine zone and intranet zone are allowed but '4' allows access for 'all' zones.
For more info, read this article:
https://support.microsoft.com/en-us/kb/892675
This is how my registry looks (I wasn't sure it would work with the wild cards but it seems to work for me):
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"MaxAllowedZone"=dword:00000004
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\HTMLHelp\1.x\ItssRestrictions]
"UrlAllowList"="\\\\<network_path_root>;\\\\<network_path_root>\*;\\ies-inc.local;http://www.*;http://*;https://www.*;https://*;"
As an additional note, weirdly the "UrlAllowList" key was required to make this work on another PC but not my test one. It's probably not required at all but when I added it, it fixed the problem. The user may have not closed the original file or something like that. So just a consideration. I suggest try the least and test it, then add if needed. Once you confirm, you can deploy if needed. Good Luck!
Edit: P.S. Another method that worked was mapping the path to the network locally by using mklink /d (symbolic linking in Windows 7 or newer) but mapping a network drive letter (Z: for testing) did not work. Just food for thought and I did not have to 'Unblock' any files. Also the accepted 'Solution' did not resolve the issue for me.
Moving to local folder is the quickest solution, nothing else worked for me esp because I was not admin on my system (can't edit registery etc), which is a typical case in a work environment.
Create a folder in C:\help drive, lets call it help and copy the files there and open.
Do not copy to mydocuments or anywhere else, those locations are usually on network drive in office setup and will not work.