- 博客(31)
- 收藏
- 关注
原创 一场因为新需求引发的填坑——IE书签排序信息的读取
引用Github Chromium 项目起因需求是这样的:需要将IE中的全部书签同步到Edge,并且保留IE中的特定顺序。(PS:不知道为什么,现在还有人有同步IE书签的需求????)因为原始的项目代码是个缝合怪, 程序的本地是基于WPF,一部分书签合并的逻辑在WPF这,另一部分读取IE书签及顺序的代码在一个C++写的Dll中, 还有个一部分调用了另外的C++库来处理一些借口。接手到这个代码之后,发现真是一层套一层,一环连一环,真像一个中国结 ????,所以 就动手把所有逻辑用C# 重写了。分析
2021-01-19 22:34:11
164
原创 一场因为想偷懒引发的那些事——C#调用COM的一个进阶使用方式
起因在那天,那群,有那么一人,问了关于一个封装后的一个COM接口库的问题,继而引发出了以下一系列问题。Introduction在上一篇中说了delegate* 这个神奇的函数指针,这个是C# 9.0 中添加的新的语法,可以参考这里C# 9.0。简单的来说就是通过使用delegate*,可以很方便的调用IL中的ldftn 和 calli指令,调用delegate*会使用calli指令。通过使用delegate* 可以非常方便的调用COM接口返回过来的虚函数表中的方法,而不用像之前要使用Emit等一系
2020-12-27 17:31:32
168
原创 一场因为想偷懒引发的那些事——记C# Com接口调用的相关姿势
起因在那天,那群,有那么一人,问了关于一个封装后的一个COM接口库的问题,继而引发出了以下一系列问题。Introduction在Windows 中想对Shell做一些操作的话,肯定是绕不开COM的,比如:获取资源管理器中某个文件的邮件菜单、对某个文件的右键菜单进行扩充等。既然这样就绕不开通过C# 对COM对象的一些调用了,首先,用之前说过的一个Win32 API来举例:[DllImport("Shell32.dll")]public extern static int SHCreateItemF
2020-12-15 21:41:37
301
原创 一场因为想偷懒引发的那些事——WinDbg的简单用法
参考&&引用SOS installerdds, dps, dqs (Display Words and Symbols)SOS.dll (SOS debugging extension)起因在那天,那群,有那么一人,问了关于一个封装后的一个COM接口库的问题,继而引发出了以下一系列问题。前期须知本次用到的几个Windbg命令如下:.chain 查看Windbg 加载的扩展.load 加载新的扩展到Windbg,通常使用为 .load xxxxxx 启动xxx为包含Dll名
2020-12-13 17:56:02
188
原创 一场因为想偷懒引发的那些事——COM的那些事2
参考&&引用What Is a COM Interface?Creating an Object in COM这是一个开头上一篇大概写了一下COM 接口的结构、布局,这次就简短的说一下怎么创建一个COM的对象。创建一个COM 对象主要有两种方式:使用公开的方法。使用 CoCreateInstance 这个通用创建方法。因为我喜欢吃柚子 ,所以就拿水果来举个例子,例如叫IFruit。下面就可以开始创建水果这个对象的过程了。使用方法一一般来说使用这种方式都会有一个方法 例
2020-12-06 17:02:07
125
原创 一场因为想偷懒引发的那些事——COM的那些事1
参考&&引用The layout of a COM objectAdjustor thunksWhat Is a COM Interface?起因在那天,那群,有那么一人,问了关于一个封装后的一个COM接口库的问题,继而引发出了以下一系列问题。一些引子COM(Component Object Model)一个Winodws在很久之前提出的用于不同应用之间的组件复用模型,简单来说COM有点像C#里的interface。不同应用不管用的是C、C++、Java、C#,不用知道这个组
2020-11-28 22:09:13
165
原创 一场因为想偷懒引发的那些事——结构体的一些事
问题如果有这么一段代码 struct S { public int V1; } class A { public S SS{get;set;} } static void Main(string[] args) { var a = new A(); a.SS.V1 =
2020-11-28 15:44:26
130
原创 CEF 无法自动播放视频的问题
问题在WPF上用CefSharp 做Youtube 播放的时候发现,在新版CefSharp 中,YouTube 播放器的playVedio方法在载入的时候无法调用,根据相关API调用无法自动播放,但是通过用户点击或者控制台输入之后调用均无问题。原因经过调查,是在Chromium 66之后新添加了 Autoplay Policy,该政策行为如下:允许静音自动播放。在桌面客户端上,用户 Media Engagement Index 达到一定门口(就是用户之前开启声音播放过此视频)。顶级的 Fram
2020-11-12 22:35:39
3501
原创 C# 使用 Core Audio APIs 获取音频设备信息
1. 开头最一开始写这个的目的是为了控制播放和输出设备的音量,开启静音等。但是,在使用C#调用Com的时候发现了一个神奇的事情。// IMMDeviceEnumerator 为接口IMMDeviceEnumerator mMDeviceEnumerator = new IMMDeviceEnumerator();没错,可以实例化一个接口?神奇的操作????。所以,这篇的主要目的是写为什么可以实例化一个接口这么神奇的操作。想看实现获取音频设备列表 代码的直接看 下面, 想看为什么能实例化一个接口
2020-08-29 14:51:14
2526
2
原创 C# 使用Linq 获取一个数组的全排序
C# 使用Linq 获取一个数组的全排序问题代码问题给一个数组,例如{1, 2, 3},此数组的全排序为{1,2,3},{3,2,1},{2,3,1},{3,1,2},{1,3,2},{2,1,3}。代码 static List<List<int>> Fuck(List<int> vs) { if (vs.Cou...
2020-04-23 19:19:08
1060
原创 C#利用服务创建具有System权限指定Session的进程
1. 起因因为需要在锁屏界面和UAC界面搞点事情,经过测试,发现锁屏和系统弹出UAC 均是切换到了Windows 的安全桌面,一般Windows在启动后(这里说的Windows指的是Vista之后的)会有一个Default和一个安全桌面。这里的Default 就是普通程序运行的桌面,在弹出UAC 或者 锁屏的时候Windows则会自动切换到 安全桌面,不同桌面的消息等是隔离的。Windows...
2020-04-19 16:09:26
1093
原创 C# 检测Windows 是否锁屏
近来要实现程序查询Windows是否处于锁屏状态,没找到直接查询是否锁屏的API,通过Google 找到了在C++实现的查询Windows是否锁屏的代码,地址为:C++: check if computer is locked之后使用C#通过P/Invoke对相关API进行了一下使用测试,相关代码如下:1.准备首先是需要使用的三个Win32 API接口 [DllIm...
2019-10-14 20:30:40
3351
2
原创 关于LNK2019 无法解析的外部符号 capCreateCaptureWindowW,该符号在函数 main 中被引用 错误
在使用Vfw.h头文件的capCreateCaptureWindowW 函数时编译的时候报错:严重性 代码 说明 项目 文件 行 禁止显示状态错误 LNK2019 无法解析的外部符号 capCreateCaptureWindowW,该符号在函数 main 中被引用 WinCamera 问题发现时少了该函数库的引用,在头文件下添加:#pragma comment(lib, "V...
2019-09-10 14:20:56
704
1
原创 摸索Detours 3:使用Detours 采用dll 方式进行Hook
1.准备工作新建一个DLL项目,当然 依旧是要按照前面所说的配置一下包含目录和库目录。然后就可以开始了。2.开始,注入用Dll使用DLL进行Hook的时候,主要处理DLL_PROCESS_ATTACH和DLL_PROCESS_DETACH 这两项,在编写相应的处理代码之前,当然是要先定义和引入需要Hook的函数,和替换的函数,如下:static int (WINAPI* Ol...
2019-09-09 19:21:50
1451
3
原创 摸索Detours 2:使用Detours 进行简单的Hook
1.准备工作首先,在VS里创建一个C++的控制台项目,然后配置一下项目的包含目录和库目录32位的话将摸索Detours 1:使用Vs2019 编译Detours中编译的include添加包含目录、lib.X86添加到库目录。64位的话将摸索Detours 1:使用Vs2019 编译Detours中编译的include添加包含目录、lib.X64添加到库目录。然后在新建的文档...
2019-09-05 19:57:32
1332
1
原创 摸索Detours 1:使用Vs2019 编译Detours
Detours 是干嘛的 ? 可以去微软的官网查看相关的信息:微软Detours 官网。然后呢,就可以下载源码编译了,相关的源码下载可以去Github:https://github.com/microsoft/detours。下面就可以开始编译工作了。1.编译解压后的文件夹应该入下图所示:然后,在开始菜单中找到x64 Native Tools Command Pr...
2019-09-05 19:19:26
2099
1
原创 MicroSoft Speech SDK V11 TTS 中文报错 Speak error '80004005'
在安装了MicroSoft Speech SDK V11 写了一个简单的例子想测试一下TTS好用不 ,如下:SpeechSynthesizer synth = new SpeechSynthesizer();synth.SelectVoice("Microsoft Server Speech Text to Speech Voice (zh-CN, HuiHui)");synth.Set...
2019-08-20 20:01:46
1912
2
原创 Asp .Net Core 2.1 遇到的内存泄露
这个问题遇到是几个月以前了,一个老的用.net core mvc写的升到.net core 2.1.6的时候发现内存泄漏,经过排查是因为闭包的问题导致的。出现问题的代码类似如下: public class XXXXXController : ControllerBase { protected XXXXContext context; p...
2019-05-03 02:03:44
2745
原创 记录一下在Windows 下编译 PyTorch 0.5的经历吧~
首先列出一下参考的文章地址:关于Windows PRs并入PyTorch的master分支——蒲嘉宸还有作者的GitHub链接:peterjc123/pytorch-scripts非常感谢作者的分享~~~+++++++++++++++分割线+++++++++++++++++++++++++++++++前期准备:VS2017 、Anaconda 、CUDA 9.1 、cuDNN 7.1、cmake ...
2018-05-31 12:21:12
1218
原创 ActiViz 7.0编译记录
前期准备:虚拟机(VM,Vbox,hyper-V 随意)Window7 Sp1 x64.Net framework 4.0 Visual Stdio 2008Python Cmake(3.11 和 2.8.8 两个都要下) 下载链接:点击打开链接CSV 下载链接:点击打开链接Git 下载链接:点击打开链接Doxygen(用来生成文档的) 下载链接:点击打开链接VTK 7.0 源码 下载链接:点击...
2018-04-15 16:52:54
2327
12
原创 centos6 下apache2 配置https的谷歌学术反向代理
环境 centos6 、Apache2.2首先安装openssl :yum install openssl然后生成私钥:openssl genrsa -des3 -out 自定义文件名.key 2048生成CSR证书请求:openssl req -new -key 生成key的文件名.key -out 自定义文件名.csr签发证书:openssl x50
2017-12-08 16:11:59
551
原创 关于连续邮资算法自己的见解
果然理解算法最好的方法就是自己写一遍。这次弄懂了使用回溯法解决连续邮资问题怎么保持这个范围连续还有中间的流程#include"stdio.h"#define N 1024#define INF 65535int n=0,m=0,r=0; //n种类,m张数,r总的金额int values[N]; //保存面值int stamps[N];//用来存放面值最终结
2016-11-12 21:33:56
998
转载 如何使用ASP .Net发送邮件
使用ASP .Net 发送email 可以使用SmtpClient,通过设置Host,Credentials包括用户名和密码。然后就可以使用MailMessage设置收件人,主体,内容,编码格式,等。最后调用SmtpClient的Send方法既可发送代码(引用自:http://www.cnblogs.com/ForEvErNoME/archive/2012/06/05/25
2016-09-17 17:52:06
538
原创 asp .net mvc5 多model传递
一个页面要传递FileModel 和InformationModel首先自己先建一个Modelpublic class MyViewModels { public Models.File File { get; set; } public Models.Information Information { get; set; } }然后在页
2016-09-17 00:28:56
642
原创 Xamarin 的system.net.httpclient
在项目引用里面右键 添加引用 找到system.net.httpclient然后选上 解决~参考:http://stackoverflow.com/questions/36253038/httpclient-not-available-shared-library-project-xamarin
2016-09-07 20:11:43
887
原创 关于Xamarin配置
因为墙的问题使用官方的在线配置工具xamarininstall 一直在下载安卓SDK的过程失败,失败,失败~于是使用手动配置首先下载SDK ,NDK加上以前安装VS2015的时候自动配置好的Xamarin 基本的环境已经弄好。但是在新建项目后调试的时候出现“java.lang.UnsupportedClassVersionError: com/android/dx/
2016-09-05 14:59:08
733
原创 asp.net 关于更改数据库表的方式
在 库程序包管理器中 找到 Package Manager Console(图片引用自asp.net)输入Enable-Migrations -ContextTypeNameMvcMovie.Models.MovieDBContext(需要更改的数据库模型)然后写Seed方法protected override void Seed(MvcMovie.M
2016-09-04 19:02:27
586
原创 开始汉堡菜单的学习~
······首先实现汉堡菜单需要用到splitview 控件 。 relative panel 相对布局控件panel alignment 边框对齐关系 向上 向左 sibling alignment 同属对齐关系sibling alignment 同属位置关系 uwp-018split view 创建打开和隐藏的面板
2016-04-02 15:39:01
1196
转载 80C51串口proteus 仿真终端接收乱码
调试了大半天终于在http://bbs.csdn.net/topics/3500064945楼找到了问题所在~用11.0592的晶振试验一下,如果不行,估计就是程序或硬件的事了,我以前有过这种经历,那是因为用的是12MHZ的晶振,换成11.0592的晶振后解决.
2016-03-29 10:39:04
3132
1
原创 学习windows phone 开发第一天
wp上面竟然没官方的知乎日报客户端 ,第三方的又有点不符合胃口 ,以前浅显的学过一点c# ,现在尝试一下,用来回忆一下学过的c#再次为自己写一个符合自己的客户端吧~!今天第一天开始~·!
2015-01-08 19:36:48
226
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人