随笔分类 - 编程
整理分享C#通过user32.dll模拟物理按键操作的代码
摘要:对系统模拟按键方面的知识和按键映射代码做了一下梳理,在这里分享出来,适用于开发自动操作工具和游戏外挂。
阅读全文
.Net判断一个对象是否为数值类型探讨总结(高营养含量,含最终代码及跑分)
摘要:前一篇发出来后引发了积极的探讨,起到了抛砖引玉效果,感谢大家参与。
吐槽一下:这个问题比其看起来要难得多得多啊。
大家的讨论最终还是没有一个完全正确的答案,不过我根据讨论结果总结了一个差不多算是最终版的代码,这里分享出来,毕竟这是大家共同的智慧结晶,没有交流和碰撞就没有这段代码。
阅读全文
.Net判断一个对象是否为数值类型
摘要:这乍一听是个很简单的事,但突然搞起来还真有点无从下手的感觉。
首先当然是通过GetType()方法反射获取其类型信息,然后对其进行分析,但是类型信息Type中并没有简单地给出这么一个属性进行判断。
老外给出的方法是:……
阅读全文
MVC中获取模型属性的Range和StringLength验证特性设置
摘要:MVC中的客户端及服务端模型验证信息都以ModelMetadata类型作为承载,在获得属性的ModelMetadata之后(还不知道怎么获取ModelMetadata的童鞋请自行恶补),我们可以轻松得到一些我们在模型中定义的特性,比如显示名称、是否只读、是否必须、注释、数据类型等,但是并不包括Range和StringLength这两个需要验证的特性,我把ModelMetadata对象翻个底朝天也没找到设置的值。
于是乎,只能通过反射来获取特性的定义信息了,以下代码能够获取到该属性定义的所有特性:……
阅读全文
在 JQuery Mobile 中实现瀑布流图库布局
摘要:这个整合方式几乎没有现存的实例,是自己总结出来的方法,在此记录下来。
首先访问Masonry官网下载masonry.pkgd.min.js:http://masonry.desandro.com/
将其整合到项目中,在页面中引入。
初始化id变量,让页面每次加载时的id都不同,避免 Ajax 加载时id重复造成难以察觉的错误。
……
阅读全文
MongoDB的C#官方驱动InvalidOperationException异常的解决办法
摘要:有一个“文章”类,其中包含一个“List”类型的属性,“段落”类是抽象类,其子类有“副标题段落”、“文本段落”、“图像段落”、“附件段落”、“列表段落”等类型。
将“文章”类型的对象存入MongoDB数据库完全没问题,但是从数据库取回则会引发这样的异常:
[InvalidOperationException: 无法创建抽象类的实例。]
阅读全文
MongoDB的TruncationException异常解决方法
摘要:近期由于DB4O的一些无解的BUG,导致现行的项目查询效率底下,于是愤而迁移到了MongoDB。
MongoDB虽然比DB4O的用户要多一些,但是文档依然极度匮乏,遇到问题不是那么容易就能搜到解决办法,在此分享一个遇到的比较要命的异常问题的修正办法。
阅读全文
分享Db4o的便捷封装类源码
摘要:大家好,话说真是好久好久没写文章了,哈哈。
最近在写网站,个人对传统数据库天然抵触,感觉非常繁冗,即便是Entity Framework也过于庞杂了,Db4o这种轻量级且读写、配置都极其方便的新型数据库非常适合我。
不过我发现Db4o这么多年发展下来,竟然仍旧没多少中文资料可寻,很奇怪为什么这么优秀的数据库国内使用率极低呢?于是我就想尝试自己来写一些心得什么的,为Db4o在国内的传播尽微薄之力吧。
此次分享的是自己写的工具类代码,封装了Db4o的一种基本使用方式,高度优化了调用体验,下面直接介绍用法,源代码在文章末尾贴出。
阅读全文
libgdx的tmx地图处理工具gdx-tiled-preprocessor.jar(TiledMapPacker)修正版
摘要:最近想做个Android的游戏,用到libgdx,现在研究地图这块,制作好地图tmx文件后需要处理后libgdx才能载入,需要用到TiledMapPacker工具,该工具被放在gdx-tiled-pr...
阅读全文
RegeX 3 正则表达式实践教程之 —— 在Eclipse中以装饰器模式包装接口
摘要:在实现一个庞杂的接口时,往往需要付出很多体力劳动,例如这个: 以上是要实现的接口的一小部分方法,我们要实现此接口以包装其衍生类,由于仅仅是包装,只需要把所有方法都转交给被包装对象“getSource...
阅读全文
正则表达式替换器 RegeX 3 发布 (Silverlight版)
摘要:继上一版本RegeX发布以来已有三年多了,此次发布全新设计的RegeX 3供广大开发者使用。
新版基于Silverlight开发,支持安装到本地运行,采用类似WindowsPhone7的Metro风格设计。
新版本的主打功能有两点:
支持无限层级的复杂多重匹配与替换
支持在替换时以$@符号引用经过处理后的组内容
这两个功能主要为了解决如下问题:
冗长的表达式结构。
在匹配复杂的格式时,使用的表达式不仅冗长,且晦涩如天书,一旦修改时不小心改变了某个符号后患无穷。
无限级多重替换功能将极大改善这一情况,你可以将替换工作拆分成若干个步骤,分别处理,使得思路清晰,表达式易于维护。
不可能的任务。
正则表达式是万能的,但万这个数字并不大,有很多格式是不可能或很难用一个表达式来完成的,很多时候我们需要自己来写一个新程序予以解决,而当有了$@引用功能,很多问题迎刃而解。
$@符
阅读全文
Silverlight中后台代码设置TreeView选定项的方法
摘要:当TreeView在XAML中以嵌套数据模板(HierarchicalDataTemplate)方式绑定数据时,其子元素都是特定类型的对象,而非TreeViewItem,这样就没法通过设置TreeVi...
阅读全文
Eclipse中Android项目引用其他项目时链接源码的方法
摘要:参照前一篇文章《Eclipse中Android公共库的正确建立及调用方法》,以前只要在Android库中添加了引用,就能自动在项目中引入源码: 但是更新了新版SDK及ADT插件之后,源码不会被自动引...
阅读全文
Android 动态壁纸(Live Wallpaper)编写注意事项小记
摘要:不要使用Thread
应直接使用Handler与Runnable接口对象组合运行。
使用Thread会产生一些莫名其妙的问题,比如:壁纸预览时报错;壁纸设置时报错;壁纸设置后闪一下即消失变为默认静态壁纸;壁纸设置后停止运行但切换到待机状态再切回还是能运行的。
当壁纸设置后消失时,在DDMS中看到产生的异常信息类似
...
阅读全文
探讨求解:Android项目间如何实现资源复用?
摘要:我们开发项目时,通常不仅代码需要复用,很多资源也是经常重用的,比如: 按钮上的图标 交互时发出的声音 某种功能所需的Activity布局 控件样式 常见的文字及其对应的各语言版本 比如这样一个软件分...
阅读全文
Android Market 链接的生成与分享
摘要:通过Java包名直接定位到你的App
http://market.android.com/details?id=
或者
market://details?id=
范例:market://details?id=com.skyd.luckywheel
这将直接在菜市场中显示你的App详细介绍页。
通过Java包名搜索App
http://market.android.com/search?q=pname:
或者
market://search?q=pname:
范例:market://search?q=pname:com.skyd.luckywheel
这将显示搜索到的App列表。
通过开发者名称搜索App
http://market.android.com/s
阅读全文
Android中MediaPlayer播放音乐时自动中断的解决办法
摘要:今天尝试在一个有SurfaceView持续绘图的程序里加入背景音乐,遇到一个故障: 音乐播10几秒就中止了,此后再无声响。 尝试更换为其他mp3文件,无果。 尝试将播放操作由子线程转到主线程,依然不行...
阅读全文
Eclipse导入Android项目的正确方法
摘要:看网上流传的Eclipse导入项目的方法都是在新建Android程序时使用“Create project form existing source”选项实现的导入,虽然也能实现,但感觉很山寨的样子,而...
阅读全文
在Eclipse中的Android项目里实现代码复用
摘要:引言 开发时通常都会有多个项目间代码复用的需求,这时通常的做法是设置项目依赖,让一个项目引用另一个项目,比如在Visual Studio中这样就很容易实现。 而在Eclipse中的Android项目里...
阅读全文
Android 1.6的dpi归属BUG
摘要:Android程序一般都有drawable-hdpi、drawable-mdpi、drawable-ldpi三个文件夹,用来放置不同分辨率的图片,由系统自动调用最合适的图片。 其对应关系为: hdpi...
阅读全文