自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(57)
  • 资源 (1)
  • 收藏
  • 关注

原创 Windows 检测PPT WPS 幻灯片播放并获取窗口句柄

需求背景:应用投屏时,选择了PPT窗口进行投屏后,如果此时用户点击了播放幻灯片,此时是创建了一个新的窗口,此时远端播放的还是之前的窗口。需求:播放后需要切换到PPT幻灯片放映窗口实现步骤:1、区分PPT幻灯片放映窗口和编辑窗口PPT编辑窗口PPT放映窗口exe名称wpp.exe(wps)wpp.exe(wps)窗口属性WS_POPUP 无控制按钮窗口标题1.pptx - WPS 演示(wps)WPS演示 幻灯片放映 - [1.pptx] (WPS)

2020-05-15 16:16:03 1859 3

原创 C++ listener回调

#pragma once#include <functional>#include <memory>#include <string>namespace test { class IListener { public: virtual ~IListener() = default; public: ...

2019-11-27 14:52:57 1050

原创 Linux APPImage打包后遇到的坑

1、遇到的问题1、打包后的appimage双击运行时QLocalServer单例未生效2、修复单例问题后,启动时有两个进程,下一个应用运行后只退出了一个进程,又新增了两个进程2、解决方案问题1: 猜测和appimage机制有关,查看官方文档上有一段说明是不能使用绝对路径,查看QLocalServer文档介绍说在windows上 是管道实现,linux上是文件实现,此时就猜测是QLoca...

2019-11-17 11:14:26 1476 1

原创 windows上Bonjour服务发布的一些坑

windows上Bonjour服务发布的一些坑1.遇到的问题单独发布信息从某个网卡上出去后,会出现自动消失,并且有时会跑到另外一张网卡上DNSServiceRegister注册服务时回调一直未触发2.解决方案dnssd.exe它可以监听到服务的Add和Rmv源码中使用的是DNSServiceBrowse因此可以使用DNSServiceBrowse先监听本地要发布的服务,监听到后再判断...

2019-11-17 10:18:34 1593

原创 STL Commom Type

