- 博客(0)
- 资源 (38)
- 收藏
- 关注
C# 钩子程序
记录用户的键盘操作,可进行存储。程序用途很广。
安装钩子:
[DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)]
private static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc lpfn, IntPtr hMod, uint dwThreadId);调用API 具体参数可以百度,LowLevelKeyboardProc lpfn:这个参数实际上是一个回调函数,如下
处理函数
private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
{
//键盘按下时
if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
{
int vkCode = Marshal.ReadInt32(lParam);
Keys key = (Keys)vkCode;
MessageBox.Show(key.ToString());
}
return CallNextHookEx(_hookID, nCode, wParam, lParam);
}
当钩子安装后,自动写如钩子链表,挂入系统,监视指定的事件,这里是键盘事件,当事件发生时先通过钩子
2013-07-16
二维码程序实现
QRCode二维码维码支持中文,网上流传很多版本都说支持中文二维码。看过测试都有问题,自己看了源码改了下。
原版本 中有 IsUnicode 方法判断是否为Unicode编码 但这个方法好像有问题 所以无法准确判断中文。可以通过改写这个来实现中文。
另外有两个方法 都可以解决中文问题
public virtual String decode(QRCodeImage qrCodeImage, Encoding encoding)
public virtual String decode(QRCodeImage qrCodeImage)
因为是虚方法可以重写这个方法就可以
所以 可以通过
改写IsUnicode 和 重写 这个两个虚方法来实现
/// <summary>
/// 用于判断中文
/// </summary>
/// <param name="byteData"></param>
/// <returns></returns>
public static bool IsUnicode(byte[] byteData)
{
// This is by Joson Jiang 用于判断中文
//因为ascii编码当中的最大为127,这样判断后,
//就能正确的判断是不是unicode,这样就能正确的解码中文了.
bool isUnicode = false;
try
{
foreach (byte value in byteData)
{
if (value > 128)
{
isUnicode = true;
break;
}
}
}
catch (Exception)
{
//其中的是原本的代码 无法正确判断 中文
string value1 = FromASCIIByteArray(byteData);
string value2 = FromUnicodeByteArray(byteData);
byte[] ascii = AsciiStringToByteArray(value1);
byte[] unicode = UnicodeStringToByteArray(value2);
if (ascii[0] != unicode[0])
return true;
return false;
}
return isUnicode;//返回是不是Unicode编码
}
/// <summary>
/// 重写直接返回 解决中文问题
/// </summary>
public class QRCodeDecoders : QRCodeDecoder
{
QRCodeDecoder decoder = new QRCodeDecoder();
public override String decode(QRCodeImage qrCodeImage)
{
sbyte[] data = decoder.decodeBytes(qrCodeImage);
byte[] byteData = new byte[data.Length];
Buffer.BlockCopy(data, 0, byteData, 0, byteData.Length);
String decodedData;
return decodedData = ThoughtWorks.QRCode.Codec.Util.QRCodeUtility.FromUnicodeByteArray(byteData);
}
}
忘了说这个是 vs2010的 原版本是 vs2005
2013-07-16
WPF核心技术
内容简介
《WPF核心技术》围绕WPF中的一些重要概念进行详细的讲解,涉及WPF的各个方面,包括:WPF的设计原则、应用程序的结构、内置控件、界面的布局、可视化效果、资源与数据、动作的操作、样式的处理和基础服务。《WPF核心技术》还通过丰富的示例代码介绍了一些非常有用的WPF开发技巧。《WPF核心技术》适合各类使用WPF开发应用程序界面的技术人员阅读,不管是构架师、开发人员还是设计人员,都可以从中获益。
编辑推荐
《WPF核心技术》是的权威参考书,主要介绍了开发人员
媒体推荐
“Microsofi.NET开发系列丛书对于使用.NET框架和WebJ艮务的开发人员来说,是非常宝贵的资源,它涵盖了从参考资料到实践指导的所有基础知识。这个系列的书籍对于打算编写健壮的托管代码的开发人员而言,是非常重要的阅读材料。”
——John Montgomery 微软公司Developer Platform and Evangelism部门总监
“Microsoft.NET开发系列丛书得到了微软公司.NET框架及其语言的权威专家的大力帮助。为完成这个系列丛书而组建的专家库包括了业界最具洞察力的作者、微软公司的软件架构师以及开发者。”
——DonBox 微软公司架构师
作者简介
作者:(美国) 安迪生 (Anderson.C.) 译者:朱永光
Chris AnderSOn是微软公司Connected Systems部门的架构师,专门为下一代应用程序和服务设计并构架.NET技术。在微软公司的10年中,他的工作涉及从Visual Basic 6.0和Visual。J++6.0到.NET Framework 1.0和1.1等技术。2002年,作为WPF的架构师,他加入了WindOWS Client团队。他在PDC、TechEd、WinDev和DevCon等很多会议上做过演讲。
2013-06-19
remoting学习
学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting 学习 remoting
2009-08-20
IT行业经典面试题,121套面试题
IT行业经典面试题,121套面试题IT行业经典面试题,121套面试题IT行业经典面试题,121套面试题IT行业经典面试题,121套面试题IT行业经典面试题,121套面试题
2009-08-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人