我需要播放PowerPoint幻燈片,但首先我想檢查PowerPoint或查看器是否安裝在機器上。我怎樣才能使用.NET?如何檢查機器上是否安裝了PowerPoint或點閱讀器?
回答
這取決於您是否試圖判斷您是否可以查看演示文稿(* .ppt,* .pptx等)或是否可以訪問PowerPoint對象模型。
要檢查是否有PPT文件相關的處理,你可以做到以下幾點:
// using Microsoft.Win32;
private bool CheckPowerPointAssociation() {
var key = Registry.ClassesRoot.OpenSubKey(".ppt", false);
if (key != null) {
key.Close();
return true;
}
else {
return false;
}
}
if (CheckPowerPointAssociation()) {
Process.Start(pathToPPT);
}
要檢查的PowerPoint COM對象模型是否可用,您可以檢查以下注冊表項。
// using Microsoft.Win32;
private bool CheckPowerPointAutomation() {
var key = Registry.ClassesRoot.OpenSubKey("PowerPoint.Application", false);
if (key != null) {
key.Close();
return true;
}
else {
return false;
}
}
if (CheckPowerPointAutomation()) {
var powerPointApp = new Microsoft.Office.Interop.PowerPoint.Application();
....
}
但是,請注意,在這兩種情況下,它只會給你一個很好的指示PowerPoint的可用性。例如,卸載可能沒有完全刪除所有的痕跡。另外,根據我的經驗,銷售Outlook插件多年來,我看到某些防病毒程序會干擾COM對象模型,以防止惡意腳本的攻擊。所以在任何情況下,都要有可靠的錯誤處理。
希望這會有所幫助!
事情隨Office 2013發生了變化。如果用戶從未安裝過以前版本的Office,則該註冊表項是PowerPoint 2013的「PowerPoint.Application.15」。我現在仍然在尋找解決此問題的良好解決方案,即Microsoft更改了註冊表項名稱。 – 2014-09-30 15:05:45
雖然我沒有一個「乾淨」的系統來驗證,但我只是說這似乎不太可能。總是存在特定於版本的ProgID(即PowerPoint.Application.15)和非特定於版本的ProgID(PowerPoint.Application),它們都指向相同的CLSID。 – Josh 2014-10-01 20:29:40
或許。我支持我們產品的使用者,他與我分享他的屏幕,以便我可以自己檢查他的註冊表。我們的測試看PPT是否安裝失敗,因爲沒有「PowerPoint.Application」鍵。該用戶似乎沒有將他的Office註冊表條目弄亂的類型。我很想知道我錯了。 – 2014-10-02 21:41:27
我不確定這是做到這一點的正確方法。但你可以使用這個
try
{
//It will throw a WIN32 Exception if there is no associated
//application available to open the file.
Process p = Process.Start("C:\\Sample.pptx");
}
catch (Win32Exception ex)
{
MessageBox.Show("Powerpoint or Powerpoint viewer not installed\n");
}
我認爲在引發錯誤時構建你的邏輯並不是最好的解決方案。 – 2010-01-02 10:18:43
我同意你的意見。 – Anuraj 2010-01-02 10:20:09
HKEY_CLASSES_ROOT \ MSPowerPoint \協議\ StdFileEditing \服務器
這關鍵是PowerPoint和點到安裝目錄爲可執行文件運行PowerPoint都安裝相同。在檢測此產品是否已安裝時非常適用,並且在安裝未使用默認設置時很適合計算安裝Office產品的文件夾。
事情隨Office 2013發生了變化。似乎如果用戶從未安裝Office的以前版本,則註冊表項是「ms-powerpoint」而不是「MSPowerPoint」。 – 2014-09-30 15:08:18
- 1. 檢查是否安裝了福昕閱讀器?
- 2. Webbrowser,檢測是否安裝了PDF閱讀器?
- 3. 如何檢查瀏覽器上是否安裝了Macromedia Flash Player?
- 4. 如何檢查mysql是否安裝在linux機器上?
- 5. 檢測客戶端是否安裝了任何類型的PDF閱讀器
- 6. 如何檢查我的機器上是否安裝了IPython以及安裝這些庫的順序是什麼?
- 7. 如何使用php檢測機器是否安裝了oracle(oci8和/或pdo_oci)?
- 8. PHP Powerpoint閱讀器
- 9. 如何檢查wheather mysql是否安裝在mac機器中?
- 10. 檢查機器上是否已安裝Tomcat和MySQL
- 11. 如何檢查PDF閱讀器安裝Java
- 12. 如何檢測是否在linux機器上安裝了tomcat和ant
- 13. 檢查PHP是否安裝在Apache或IIS服務器上?
- 14. 如何檢查Flash播放器是否安裝在Android上
- 15. 如何檢查PEAR是否安裝在我的服務器上?
- 16. 檢查計算機上是否安裝了Microsoft Security Essentials
- 17. 檢查計算機上是否安裝了磁帶庫
- 18. 如何檢查是否安裝了SQL Server 2005或2008
- 19. 如何檢查是否安裝了PowerShell或不使用C#
- 20. 是否可以檢查瀏覽器(JS)上是否安裝了擴展?
- 21. Deeplearning4j:如何知道我的Windows機器上是否安裝了INTEL編譯器?
- 22. Java或.net或註冊表檢測是否安裝了pdf查看器?
- 23. 如何檢查Windows CE上是否安裝了SQL Server CE
- 24. 如何檢查Windows系統上是否安裝了程序
- 25. 如何檢查我的電腦上是否安裝了mongodb
- 26. 安裝PDF閱讀器
- 27. 我是否只需要檢查用戶機器是否安裝了我的python安裝版本的MSVCR90.dll?
- 28. 如何檢查您的手機上是否安裝了應用程序?
- 29. 如何檢測瀏覽器中是否安裝了小書籤?
- 30. 檢查瀏覽器是否安裝了Silverlight插件
你的意思是包括可以打開powerpoint的開放式辦公室或其他程序嗎? – 2010-01-02 10:10:52
你喜歡asp.net還是c#.net給出明確的信息 – ratty 2010-01-02 10:24:37