<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[流星的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/bk8897</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; bk8897]]></copyright><item><title><![CDATA[尝试从数据库进行更新时，遇到“System.InvalidOperationException”的异常。异常消息为：“此事务中涉及的XmlModel不能编辑”。]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/133235546</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/133235546</guid><author>bk8897</author><pubDate>Sun, 24 Sep 2023 11:31:07 +0800</pubDate><description><![CDATA[tfs - System.invalidoperationexception xmlmodels are not editable - Stack Overflow]]></description><category></category></item><item><title><![CDATA[用asp.net开发h5网页版视频播放网站,类似优酷,jellyfin,emby]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/131997293</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/131997293</guid><author>bk8897</author><pubDate>Sat, 29 Jul 2023 17:46:15 +0800</pubDate><description><![CDATA[于是去年2022年12月份开始写代码.采用 asp.net+iis+sqlserver 来开发和部署,担心以后并发量大,就加了 redis,用阿里云播放器进行播放.平时都是下班后,花几天时间写一个页面.大概搞了两个月.代码完全是自己手写,没有引用别人的框架,也没有参考什么技术之类,就是直接干,跟平时工作写代码一样,用最快速度搞出来.Ps.C#语言很强大,开发视频网站效率真的高.而且对于前端要求也不高,都有现成的控件,只需要会些css对网站进行美化一下就行。]]></description><category></category></item><item><title><![CDATA[Devexpress GridView EditGridInplace编辑模式下 根据条件设置 可编辑列 readonly]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/103270978</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/103270978</guid><author>bk8897</author><pubDate>Wed, 27 Nov 2019 10:33:07 +0800</pubDate><description><![CDATA[private void GridView1_EditFormPrepared(object sender, DevExpress.XtraGrid.Views.Grid.EditFormPreparedEventArgs e)
        {            
                (e.BindableControls["YourReadOnlyField"] as Ba...]]></description><category></category></item><item><title><![CDATA[DevExpress PictrueEdit 实现图片 剪裁 , 缩放 , 压缩大小 效果]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/51568185</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/51568185</guid><author>bk8897</author><pubDate>Thu, 02 Jun 2016 17:11:31 +0800</pubDate><description><![CDATA[实现效果:
1.图片修改前:


2.图片编辑时:

3.图片修改后:



PictrueEdit 控件初始化代码:

        void SetPictrueEdit()
        { 
            txt图片.Properties.AllowScrollViaMouseDrag = true;
            txt图片.Propert]]></description><category></category></item><item><title><![CDATA[提高DevExpress winform 控件加载速度]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/50402614</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/50402614</guid><author>bk8897</author><pubDate>Fri, 25 Dec 2015 13:33:42 +0800</pubDate><description><![CDATA[devexpress 控件功能很强大 但是有些细节没有处理好,会造成加载慢的情况,影响用户体验效果.
总结出来的提高加载速度的方法:
1.用代码修改LayoutControl布局控件 的子控件时,使用BeginUpdate()和EndUpdate().
很多控件比如:BackstageViewControl   ,GridView 修改也一样要注意
2.不要使用GridView的列绑定公式]]></description><category></category></item><item><title><![CDATA[第四章5 直接用端口操作键盘]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41679639</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41679639</guid><author>bk8897</author><pubDate>Tue, 02 Dec 2014 15:51:04 +0800</pubDate><description><![CDATA[4.8.1读取键盘数据和命令端口

    PS/2键盘的数据端口是0x60,直接读取这个端口就能取到数据.但是前提是,键盘必须处于可读状态.


    在驱动中没有对端口的读取进行限制,直接汇编指令就可以读取.请注意每次只能读取1字节.



//定义1字节P2C_U8 sch;__asm in all,0x60__asm mov sch,al

    上面的代码把端口]]></description><category></category></item><item><title><![CDATA[第四章 Hook键盘中断和IOAPIC重定位]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41596217</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41596217</guid><author>bk8897</author><pubDate>Sat, 29 Nov 2014 15:33:24 +0800</pubDate><description><![CDATA[如果不想让键盘过滤驱动程序或回调函数首先获得按键,则必须比端口驱动更加底层一些.端口驱动再往下,USB和PS/2就不同了.

    早期版本QQ的反盗号驱动的原理是这样的:在用户要输入密码时(比如把输入焦点移动到密码框里),就注册一个中断服务来接管键盘中断,比如0x93中断,之后按键就不关键盘驱动的事了.为此这个程序必须处理那些扫描码,并得出用户输入了什么密码,然后交给QQ.



]]></description><category></category></item><item><title><![CDATA[寒江独钓 第二章(3)Hook分发函数和回调函数]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41576807</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41576807</guid><author>bk8897</author><pubDate>Fri, 28 Nov 2014 15:01:39 +0800</pubDate><description><![CDATA[前面两节讲的是通过在设备栈上绑定一个新的设备实现键盘过滤.这是非常正统的方法,是合法软件行为.一般黑客软件不会采用这么正道的方法.

    黑客可以通过修改一个已经存在的驱动对象(比如前面提到的KbdClass)分发函数的指针来实现过滤所有请求的目的.


4.5.1获得类驱动对象

    首先要获得键盘类驱动对象,才能替换下面的分发函数.这个驱动的名字是"\\Driver\\K]]></description><category></category></item><item><title><![CDATA[寒江独钓 第四章 按键信息 扫描码和Ascii码]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41516839</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41516839</guid><author>bk8897</author><pubDate>Wed, 26 Nov 2014 15:32:55 +0800</pubDate><description><![CDATA[4.4.1从缓冲区中获得KEYBOARD_INPUT_DATA

    请求完成之后,读到的信息在Irp->AssociatedIrp.SystemBuffer中,这个缓冲区可能含有n个KEYBOARD_INPUT_DATA结构


    这个结构定义如下



typedef struct _KEYBOARD_INPUT_DATA{  //对设备\Device\Keyboa]]></description><category></category></item><item><title><![CDATA[第四章 键盘的过滤(1)]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41482423</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41482423</guid><author>bk8897</author><pubDate>Tue, 25 Nov 2014 15:21:10 +0800</pubDate><description><![CDATA[4.1.1预备知识

    并不是所有设备都可以通过绑定设备的方法进行过滤,其中硬盘就是一个例子,即使使用了IoAttachDevice,结果还是截获不到任何IRP.


    符号链接是对象的一个别名.

    PDO是物理设备的简称,是设备栈最下面的那个设备对象.

    nt!ObpCreateHandel.这是WinDbg中使用的表示方法,!号前的内容表示模块名,]]></description><category></category></item><item><title><![CDATA[寒江独钓 第三章 串口的过滤]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41444887</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41444887</guid><author>bk8897</author><pubDate>Mon, 24 Nov 2014 14:37:17 +0800</pubDate><description><![CDATA[3.1.1设备绑定API

    根据设备的名字进行绑定:


 NTSTATUS IoAttachDevice{   IN PDEVICE_OBJECT SourceDevice, //用来过滤的虚拟设备   IN PUNICODE_STRING TargetDevice,//要被绑定的设备的名字   OUT PDEVICE_OBJECT *AttachedDevice //返回绑定]]></description><category></category></item><item><title><![CDATA[寒江独钓-第二章 驱动基础知识]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/41408963</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/41408963</guid><author>bk8897</author><pubDate>Sun, 23 Nov 2014 11:12:28 +0800</pubDate><description><![CDATA[2.1.2共享的内核空间

    进程的空间被分成两部分:一部分供进程独立使用,称为用户空间;另一部分容纳操作系统的内核,称为内核空间.


    在32位系统上,低2GB是用户空间,高2GB是内核空间.


    x86架构下r0层的代码才能访问内核空间,普通应用程序都运行在r3层,要访问r0层的功能一般通过操作系统提供的一个入口(在该入口调用sysenter指令)

]]></description><category></category></item><item><title><![CDATA[Microsoft visual stdio 2010已停止工作-打开旧项目失败]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/38775317</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/38775317</guid><author>bk8897</author><pubDate>Sat, 23 Aug 2014 08:01:42 +0800</pubDate><description><![CDATA[今天早上打开 项目时 发现
Microsoft visual stdio 2010已停止工作-]]></description><category></category></item><item><title><![CDATA[子线程创建窗口 ctrl + 空格 程序无响应]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/33706299</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/33706299</guid><author>bk8897</author><pubDate>Mon, 23 Jun 2014 09:38:44 +0800</pubDate><description><![CDATA[当子线程创建窗口时,比如要实现进度条功能,必须及时]]></description><category></category></item><item><title><![CDATA[Devexpress GridView 列分组显示]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/32939319</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/32939319</guid><author>bk8897</author><pubDate>Sat, 21 Jun 2014 17:20:54 +0800</pubDate><description><![CDATA[属性 gvDetail.Columns[1].GroupIndex = 0;
GroupIndex  = -1 时不]]></description><category></category></item><item><title><![CDATA[设置特定List View 的过滤器]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/24398111</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/24398111</guid><author>bk8897</author><pubDate>Thu, 24 Apr 2014 10:47:53 +0800</pubDate><description><![CDATA[Activate a Filter Action]]></description><category></category></item><item><title><![CDATA[在同一页面上显示List View和Detail View]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/24393761</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/24393761</guid><author>bk8897</author><pubDate>Thu, 24 Apr 2014 09:49:21 +0800</pubDate><description><![CDATA[Display a Detail View Together With a List View]]></description><category></category></item><item><title><![CDATA[添加外部字段的 Editor 到Detail View]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/24393101</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/24393101</guid><author>bk8897</author><pubDate>Thu, 24 Apr 2014 09:42:05 +0800</pubDate><description><![CDATA[Add an Editor to a Detail View]]></description><category></category></item><item><title><![CDATA[设置Action执行的验证条件]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/24389317</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/24389317</guid><author>bk8897</author><pubDate>Thu, 24 Apr 2014 08:36:09 +0800</pubDate><description><![CDATA[Implement Property Value Validation in the Application Model]]></description><category></category></item><item><title><![CDATA[添加项目到New Action]]></title><link>https://blog.youkuaiyun.com/bk8897/article/details/24389101</link><guid>https://blog.youkuaiyun.com/bk8897/article/details/24389101</guid><author>bk8897</author><pubDate>Thu, 24 Apr 2014 08:26:17 +0800</pubDate><description><![CDATA[Add an Item to the New Action]]></description><category></category></item></channel></rss>