随笔分类 - Windows
摘要:如果想令Windows Console显示中文字符,我们需要将Console的代码页换为中文:chcp.com 936。 英文的代码页为439。
阅读全文
摘要:SynchronizationContext在Windows多线程编程中是一个很重要的概念。因为Window要求对UI的更新都应该在主线程(同时也是UI线程)中更新。换句话说,我们应该要将所有的UI操作都传递回主线程。SynchronizationContext就是用来帮助我们进行UI线程同步的工具。 有意思的是,Console,WinForm和WPF对于SynchronizationContext的处理有些细微的差别。 Console程序中没有SynchronizationContext的概念。这也很好理解。因为Console没有UI控件,所以也不需要Synchronization...
阅读全文
摘要:有时候,管理员通过组策略强制屏保锁定计算机。我不喜这种强制的事情。删除之。Remove-ItemProperty'Registry::HKEY_CURRENT_USER\Software\Policies\Microsoft\Windows\ControlPanel\Desktop'ScreenSaverIsSecure
阅读全文
摘要:当调试Windows服务的启动代码时,服务经常因为长时间没有响应而被Windows关闭。为了防止这种情况,我们需要设置注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ServicesPipeTimeout。Windows用这个值就是来决定Service启动超时的时间。
阅读全文
摘要:因为一些安全原因,有些公司会把USB硬盘从Windows系统中禁用掉。很不幸的是,我现在就是供职于这样的一公司。这里是我找回我禁用掉的硬盘的方法:在注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbstor中查找一个叫做Start的DWORD的键。如果这个值没有或者这个值不等于3,就创建或者将这个值改为3。
阅读全文
摘要:最近我在准备一个关于Windows内存管理的演讲。其中的一个议题是堆(Heap)。众所周知,C++中的new操作符会调用到C中的malloc函数的,而malloc函数是依赖于KERNEL32.DLL中的HeapAlloc(…)。 为了演示这3个函数的关系,我写了一个简单的程序。在这个程序会分别调用new和malloc。我在KERNEL32!HeapAlloc上设置了断点。在程序运行起来...
阅读全文
摘要:最近,我尝试对我项目里面的DLL文件的基址重新定位,因为重定位可以提高系统的启动速度。在完成了重定位之后,我想测量一下我的应用的启动速度到底有了多大的提升。但是如何判断一个进程是不是已经完成了初始化呢?一个Windows API帮助了我:WaitForInputIdle"。 这个API函数一直等待知道指定的进程在创建该应用的第一个窗口的线程中没有任何阻塞的输入。 顺便提一下,在我的例子中基址重定位...
阅读全文
浙公网安备 33010602011771号