C# 自动翻页 PPT 测试脚本
本文告诉大家一个可以使用的 C# 脚本,可以用来自动打开 PPT 文件,然后不断执行翻页。每次翻页都截图。翻页之后自动关闭 PPT 再次打开
最近发现给 Office 做的插件,会在一定翻页次数的时候,就 gg 了,所以我就写了这样的脚本,小伙伴可以拿去用
编译下面的代码,然后将几个需要测试的 PPTX 文件放在编译出来的程序相同文件夹,双击运行这个程序就可以进行测试
class Program
{
static void Main(string[] args)
{
var guid = Guid.NewGuid().ToString("N");
for (int i = 1; i <= 10000; i++)
{
Process p = new Process();
//设置要启动的应用程序
p.StartInfo.FileName = "cmd.exe";
//是否使用操作系统shell启动
p.StartInfo.UseShellExecute = false;
// 接受来自调用程序的输入信息
p.StartInfo.RedirectStandardInput = true;
//输出信息
p.StartInfo.RedirectStandardOutput = true;
// 输出错误
p.StartInfo.RedirectStandardError = true;
//不显示程序窗口
p.StartInfo.CreateNoWindow = true;
Thread.Sleep(2000);
var directory = new DirectoryInfo($"第{i}次 {guid}");
directory.Create();
string pptFile = GetPPT();
Console.WriteLine("启动文件: " + pptFile);
Console.WriteLine(@"第 " + i + " 次启动:");
p.Start();
//向cmd窗口发送输入信息
Thread.Sleep(2000);
p.StandardInput.WriteLine("\"" + pptFile + "\"");
p.StandardInput.AutoFlush = true;
Console.WriteLine(@"开始启动客户端");
Thread.Sleep(10000);
//触发F5按键
keybd_event(116, 0, 0, 0);
// 翻多少页
for (int j = 1; j < 10; j++)
{
Thread.Sleep(2000);
keybd_event(vbKeyDown, 0, 0, 0);
Console.WriteLine(@"开始翻页");
// 翻一页截图
// 通过Graphics的CopyFromScreen方法把全屏图片的拷贝到我们定义好的一个和屏幕大小相同的空白图片中,
// 拷贝完成之后,CatchBmp就是全屏图片的拷贝了,然后指定为截图窗体背景图片就好了。
// 新建一个和屏幕大小相同的图片
Bitmap CatchBmp = new Bitmap(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height);
// 创建一个画板,让我们可以在画板上画图
// 这个画板也就是和屏幕大小一样大的图片
// 我们可以通过Graphics这个类在这个空白图片上画图
Graphics g = Graphics.FromImage(CatchBmp);
// 把屏幕图片拷贝到我们创建的空白图片 CatchBmp中
g.CopyFromScreen(new Point(0, 0), new Point(0, 0),
new Size(Screen.AllScreens[0].Bounds.Width, Screen.AllScreens[0].Bounds.Height));
var file = new FileInfo(Path.Combine(directory.FullName, $"{j}.png"));
var fileStream = new FileStream(file.FullName, FileMode.Create, FileAccess.Write);
using (fileStream)
{
CatchBmp.Save(fileStream, ImageFormat.Png);
CatchBmp.Dispose();
}
Console.WriteLine("保存截图" + file.FullName);
}
Thread.Sleep(2000);
keybd_event(18, 0, 0, 0);
keybd_event(115, 0, 0, 0);
keybd_event(18, 0, 2, 0);
keybd_event(115, 0, 2, 0);
Thread.Sleep(2000);
Console.WriteLine("干掉进程");
foreach (var temp in Process.GetProcesses())
{
try
{
if (temp.ProcessName.IndexOf("power", StringComparison.InvariantCultureIgnoreCase) >= 0)
{
temp.Kill();
}
}
catch (Exception e)
{
Console.WriteLine(e);
}
}
p.Kill();
}
}
private static string GetPPT()
{
var directory = new DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory);
var list = directory.GetFiles("*.pptx").ToList();
return list[_random.Next(list.Count)].FullName;
}
private static readonly Random _random = new Random();
[DllImport("user32.dll")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
public const byte vbKeyDown = 0x28; // DOWN ARROW 键
}
用这个脚本运行几天然后我就去看截图,就可以发现在翻到一定的页面,我的插件就 gg 了。在我修复之后再次运行这个脚本,发现没有 gg 于是就可以和微软说我修复了我的插件,再次上传
如何写 Office 插件,推荐陈希章的Office 365 开发概览系列
我搭建了自己的博客 https://blog.lindexi.com/ 欢迎大家访问,里面有很多新的博客。只有在我看到博客写成熟之后才会放在csdn或博客园,但是一旦发布了就不再更新
如果在博客看到有任何不懂的,欢迎交流,我搭建了 dotnet 职业技术学院 欢迎大家加入

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
C# 自动翻页 PPT 测试脚本的更多相关文章
- 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版!
转--http://www.2cto.com/kf/201402/277535.html 万能js实现翻页,动态生成内容自动翻页,兼容各种浏览器(已测试)----神器版! 2014-02-11 ...
- ViewPager实现自动翻页功能 --转载出处找不到了,根据自己的理解写个随笔方便以后的记忆以及代码的共享,感谢给我启发的那位高手--第一次写博客哈
xml文件 textview 用于显示图片的标题 viewpager 用于实现翻页效果 <LinearLayout xmlns:android="http://schemas.andr ...
- 10款无限滚动自动翻页jquery插件
2012年3月29日 无限滚动自动翻页可以说是web2.0时代的一项堪称伟大的技术,它让我们在浏览页面的时候只需要把滚动条拉到网页底部就能自动显示下一页的 结果,改变了一直以来只能通过点击下一页来翻页 ...
- pyspider示例代码五:实现自动翻页功能
实现自动翻页功能 示例代码一 #!/usr/bin/env python # -*- encoding: utf- -*- # Created on -- :: # Project: v2ex fro ...
- WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件
原文:WPF 把图片分割成两份自动翻页 WpfFlipPageControl:CtrlBook 书控件 版权声明:本文为博主原创文章,需要转载尽管转载. https://blog.csdn.net/z ...
- Python-爬虫之股转系统下载文件自动翻页
上次代码只能抓取一个网页上的链接,本次可以自主设定抓取的页面个数. 代码如下: from selenium import webdriver import os, time class Downloa ...
- C#图片采集软件 自动翻页 自动分类(收集美图必备工具)(一)
网站管理员希望将别人的整站数据下载到自己的网站里或者将别人网站的一些内容保存到自己的服务器上.从内容中抽取相关的字段,发布到自己的网站系统中.有时需要将网页相关的文件也保存到本地,如图片.附件等. 图 ...
- 使用Python在自己博客上进行自动翻页
先上一张代码及代码运行后的输出结果的图! 下面上代码: # coding=utf-8 import os import time from selenium import webdriver #打开火 ...
- store procedure 翻页
store procedure 翻页例子 .turn page CREATE PROCEDURE pageTest --用于翻页的测试 --需要把排序字段放在第一列 ( )=null, --当前页面里 ...
随机推荐
- @划水记@ THUWC2020 (?)
目录 @day -1@ @day 0@ @day 1@ @day 2@ @day 2+@ @day 3@ @day ?@ @day -1@ 听闻 THUWC 在 12 月举行的消息,突然就停了大概一周 ...
- codevs1506 传话
题目描述 Description 一个朋友网络,如果a认识b,那么如果a第一次收到某个消息,那么会把这个消息传给b,以及所有a认识的人. 如果a认识b,b不一定认识a. 所有人从1到n编号,给出所有“ ...
- MUI - 封装localStorage与plus.storage
MUI - 封装localStorage与plus.storage 2.0版本 在使用plus.storage频繁地存取数据时,可以感觉到明显的卡顿,而且很耗内存, 在切换到localstorage时 ...
- json,pickle模块
序列化 把对象从内存中编成可储存或传输的过程称之为序列化,输出为json串,.json文件 反序列化 把json串反编成Python数据类型 json模块 用于跨平台交互 json模块下不可转换集合( ...
- LeetCode120 Triangle
Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...
- React Native等比放大不丢失图片
9月11号 0.33版本,resizeMode中添加了center, 可以实现一样的功能.不过希望这篇文章还能帮助大家. 之前我们学习了从零学React Native之08Image组件 大家可以发现 ...
- python内置函数and匿名函数
一.内置函数 什什么是内置函数? 就是python给你提供的. 拿来直接⽤用的函数, 比如print., input等等. 截⽌止 到python版本3.6.2 python⼀一共提供了了68个内置函 ...
- maven 从svn导入项目遇到的问题 No marketplace entries found to handle yuicompressor maven plugin:1.3.0:compile
版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/25463825 RT.使用ecl ...
- 2019-7-20-win10-uwp-使用-msbuild-命令行编译-UWP-程序
title author date CreateTime categories win10 uwp 使用 msbuild 命令行编译 UWP 程序 lindexi 2019-07-20 21:56:2 ...
- golang gin框架 使用swagger生成api文档
github地址:https://github.com/swaggo/gin-swagger 1.下载swag $ go get -u github.com/swaggo/swag/cmd/swag ...