2011年9月8日
摘要: 一个好方法,可以不用打开VS2010,右键菜单直接编译*.sln,*.csproj。原理就是改注册表,生成右键菜单,再关联一个.bat文件使用msbuild.exe进行编译。 阅读全文
posted @ 2011-09-08 16:28 ShadowK 阅读(97) 评论(0) 编辑
2009年5月15日
 Code
public static class ConsoleHelper
{
private const int CTRL_CLOSE_EVENT = 2;
public delegate bool ConsoleCtrlDelegate(int dwCtrlType);
[DllImport("kernel32.dll")]
private static extern bool SetConsoleCtrlHandler(ConsoleCtrlDelegate HandlerRoutine, bool Add);
private static bool HandlerRoutine(int CtrlType)
{
switch (CtrlType)
{
case CTRL_CLOSE_EVENT:
break;
}
return false;
}
public static void SetHandler()
{
ConsoleCtrlDelegate newDategate = HandlerRoutine;
SetConsoleCtrlHandler(newDategate, true);
}
posted @ 2009-05-15 16:42 ShadowK 阅读(63) 评论(0) 编辑
 Code
public static class DllHelper
{
private static IntPtr libHandle = IntPtr.Zero;
[DllImport("kernel32")]
private static extern IntPtr LoadLibrary(string lpLibFileName);
[DllImport("kernel32")]
private static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName);
[DllImport("kernel32")]
private static extern IntPtr FreeLibrary(IntPtr hLibModule);
public static object Invoke(string fileName, string funName, object[] objParams, Type returnType)
{
try
{
//获取函数地址
if (libHandle == IntPtr.Zero)
libHandle = LoadLibrary(fileName);
if (libHandle == IntPtr.Zero)
return null;
IntPtr procAddres = GetProcAddress(libHandle, funName);
if (procAddres == IntPtr.Zero) return null;
//获取参数类型
Type[] paramTypes = new Type[objParams.Length];
for (int i = 0; i < objParams.Length; ++i)
{
paramTypes[i] = objParams[i].GetType();
}
//构建调用方法模型
AssemblyName asembyName = new AssemblyName();
asembyName.Name = "WinDllInvoke_Assembly";
AssemblyBuilder asembyBuilder = AppDomain.CurrentDomain.DefineDynamicAssembly(asembyName, AssemblyBuilderAccess.Run);
ModuleBuilder moduleBuilder = asembyBuilder.DefineDynamicModule("WinDllInvoke");
MethodBuilder methodBuilder = moduleBuilder.DefineGlobalMethod("InvokeFun", MethodAttributes.Public | MethodAttributes.Static, returnType, paramTypes);
//获取一个 ILGenerator ,用于发送所需的 IL
ILGenerator IL = methodBuilder.GetILGenerator();
for (int j = 0; j < paramTypes.Length; ++j)
{
//将参数压入堆栈
if (paramTypes[j].IsValueType)
{
IL.Emit(OpCodes.Ldarg, j); //By Value
}
else
{
IL.Emit(OpCodes.Ldarga, j); //By Addrsss
}
}
// 判断处理器类型
if (IntPtr.Size == 4)
{
IL.Emit(OpCodes.Ldc_I4, procAddres.ToInt32());
}
else if (IntPtr.Size == 8)
{
IL.Emit(OpCodes.Ldc_I8, procAddres.ToInt64());
}
else
{
throw new PlatformNotSupportedException("不好意思,偶不认得你哦!");
}
IL.EmitCalli(OpCodes.Calli, CallingConvention.StdCall, returnType, paramTypes);
IL.Emit(OpCodes.Ret); // 返回值
moduleBuilder.CreateGlobalFunctions();
// 取得方法信息
MethodInfo methodInfo = moduleBuilder.GetMethod("InvokeFun");
return methodInfo.Invoke(null, objParams); // 调用方法,并返回其值
}
catch { return null; }
}
public static void FreeLibrary()
{
if (libHandle != IntPtr.Zero) FreeLibrary(libHandle);
}
posted @ 2009-05-15 16:12 ShadowK 阅读(56) 评论(0) 编辑
2009年1月8日
posted @ 2009-01-08 18:21 ShadowK 阅读(999) 评论(0) 编辑
2008年9月26日

在网上找了一个原型,用不起,自已改了下,现在更快,更方便.
下载 QQ大家来找茬外挂2009(含源码)
posted @ 2008-09-26 12:18 ShadowK 阅读(1887) 评论(11) 编辑
2008年3月29日
摘要: 发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具.
阅读全文
posted @ 2008-03-29 02:35 ShadowK 阅读(13238) 评论(36) 编辑
2007年6月3日
posted @ 2007-06-03 01:18 ShadowK 阅读(120) 评论(0) 编辑
2007年4月29日
摘要: 有一只企鹅,他的家离北极熊家特别远,要是靠走的话,得走20年才能到。有一天,企鹅在家里呆着特别无聊,准备去找北极熊玩,与是他出门了,可是走到路的一半的时候发现自己忘记锁门了,这就已经走了10年了,可是门还是得锁啊,于是企鹅又走回家去锁门。锁了门以后,企鹅再次出发去找北极熊,等于他花了40年才到了北极熊他们家……然后企鹅就敲门说:“北极熊北极熊,企鹅找你玩来了!”
结果北极熊开门以后你猜他说什么?…… 阅读全文
posted @ 2007-04-29 10:50 ShadowK 阅读(352) 评论(0) 编辑
2006年12月27日
摘要: 下面两页差别很小,就是一句语句的前后次序有所不同,但PostBack后显示效果有所不同,请解释为什么显示效果不同,并且解释正确显示的那页(你知道是哪页,对么?)中Response.Write的输出结果。 阅读全文
posted @ 2006-12-27 10:10 ShadowK 阅读(469) 评论(1) 编辑
2006年12月7日
摘要: 作者:郑佐 2006-10-31
经过微软.net Framework 2.0的革新,.net平台的开发越来越精彩。笔者收集基于.net开发的n个项目,一方面为新手提供有价值学习资源,培养起软件开发的乐趣,另一方面共勉已从事.net领域工作多年并有明确发展目标的同仁,提高自己,更上一层楼。 阅读全文
posted @ 2006-12-07 09:46 ShadowK 阅读(1878) 评论(16) 编辑
2006年11月29日
摘要: 写的一个木马程序.主要那时候在学校里喜欢整人家的机子玩,就写了一个木马类的程序,大二的时候开始的吧,那时候还在用VB,写的一个程序.仅作记念.程序是开源的,如果要的话,请联系我.
我把它放到网上126的邮箱里了,在"草稿"里,有兴趣的朋友可以去下
www.126.com
用户名:rsroom
密码:11111111 阅读全文
posted @ 2006-11-29 08:49 ShadowK 阅读(506) 评论(0) 编辑
2006年11月28日
摘要: 简介:
Ajax.NET是一款免费的面向.Net的Ajax Library
Atlas是微软提供给开发者的Ajax开发包
两者都可以让ASP.Net具备Ajax功能
近日,利用空闲时间把这两个东西做了不完全的比较 阅读全文
posted @ 2006-11-28 14:01 ShadowK 阅读(460) 评论(0) 编辑
摘要: ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务,它提供了用于创建和管理用户帐户的易于使用的API
ASP.NET 2.0中新增的最佳功能之一是新的成员身份服务,它提供了用于创建和管理用户帐户的易于使用的API。ASP.NET 1.x大规模引入了窗体身份验证,但仍然要求您编写相当数量的代码来执行实际操作中的窗体身份验证。成员身份服务填补了ASP.NET 1.x窗体身份验证服务的不足,并且使实现窗体身份验证变得比以前简单得多。
成员身份API通过两个新的类公开:Membership和MembershipUser。前者包含了用于创建用户、验证用户以及完成其他工作的静态方法。MembershipUser代表单个用户,它包含了用于检索和更改密码、获取上次登录日期以及完成类似工作的方法和属性。通过这两个新的类,我们可以不用写一行代码,方便得完成对用户的管理。 但是在实际开发过程中,绝对不能满足我们日常开发的需要。经过日常项目的开发和网络上资料的搜索,现将其一一列出: 阅读全文
posted @ 2006-11-28 14:00 ShadowK 阅读(762) 评论(2) 编辑
2006年11月23日
摘要: Contents
Machine.config
Web.config
Changing Settings
Using the Section
Using NameValueFileSectionHandler
Custom Configuration Sections
Conclusion阅读全文
posted @ 2006-11-23 17:11 ShadowK 阅读(421) 评论(1) 编辑
2006年11月22日
摘要: Provider设计模式是在.NET 1.1 framework中被首次介绍到,特别是在ASP.NET快速入门中,以及后来在ASP.NET Whidbey中作为membership management provider API被正式化。它的主要目的在于为一个API进行定义和实现的分离。这样就通过核心功能的灵活性和易于修改的特点使得API具有灵活性。 阅读全文
posted @ 2006-11-22 14:25 ShadowK 阅读(928) 评论(0) 编辑
|
|
|
随笔:18
文章:16
评论:90
引用:19
| | 日 | 一 | 二 | 三 | 四 | 五 | 六 |
|---|
| 29 | 30 | 31 | 1 | 2 | 3 | 4 | | 5 | 6 | 7 | 8 | 9 | 10 | 11 | | 12 | 13 | 14 | 15 | 16 | 17 | 18 | | 19 | 20 | 21 | 22 | 23 | 24 | 25 | | 26 | 27 | 28 | 29 | 1 | 2 | 3 | | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|
公告
广交喜欢技术和创业的朋友
QQ:50248291
msn:
NewShadowk@hotmail.com
常用链接
最新随笔
我的标签
随笔档案(18)
文章分类(16)
文章档案(16)
相册
积分与排名
最新评论
阅读排行榜
评论排行榜
推荐排行榜
|
|