Microsoft Knowledge Base Article
This article contents is Microsoft Copyrighted material.
©2005-©2007 Microsoft Corporation. All rights reserved.
Terms
of Use |
Trademarks
Article ID: 234788 - Last Review: May 7, 2012 - Revision: 9.0
How to find the installation path of an Office application
This article was previously published under Q234788
This article demonstrates how to use the Windows Installer
to find the installation path of Microsoft Office applications.
Versions of Microsoft Office greater than 2000 do not include path information in the shortcut links when installed. This is done so that the "Run on First Use" option can be used. When this option is used, the shortcuts will appear, but the applications will not be installed on the hard disk. When you click on the shortcut for the first time, the applications will be installed.
You can use the Windows Installer to get the path of
the installed Office 2000 application. Follow the steps given below to create a
console application that reports the directory of an installed Office
application.
Building the Sample
- Create a blank console application in Visual
C++.
- Create a new file called main.cpp and paste the following code in the code window.
#include <windows.h>
#include <msi.h>
#include <ostream.h>
const char *Word = "{CC29E963-7BC2-11D1-A921-00A0C91E2AA2}";
const char *Excel = "{CC29E96F-7BC2-11D1-A921-00A0C91E2AA2}";
const char *PowerPoint = "{CC29E94B-7BC2-11D1-A921-00A0C91E2AA2}";
const char *Access = "{CC29E967-7BC2-11D1-A921-00A0C91E2AA2}";
const char *Office = "{00000409-78E1-11D2-B60F-006097C998E7}";
int main(void)
{
DWORD size = 300;
INSTALLSTATE installstate;
char *sPath;
sPath = new char[size];
installstate = MsiLocateComponent(Word,sPath,&size);
if ((installstate == INSTALLSTATE_LOCAL) ||
(installstate == INSTALLSTATE_SOURCE))
cout << "Installed in: " << sPath << endl;
delete sPath;
return 0;
} - Click the Project menu and then click Settings to bring up the project settings dialog box.
- Click the Link tab and add msi.lib in the list of Object/library modules.
- Run the program. It will display the file path where
Microsoft Word is installed.
NOTE: Included in the code are the GUIDS associated with Word, Excel,
PowerPoint and Access. To find the path for another Office application, pass in
the name of the application as the second parameter of the MsiGetComponentPath
function.
To find the path of an Office XP application, replace the
constants above with the following.
const char *Word = "{8E46FEFA-D973-6294-B305-E968CEDFFCB9}";
const char *Excel = "{5572D282-F5E5-11D3-A8E8-0060083FD8D3}";
const char *PowerPoint = "{FC780C4C-F066-40E0-B720-DA0F779B81A9}";
const char *Access = "{CC29E967-7BC2-11D1-A921-00A0C91E2AA3}";
const char *Office = "{20280409-6000-11D3-8CFE-0050048383C9}";
To find the path of an Office 2003 application, replace the constants
above with the following.
const char *Word = "{1EBDE4BC-9A51-4630-B541-2561FA45CCC5}";
const char *Excel = "{A2B280D4-20FB-4720-99F7-40C09FBCE10A}";
const char *PowerPoint = "{C86C0B92-63C0-4E35-8605-281275C21F97}";
const char *Access = "{F2D782F8-6B14-4FA4-8FBA-565CDDB9B2A8}";
const char *Office = "{90110409-6000-11D3-8CFE-0150048383C9}";
To find the path of a 2007 Office application, replace the constants
above with the following.
const char *Word = "{0638C49D-BB8B-4CD1-B191-051E8F325736}";
const char *Excel = "{0638C49D-BB8B-4CD1-B191-052E8F325736}";
const char *PowerPoint = "{0638C49D-BB8B-4CD1-B191-053E8F325736}";
const char *Access = "{0638C49D-BB8B-4CD1-B191-054E8F325736}";
const char *Office = "{0638C49D-BB8B-4CD1-B191-050E8F325736}";
To find the path of a 32-bit Office 2010 application, replace the constants
above with the following.
const char *Word = "{019C826E-445A-4649-A5B0-0BF08FCC4EEE}";
const char *Excel = "{538F6C89-2AD5-4006-8154-C6670774E980}";
const char *PowerPoint = "{E72E0D20-0D63-438B-BC71-92AB9F9E8B54}";
const char *Access = "{AE393348-E564-4894-B8C5-EBBC5E72EFC6}";
const char *Office = "{398E906A-826B-48DD-9791-549C649CACE5}";
To find the path of a 64-bit Office 2010 application, replace the constants
above with the following.
const char *Word = "{C0AC079D-A84B-4CBD-8DBA-F1BB44146899}";
const char *Excel = "{8B1BF0B4-A1CA-4656-AA46-D11C50BC55A4}";
const char *PowerPoint = "{EE8D8E0A-D905-401D-9BC3-0D20156D5E30}";
const char *Access = "{02F5CBEC-E7B5-4FC1-BD72-6043152BD1D4}";
const char *Office = "{E6AC97ED-6651-4C00-A8FE-790DB0485859}";
You can download the Windows Installer SDK, which includes
the MSI.LIB file, from:
For more information on Office Automation, please visit the
Microsoft Office Development support site at:
Note This is a "FAST PUBLISH" article created directly from within the Microsoft support organization. The information contained herein is provided as-is in response to emerging issues. As a result of the speed in making it available, the materials may include typographical errors and may be revised at any time without notice. See
Terms of Use
(http://go.microsoft.com/fwlink/?LinkId=151500)
for other considerations.
APPLIES TO
- Microsoft Office Access 2007
- Microsoft Office Excel 2007
- Microsoft Office PowerPoint 2007
- Microsoft Office Word 2007
- Microsoft Office Access 2003
- Microsoft Office PowerPoint 2003
- Microsoft Access 2002 Standard Edition
- Microsoft Excel 2002 Standard Edition
- Microsoft PowerPoint 2002 Standard Edition
- Microsoft Word 2002
- Microsoft Access 2000 Standard Edition
- Microsoft Excel 2000 Standard Edition
- Microsoft PowerPoint 2000 Standard Edition
- Microsoft Word 2000
- Microsoft Word 2010
- Microsoft Excel 2010
- Microsoft PowerPoint 2010
- Microsoft Access 2010
- Microsoft Office Professional 2010
Community Feedback System
Very often, it takes hours to solve a problem. Very often, you've looked high
and low, and have tried a lot of solutions. When you finally found it, chances
are, it was because someone else helped you. Here's your chance to give back.
Use our community feedback tool to let others know what worked for you and what
didn't.
Please also understand that the community feedback system is not warranted to be
correct, it's simply a system that we've built to let people try and help each
other. If something in a feedback response doesn't make sense to you, or you're
not comfortable making changes that the feedback talks about (like registry
edits), please consult a professional.
Thank you for using kbAlertz.com Feedback System.
-- Scott Cate