- 博客(34)
- 资源 (3)
- 收藏
- 关注
原创 获取文件的版本信息和修改时间
CFile file; BOOL bFile = file.Open(csPath, CFile::modeRead); if ( !bFile ) { return false; } CFileStatus status; file.GetStatus(status); char szCreateTime[24]; int nReturn = sprintf(szCrea
2014-09-12 15:34:28
1192
1
原创 VC 窗口透明化
//ModifyStyleEx(0, WS_EX_LAYERED|WS_EX_TRANSPARENT); / ModifyStyleEx(0, WS_EX_LAYERED); SetLayeredWindowAttributes(0, 128, 2); //SetWindowPos(&CWnd::wndTopMost, 0, 0, 0, 0, SWP_NOSIZE|SWP_NOMOVE);
2014-06-27 10:25:55
629
转载 批处理bat文件得到当前绝对路径、盘符等
echo offecho 当前盘符:%~d0echo 当前盘符和路径:%~dp0echo 当前批处理全路径:%~f0echo 当前盘符和路径的短文件名格式:%~sdp0echo 当前CMD默认目录:%cd%pause 点击打开链接
2014-05-21 09:53:18
1187
原创 VC调用C#Dll之无法声明全局或静态变量变量
C++中调用C#,dll,想象着跟调用C++的dll1> TestSMS.cpp1>d:\vs2010\testzhou\testsms\testsms\TestSMSDlg.h(36): error C3265: 无法声明托管“m_ActivityVote”(在非托管“CTestSMSDlg”中)1> 不能声明全局或静态变量,也不能声明引用 gc 堆中对象的本机类
2014-05-19 10:41:50
3233
1
原创 C++通过CLR调用C#dll--如何定义合适的参数
C++调用C#的dll的时候,如何正确的定义C#函数是一个问题,本文将告诉你如何解决这个问题
2014-03-04 15:53:05
3528
3
转载 临界区的LockCount为何小于-1
很有用的一篇关于临界区的文章,转与此,备用 某日,在浙大国家实验室,与老方和小崔调试监控死锁问题。机柜里一溜架装服务器上出现死锁问题。用WinDbg看,发现其中导致死锁的临界区LockCount值是小于-1的数!! 多次重现该问题,发现LockCount经常是负的两三百。我等本着不十分科学严谨,但又有一点科学严谨的态度,装模作样查了下资料,显示如下: LockCount
2014-02-28 09:56:15
770
原创 服务程序中以管理员权限启动其它程序
项目中的实际问题:需要用一个服务程序来启动并监控另一个程序,而该程序中使用了JavaScript,并且访问百度的地图API,启动该程序后,发现地图总是无法加载, 这个问题纠结了我和外部程序的开发者三天时间了,一直没有头绪,今天写了一个最简单的百度地图的加载代码,结果弹出如下提示框 但是当我自己按照普通的方式直接运行这个外部程序的时候,却能够正常加载,因此推断问
2014-02-26 15:41:07
3371
1
转载 VC 用发音函数Beep()播放简谱音乐
Win32 API中有个非常有意思的发音函数Beep(),可以用它在扬声器上播放简单的音调,如果按简谱来设置播放的内容,就可以播放一些简单的音乐了。 函数原型:BOOL WINAPI Beep( __in DWORD dwFreq, __in DWORD dwDuration);函数说明:第一个参数表示频率,用Hz为单
2013-12-30 13:45:18
687
原创 C++ 弹出U盘
调研USB弹出,记录结果:bool CUSBControl::RemoveUSB(CString csDisk){ HANDLE hDevice; // handle to the drive to be examined BOOL bResult; // results flag DWORD junk; // discard results DWORD dwError;
2013-11-07 17:14:57
3543
2
原创 ATL服务程序
使用ATL编写服务程序比较简单,ATL生成向导会自动生成,编译后运行命令:注册:aaa.exe /Service卸载服务:停止后运行命令aaa.exe /UnRegServer 重写Run函数,OnStop,OnShutDown,Install,RegisterAppId等函数可以在Run个函数里面来实现自己的功能HRESULT Run(int nShowCmd = S
2013-11-01 11:16:36
2470
1
原创 警惕, _endthreadex带来的内存泄漏
unsigned int __stdcall Test(LPVOID lpParam){ CString csUSBID = L"ABC" _endthreadex( 0 ); return 0;} int main(){ HANDLE hThreadUnsafe = NULL; hThreadUnsafe = (HANDLE)_beginthreadex(NULL,
2013-10-31 17:10:03
1766
转载 WMI, CoInitializeSecurity
错误 0x80010119为:RPC_E_TOO_LATE CoInitializeSecurity has already been called。说明CoInitializeSecurity 已经被调用过,这不算是错误。判断该函数执行是否成功的方法应为:HRESULT hr;... hr = CoInitialzieSecurity();if (SUCCEED(
2013-10-29 14:38:28
1186
原创 CPU使用率计算
int CTestCPUDlg::CPUUsage(int id){ int cpuusage; PVOID pProcInfo = NULL; DWORD dwInfoSize = 0x20000; PPROCESSINFO pProcessInfo; DWORD dwWorkingSet; long ( __stdcall *NtQu
2013-10-21 14:27:59
662
原创 遍历并监视,重新启动进程
#include "tlhelp32.h"#include #pragma comment (lib,"Psapi.lib")void CTestComExeDlg::MonitorProcess(){ while(bRun) { //CComPtr pComExecute; HRESULT hr = ::CoCreateInstance( CLSID_ComExecut
2013-10-18 14:28:06
536
原创 Com组件调用JS代码并传递多个参数个JS函数
项目中经常碰到JS与Com组件交互的问题,通过查找网络资料和项目实际需要,总结如下:一、Com组件简单回调JS代码JS中定义函数 function printMsg(msg1, msg2, msg3, msg4, msg5) { alert(msg1); alert(msg2); alert(msg3); alert(msg4); alert(m
2013-10-15 10:39:34
1690
原创 IE使用ATL时不弹出警告框
在用IE调用编写的ATL组件是,总是会弹出“在此页上的ActiveX控件和本页上的其他部分的交互可能不安全。你想允许这种交互吗?”的对话框,很麻烦,可以通过往接口类中添加如下代码来避免这个问题。 代码见图片中红色部分
2013-10-11 15:56:01
746
原创 巧用Single.NAN设置控件属性
很多时候在设计页面的时候,就给控件设置了大小,比如设置了Height和Width属性,但是有时候又不需要设置属性,比如希望这个控件填充满一个容器,如果通过计算的方式来重设Height和Width,就显得很麻烦,这时候使用single.NaN就很好解决这个问题了。 public MainPage() { InitializeComponent()
2010-05-05 10:31:00
614
原创 VS2010 使用 System.IO.Packaging压缩文件
项目中需要压缩文件,于是在网上找了很多相关的例子,很多都是使用SevenZip来做的,也有一些其他的方法,http://kb.cnblogs.com/a/1618150/ 这篇博客里面讲的比较详细,但是我没有采用其中的方法,而是使用System.IO.Packaging来实现的 public static void CreateFile(string path) {
2010-05-04 16:33:00
4944
5
原创 有效避免使用递归
实例: 自动化脚本管理工具,数据存储在服务器,读到客户端后,需要建立一个数据结构,从上到下顺序为:Folder-->Object-->Control-->Operation-->parameterFolder-->Object-->Operation-->ParameterFolder-->Case-->CaseProcess-->Parameter 通过每个对象的Pa
2010-05-04 16:06:00
898
原创 SilverLight 保存文件
Silverlight不允许用户对本地文件进行操作,虽然提供了独立存储功能,但往往不能满足用户的需求,因此,需要通过别的方式来达到保存数据的目的。 案例: 一个自动化脚本管理软件,生成case之后,需要将脚本导出保存到本地。 实现: Server端根据客户端传递过去的case列表,创建文件,然后生成zip包,完成之后,客户端下载该zip包,所有的脚本都在zip包中。
2010-05-04 15:50:00
2438
3
原创 Silverlight访问数据库
Silverlight访问数据库需要通过WebService来实现。在服务器端Add New Item-->WebService,然后添加代码[WebMethod] public SmartProgramData OnOpen(string i_DBName) { AccessDBUtility.Initialize(_strD
2010-04-21 11:21:00
2030
1
原创 Silverlight4 RichTextBox内容输入和取出
Silverlight4终于有了期盼已久的RichTextBox,但是一用,却发现很不顺手,要通过代码往其中添加内容就已经很麻烦了,而要从中取出内容,更是折腾了我半天,最后才找到了合适的事件来解决这个问题 添加内容:public void UpdateBriefContent() { txtLibraryContentBrief.Blocks
2010-04-20 16:27:00
2078
6
原创 Silverlight4 RichTextBox通过代码输入字符
安装了Silverlight4,使用RichTextBox,但却发现无从下手,与原来的TextBox和VB中的RichTextBox区别太大,甚至连怎么通过代码往其中写入都毫无头绪,幸好还有MSDN,OMG private void button1_Click(object sender, RoutedEventArgs e) { // Cre
2010-04-15 17:16:00
883
原创 改变IE标签栏
system.windows.browser命名空间下的HtmlPage类,调用HtmlPage.Document.SetProperty("title", "SmartTesterNet (" + m_NameOfOpenDataBase + ")");即可更改IE的标签栏
2010-03-30 14:21:00
523
原创 DataGrid中实现鼠标双击事件
定义一个成员变量: public static bool m_bFirstTime = true; 使用DataGrid的如下两个事件:MouseLeftButtonUpSelectionChanged 在两个事件中对m_bFirstTime进行处理,代码如下:private void dg_MouseLeftButtonUp(object send
2010-03-25 09:46:00
2191
1
原创 WebService配置
用IIS将Silverlight工程配置好后,通过IE访问,发现与WebService相关的操作都没有任何反应,原来是由于WebService的IP地址不对,将默认的地址(比如http://localhost:10047/SmartTesterService.asmx),改为网站对应的地址(比如http://172.25.69.155/SmartTesterNet/SmartTesterServi
2010-03-24 17:26:00
936
原创 Silverlight中使用gif
Silverlight本身支持png格式的图片,但是对于gif之类的动画就不支持了,由于程序的需要,在网上找到这么一个好东东,可以播放gif文件,不敢独享 http://gifimage.codeplex.com/releases/view/26627 简介:Gif的图片一直由于其优秀的压缩算法,较小的文件以及可以播放动画深受网上用户喜爱,然而由于Silverlight并不直接
2010-03-23 13:58:00
6066
6
原创 配置IIS网站
尝试着配置了一下网站,第一次没有成功,原因,需要设置IP地址,如图配置完成,但是发现仍然无法通过IE打开开,提示HTTP-401-2错误,发现在新建虚拟目录的第三步,如图,要将Browse复选框选中,才能用IE打开
2010-03-23 11:09:00
785
原创 Access&OleDBCommand,数据库打开后无法关闭
我的程序中有这么一段代码,执行完SaveControl这个函数以后,检查数据库所在文件夹,发现数据库一直处于打开的状态(.ldb文件一直存在),开始以为是因为使用了transaction造成的,于是将相关的代码注释掉,运行发现仍然如此,随后添加上cmd.Connection = null,再运行,顺利解决,但是还没有搞清楚为什么是这样的,有待调查。public static void Save
2010-03-23 11:04:00
1031
原创 控件之DataGrid----实现自动添加新行和数据交换
Silverlight的很多控件相对于VS的其他程序来说,还很不成熟,Datagrid就是其中一个,可能个人比较愚笨,经过好几天才把一些问题搞清楚了。 先描述一下自己这个测试程序的功能。 1,Datagrid上显示10条信息,在最后面另外显示一条空信息,当其中的内容被改变以后,这条信息存入数据源中,Datagrid的最后重新添加一行空信息2,通过上下键实现数据的交换,比如当前选
2010-03-19 09:20:00
2231
3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人