从WPS看中国国产软件的差距,真的不小

首先要表扬的,是WPS近几年进步很快,用户体验与OFFICE距离在拉近,也还买了4年的会员,主要用来做文件同步。

 

但近期做VSTO的开发,感觉到WPS与MS OFFICE的差距,真的还不小,需要国人继续努力。在此举个小例子(源代码见后,引用的是WPS专业版的库,MS-OFFICE一个也没有用):

1. 引用的库是WPS的WPP和WPS之OFFICE,但“WPP.Application objApp = new WPP.Application();”载入的,居然是microsoft powerpoint!WPS有偷用的嫌疑

2. 事件无法触发:objApp.SlideShowNextSlide += ObjApp_SlideShowNextSlide;

3.开发文档到处没有,少得可怜。MS-OFFICE国内多,GOOGLE上更是N多

===========================================

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using WPP=PowerPoint;
using KSO=Office;
namespace WPSTEST
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
ShowPresentation();
}

 

private void ShowPresentation()
{
try
{
String strTemplate;
strTemplate = @"D:\1.dps";// filepath;
//bool bAssistantOn;
WPP.Application objApp = new WPP.Application();


WPP.Presentations objPresSet;
WPP._Presentation objPres;
WPP.Slides objSlides;

WPP.SlideShowWindows objSSWs;
WPP.SlideShowSettings objSSS;
objApp.Visible = WPP.MsoTriState.msoTrue;// ;
objPresSet = objApp.Presentations;
objPres = objPresSet.Open(strTemplate, WPP.MsoTriState.msoFalse, WPP.MsoTriState .msoFalse ,
WPP.MsoTriState.msoTrue);
objApp.SlideShowNextSlide += ObjApp_SlideShowNextSlide;

objSlides = objPres.Slides;

//bAssistantOn = objApp.Assistant.On;
//objApp.Assistant.On = false;


objSSS = objPres.SlideShowSettings;
objSSS.StartingSlide = 1;
objSSS.EndingSlide = 3;
objSSS.LoopUntilStopped = WPP.MsoTriState.msoTrue;


objSSS.Run();
objSSWs = objApp.SlideShowWindows;

while (objSSWs.Count >= 1)

{

System.Threading.Thread.Sleep(100);

//改变某个值,使得PPt退出.

}


/*if (bAssistantOn)
{
//objApp.Assistant.On = true;
//objApp.Assistant.Visible = false;
}*/

objPres.Close();
objApp.Quit();
//KillProcess("POWERPNT");
}
catch (Exception ex)
{
string str = ex.ToString();
if (ex.ToString().Contains("PowerPoint could not open the file."))
{
MessageBox.Show("这个ppt文件不存在,请修改文件地址!", "异常");
}
//KillProcess("POWERPNT");
}
}

private void ObjApp_SlideShowNextSlide(WPP.SlideShowWindow Wn)
{
MessageBox.Show("test");
}
}
}

posted @ 2020-09-06 17:00  jasonjoe  阅读(581)  评论(0编辑  收藏  举报