易截截图软件、单文件、免安装、纯绿色、仅160KB

在python中使用dll导出函数

最近在学习py,实践是:校验指定文件是否打上数字签名~python的标准库中没有提供这类函数,同时在网上搜了一下也没有找到第三方的包有提供,最后找到了可以使用Crypt32.dll的导出函数CryptQueryObject()。
首先我希望pywin32的包中最好已封装这样的api,结果发现没有-_-!。于是不得不自己动手~py中调用dll的导出函数方法比较简单:
from ctypes import *
CryptQueryObject=windll.LoadLibrary("Crypt32.dll").CryptQueryObject
可是接下来问题来了。。CryptQueryObject中的参数怎么处理。。
BOOL WINAPI CryptQueryObject(
  __in  DWORD dwObjectType,
  __in  const void* pvObject,
  __in  DWORD dwExpectedContentTypeFlags,
  __in  DWORD dwExpectedFormatTypeFlags,
  __in  DWORD dwFlags,
  __out  DWORD* pdwMsgAndCertEncodingType,
  __out  DWORD* pdwContentType,
  __out  DWORD* pdwFormatType,
  __out  HCERTSTORE* phCertStore,
  __out  HCRYPTMSG* phMsg,
  __out  const void** ppvContext
);
参数类型中有数字,指针,宏定义。py中对于参数没有这么丰富的定义,同时也没有宏定义,于是需要转换成py能认识的,这又要使用ctypes了,google到这张表,并将宏定义换成数值:结果如下
bResult=CryptQueryObject(1,\
                        c_wchar_p(path),\
                        1024,\
                        2,\
                        0,\
                        None,\
                        None,\
                        None,\
                        None,\
                    &n


相关文档:

选择阅读Python源码来进一步提高算法

最近在研读Python源码剖析一书,此书相当不错,如果自己冲动的去分析Python源码可能会到处碰“鼻”,看到此书时是09年,那时为了研究内存机制才发现有这么一本书,但是工作太忙,根本没时间去分析源码,到了2010年,这是非常有深重意义的一年,所以这一年一定要比之前做的还要付出更多,要想成为技术顶尖就必须研 ......

beginning python summary chapter 3 使用字符串

0、字符串是不可变的。
1、基本字符串操作:索引、切片、复制、成员、长度、最大和最小。
2、字符串格式化:用格式化操作符百分号%实现,eg:>>> format = "Hello, %s. %s enough for ya?"
                    ......

Python中的字符串与字符集

Python支持ascii字符串,unicode字符串,以及各种字符集,那么它们到底各是什么概念,相互之间存在何种关系呢?
在Python中,ascii字符串,即str类型的值,可能用来表示任意的一块存储空间,那么也就是说,这个字符串内部可以是任何值,例如:可见字符组成的字符串,或者一段二进制数据等。unicode字符串,即unicode类型的 ......

python语法介绍

1.1. 语法
1.1.1. if
>>> x=int(raw_input("please enter an integer:"))
please enter an integer:-8
>>> if x<0:
...  print 'negative'
... elif x==0:
...  print 'zero'
... else:
...  print 'positive'
...
negative
这里有几个知识点需要提醒:
1。和 ......

Python Mako Template 学习笔记


Mako是什么?Moko是Python写的一个模板库,Python官网python.org用的就是它哦。其他废话也就不累赘了,直接来点代码,方便阅读与了解把。
(Mako官网地址:http://www.makotemplates.org/ ,可以下载安装包,推荐使用easy_install安装)
from mako.template import Template
mytemplate = Template("hello world!") ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号