template <typename T1,template T2>??? min(const T1& x, const T2& y);如何知道返回类型template <typename T1,typename T2>typename std::common_type<T1,T2>::type min (const T1& x...

2019-11-11 21:11:30 307

原创 Linux deepin debus命令

1、软件盘操作function showKeyboard() { return execCommand('dbus-send --type=method_call --print-reply --dest=org.onboard.Onboard /org/onboard/Onboard/Keyboard org.onboard.Onboard.Keyboard.Show');}func...

2019-11-11 11:09:19 929

原创 装饰者、适配器、外观模式意图

1、装饰者2、适配器3、外观a.将一个接口转成另一个接口b.不改变接口,但加入责任c.让接口更简单

2019-11-08 16:49:19 167

原创 设计模式——外观模式

1、定义隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。2、场景1、为复杂的模块或子系统提供外界访问的模块。2、子系统相对独立。3、预防低水平人员带来的风险。3、优缺点优点: 1、减少系统相互依赖。...

2019-11-08 16:45:36 103

原创 设计模式——适配器模式

1、定义将一个类的接口转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间一般分为对象适配器和类适配器我喜欢的样子你都有你喜欢的样子我有没有没有的话,我送你个适配器,好吗适配器模式是在现有的类和系统都不易修改的情况下使用,在系统设计之初慎用适配器模式。2、对象适配器和类适配器的优缺点类适配器的优点:1、由于适配器类是适配者类的子类,因此可以再适配器类中置换一些适配者...

2019-11-08 16:27:32 193

原创 装饰者模式

1、什么是装饰者模式?动态地将责任附加到对象上。若要扩展功能,装饰者提供了比继承更有弹性的替代方案。2、优缺点优点a、在不影响其他对象的情况下,以动态、透明的方式给单个对象添加职责b、需要动态地给一个对象增加功能,这些功能也可以动态地被撤销。c、当不能采用继承的方式对系统进行扩充或者采用继承不利于系统扩展和维护时缺点a、由于使用装饰模式,可以比使用继承关系需要较少数目的类。使用较少...

2019-11-08 15:47:16 85

原创 deepin下flatpak 操作

我使用的是deepin15.10.1版本,刚开始装的flatpak一直是0.8.9版本,使用官方的命令一直无法调通,需要添加stretch-backports源,可以更新到1.2.4版。Install a runtime and the matching SDKsudo apt install flatpak flatpak-builder deepin-fprt-com.deepin.pl...

2019-07-01 14:48:58 2431

原创 Linux下拦截键盘消息并选择发送按键消息

#include <stdio.h>#include <X11/Xlib.h>#include <X11/Xutil.h>#include <X11/keysym.h>#include <thread>#include <unistd.h>XKeyEvent createKeyEvent(Display *dis...

2019-07-01 11:15:46 2243

原创 Linux下根据网卡vid和pid查找网卡ip地址

#ifndef ETC_UTIL_H#define ETC_UTIL_H#include <string>#include <memory>namespace maxhub {class EthUtil {public: explicit EthUtil(); ~EthUtil();public: std::string Get...

2019-07-01 09:59:47 1687

原创 deepin的15.10 stable版本上安装最新版flatpak

deepin的15.10 stable的faltpak版本低,导致不少软件无法安装添加stretch-backports源human@debian:~$ suPassword:debian:/home/human# nano /etc/apt/sources.list增加以下几行:# Backports 仓库deb http://deb.debian.org/debian stret...

2019-07-01 09:52:32 1187

原创 通配符匹配算法

通配符匹配算法要求:1,a?b,查找以a开始,b结尾中间为任意字符的子串出现的次数2.?和的位置可以在前,后或者中间可以有任意多个,可以相互组合3.起始位置不同的匹配视为两次不同的匹配,例如,a?b aabbacbc 结果为3,aa aaa结果为24.起始位置相同的匹配,视为一次匹配,例如 ab abbAcbc 结果为15.?表示任意单个字符,任意位置可以是多个也可...

2019-04-13 10:52:02 2309

原创 wpf 二维码加载动画

private void QrCodeLoading(ImageWidget imageWidget) { storyboard = new Storyboard(); TransformGroup group = new TransformGroup(); group.Children.Add(new

2017-09-18 17:23:09 572

原创 C# 初步学习LINQ

匿名类型new {FieldProp=InitExpr,FieldProp=InitExpr,...}var student=new{Name="Mary Jones",Age=19,Major="History"};查询表达式由查询体后的from子句组成。有关查询表达式需要了解一些重要事项:from s in studentsjoin c in studentsInCourses on s.St

2017-08-04 23:18:40 293

原创 C# 初步学习线程

static void Main(string[] args) { Thread t = new Thread(PrintNumbersWithDelay); t.Start(); PrintNumbers(); Console.ReadKey(); } st

2017-07-31 10:07:05 235

原创 C#序列化与反序列化

1、BinaryFormatter进行串行化[Serializable] public class ClassToSerialize { public int Id = 100; public string Name = "Name"; [NonSerialized] public string Sex = "男";

2017-07-31 09:57:09 216

原创 C# interface(接口)

接口就是一组抽象成员的命名集合。 1.接口成员不能指定访问修饰符,所有接口成员都是隐式公共的和抽象的。 2.接口以大写“I”作为前缀 3.接口中可以有属性、方法、事件、索引器可通过as来获取接口引用A a = new A();IA iA = a as IA;if(iA != null){}else{}可以用is来检查是否实现一个接口A a = new A();if(a is IA)

2017-07-25 12:44:28 368

原创 C# async和await

internal class Class1 { public Class1() { DisplayValue(); //这里不会阻塞 Console.WriteLine("MyClass() End."); } public Task<double> GetValueAsync(

2017-07-25 10:54:44 434

原创 C# 定时器理解

定时器分为单线程定时器和多线程定时器: 1.单线程定时器 winform中使用System.Windows.Forms.Timer ; wpf中使用System.Windows.Threading.DispatcherTimer; 特点是: 单线程定时器,线程安全;运行在UI线程,可直接更新UI画面;执行效率不高,适用于小任务。一般不能执行IO,网络请求等耗时操作,否则阻碍UI线程,界面卡

2017-07-25 09:50:27 663

原创 WPF 初步使用Binding

创建一个绑定类,实现INotifyPropertyChanged接口:public class NotifyPropertyChange : INotifyPropertyChanged { #region INotifyPropertyChanged 成员 public event PropertyChangedEventHandler PropertyCha

2017-07-24 09:22:55 334

转载 挂起某个进程中所有线程的方法

//windows核心编程 第5版中的一段代码 /* 函数功能:挂起进程中的所有线程 参数1:进程ID 参数2:若为TRUE时对进程中的所有线程调用SuspendThread,挂起线程 若为FALSE时对进程中的所有线程调用ResumeThread,恢复线程 */ VOID SuspendProcess(DWORD dwProcessID, BOOL fSuspend)

2016-11-14 10:36:36 3522

原创 C/C++ char或byte数组转化为int或int数组

char string[6];string[0] = 1;string[1] = 1;string[2] = 1;string[3] = 1;string[4] = 1;string[5] = 1;string[6] = 1;string[7] = 1;//char数组转化为int数组int* b = (int *)string; printf("%d\n",b[0]);

2016-09-14 09:46:08 11534

原创 C++ Socket 一个服务器 多个客户端 (阻塞式)

服务端 ServerNet.h#pragma once#include <stdio.h>#include <winsock.h>#include<vector>#include<iterator>#include<iostream>#include <algorithm>#include<map>#include<string>using namespace std;#prag

2016-08-11 21:47:45 9807 2

原创 C++DLL导出类(快排,堆排,插入排序,选择排序,冒泡排序)

sort.h#ifndef SORT_H#define SORT_H#ifdef DLL_FILE class __declspec(dllexport) sort#else class __declspec(dllimport) sort#endif { public: int MaoPaoSort(int *R,int len);

2016-04-25 22:14:04 424

原创 c++静态链接库和动态链接库的创建和调用

先说静态库。 比较简单。 一般是项目,静态库,工程。选静态库,空项目。预编译头去掉。 头文件定义函数: hello.h #pragma once int Add(int op1,int op2);hello.cpp #include "hello.h"int Add(int op1,int op2) { return (op1+op2); 另建一个工程 LibMain.c

2016-04-24 18:22:13 1046

转载 稳定排序与不稳定排序方法

这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然如果你笔试之前已经记住了数据结构书上哪些是稳定的,哪些不是稳定的,做起来应该可以轻松搞定。本文是针对老是记不住这个或者想真正明白到底为什么是稳定或者不稳定的人准备的。 首先,排序算法的稳定性大家应该都知道,通俗地讲就是能保证排序前2个相等的数其在序列的前

2016-04-23 22:28:01 900

原创 堆排序

sift_sort.h #include<iostream>using namespace std;template <class T>int getArrayLen(T& array)//使用模板定义一 个函数getArrayLen,该函数将返回数组array的长度{ return (sizeof(array) / sizeof(array[0]));}template<cla

2016-04-23 21:57:45 180

原创 选择排序C++

#include<iostream>using namespace std;template <class T>int getArrayLen(T& array)//使用模板定义一 个函数getArrayLen,该函数将返回数组array的长度{ return (sizeof(array) / sizeof(array[0]));}template<class T>void S

2016-04-22 17:12:45 205

原创 冒泡排序学习文档

#include<iostream>using namespace std;template <class T>int getArrayLen(T& array)//使用模板定义一 个函数getArrayLen,该函数将返回数组array的长度{ return (sizeof(array) / sizeof(array[0]));}template<class T>void Ma

2016-04-22 16:40:09 296

原创 快速排序算法

#include<iostream>using namespace std;template <class T>int getArrayLen(T& array)//使用模板定义一 个函数getArrayLen,该函数将返回数组array的长度{ return (sizeof(array) / sizeof(array[0]));}void Sort(int *a,int s,i

2016-04-22 13:56:50 184

原创 c# 委托学习文档

我认为委托就是一个方法的集合队列using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace learn_4_21_12_39{ delegate void MyDel(int value);//声明委托类型 class Program {

2016-04-21 17:13:55 203

原创 分机号

标题:分机号X老板脾气古怪,他们公司的电话分机号都是3位数,老板规定,所有号码必须是降序排列,且不能有重复的数位。比如:751,520,321 都满足要求,而, 766,918,201 就不符合要求。现在请你计算一下,按照这样的规定,一共有多少个可用的3位分机号码?请直接提交该数字,不要填写任何多余的内容。#include<iostream>using namespace std;int f(

2016-04-19 21:57:17 1216

原创 取球游戏

今盒子里有n个小球,A、B两人轮流从盒中取球,每个人都可以看到另一个人取了多少个,也可以看到盒中还剩下多少个,并且两人都很聪明,不会做出错误的判断。我们约定:每个人从盒子中取出的球的数目必须是:1,3,7或者8个。轮到某一方取球时不能弃权!A先取球,然后双方交替取球,直到取完。被迫拿到最后一个球的一方为负方(输方)请编程确定出在双方都不判断失误的情况下,对于特定的初始球数,A是否能赢?程序运行时,

2016-04-19 21:36:02 261

原创 夺冠概率

足球比赛具有一定程度的偶然性,弱队也有战胜强队的可能。假设有甲、乙、丙、丁四个球队。根据他们过去比赛的成绩,得出每个队与另一个队对阵时取胜的概率表:甲 乙 丙 丁 甲 - 0.1 0.3 0.5 乙 0.9 - 0.7 0.4 丙 0.7 0.3 - 0.2 丁 0.5 0.6 0.8 -数据含义:甲对乙的取胜概率为0.1,丙对乙的胜率为0.3,...现在要举

2016-04-19 21:35:03 363

原创 密码发生器

在对银行账户等重要权限设置密码的时候,我们常常遇到这样的烦恼:如果为了好记用生日吧,容易被破解,不安全;如果设置不好记的密码,又担心自己也会忘记;如果写在纸上,担心纸张被别人发现或弄丢了...这个程序的任务就是把一串拼音字母转换为6位数字(密码)。我们可以使用任何好记的拼音串(比如名字,王喜明,就写:wangximing)作为输入,程序输出6位数字。变换的过程如下:第一步. 把字符串6个一组折叠起来

2016-04-19 21:33:49 263

原创 放棋子

#include<iostream>using namespace std;int N = 0;bool CheckStoneNum(int x[][6]){ for(int k=0; k<6; k++) { int NumRow = 0; int NumCol = 0; for(int i=0; i<6; i++)

2016-04-19 21:32:03 253

原创 大数乘法

#include<iostream>using namespace std;void bigmul(int x, int y, int r[]){ int base = 10000; int x2 = x / base; int x1 = x % base; int y2 = y / base; int y1 = y % base; int n

2016-04-19 21:30:28 208

C#启动外部程序框架源码(树形结构可配置)

C#启动外部程序框架源码(树形结构可配置)

2016-08-13

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除