Windows Client 客户端在关机,不外乎两种情况: 1. 没有处理 Windows 关机消息: 2.处理了关机消息,但是超时了: 上面这两种情况,都会让Windows 关不了机.在现实生活中,这个情况的出现,让用户很头疼! 一般出现上面这种情况,要对代码的分析,一定要对消息分发,消息处理的地方进行重点对待.对于Delphi 程序,很多事通过 Var aHande:THandle; begin aHande:=AllocateHWnd(WndProc); end; 传入 WndProc…
MakeObjectInstance应该不会帮助处理(接收)消息回调函数的返回值,可是有时候又确实需要这个返回值,这可怎么办呢?我是看到这段文字的时候,想到这个问题的: 当WM_PAINT不是由InvalidateRect产生时,即由最大化,最小化等产生时,或者移动产生(移动有时只会产生WM_ERASEBKGND消息)系统先发送WM_ERASEBKGND消息,再发送WM_PAINT消息. 如果处理WM_ERASEBKGND消息时返回FALSE,BeginPaint标记pt.fErase 为TRU…
WM_QUERYENDSESSION消息是Windows向你询问Windows能否关闭,WM_ENDSESSION消息表示提示你Windows即将关闭.故当应用程序退出时, WM_QUERYENDSESSION消息和WM_ENDSESSION消息均不响应.也就是说也就是说,你的程序在运行状态时,而系统由于某种原因需要注销或重启(或关机),此时操作系统会向你询问,但到你的同意(返回TRUE)后,系统才能做进一步的操作. Windows 在注销.重起.关机之前会向每个当前正在运行的应用程序发送WM_…
替换应用程序exe图标,主要使用的API函数是BeginUpdateResource(),UpdateResource(),EndUpdateResource()来使用自定义的ico文件类替换exe程序原来的图标. // 第一个参数是将要替换图标的exe文件路径,第二个参数是替换的ico文件路径 void ReplaceExeIco(LPCTSTR lpszApp, LPCTSTR lpszIco) { try { CFile file(lpszIco, CFile::modeRead); LO…
1.使用SessionEnding事件 参考MSDN. 2.在需要处理 关机事件中可以注册SessionEnding事件 App.Current.SessionEnding += Current_SessionEnding; private void Current_SessionEnding(object sender, SessionEndingCancelEventArgs e) { //处理一些事情 DoExit(); }…
现在很多的应用程序都有这样一种功能,当用户选择最小化窗口时,窗口不是象平常那样最小化到任务栏上,而是“最小化”成一个任务栏图标.象FoxMail 3.0 NetVampire 3.0等都提供了这样的功能.实现这样的功能实际上并不复杂,在窗口最小化时,窗口会发出WM_SYSCOMMAND消息,你只要需要截取Windows的WM_SYSCOMMAND消息,在窗口最小化时隐藏窗口并调用WindowsAPI函数Shell_NotifyIcon将定义的图标添加到任务栏上,Shell_NotifyIcon的…
/* MSDN: Any application that adds or removes fonts from the system font table should notify other windows of the change by sending a WM_FONTCHANGE message to all top-level windows in the operating system. The application should send this message by …
这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情无法做到,因此额外做了一个.NET桌面引擎来辅助,那么现在就需要让这两个不同环境的程序进行交互. 第一步:在桌面应用引擎中,唤醒商店应用. 根据MSDN解释,这边最简单的办法是使用协议(URI protocol)来解决. 1:打开程序的Package.appxmanifest,在声明中添加协议 名称…
DELPHI编写服务程序总结 一.服务程序和桌面程序的区别 Windows 2000/XP/2003等支持一种叫做“系统服务程序”的进程,系统服务和桌面程序的区别是:系统服务不用登陆系统即可运行:系统服务是运行在System Idle Process/System/smss/winlogon/services下的,而桌面程序是运行在Explorer下的:系统服务拥有更高的权限,系统服务拥有Sytem的权限,而桌面程序只有Administrator权限:在Delphi中系统服务是对桌面程序进行了再…
catalogue 1. 引言2. 使用注册表注入DLL3. 使用Windows挂钩来注入DLL4. 使用远程线程来注入DLL5. 使用木马DLL来注入DLL6. 把DLL作为调试器来注入7. 使用createprocess来注入代码8. APC DLL注入9. API Hook拦截10. Detours - Inline Hook11. 以服务形式执行DLL中指定函数/或直接指定EXE作为启动程序12. 劫持现有Service的启动DLL13. Reflective DLL injection…
<让你的 Qt 桌面程序看上去更加 native>是一个系列文章.在这个系列中,你将会了解到如何让你的 Qt 桌面应用程序看上去更加 native.这里,我假设你已经清楚如何使用 Qt 编写桌面应用程序,因为文章中大多都是所谓的“细节”,而有时候恰恰是这些“细节”决定着用户体验.同时,这里的程序都是指桌面程序,不包括各个嵌入式平台. 关于 Qt 的介绍这里就不再赘述.这里只说明一点,相比其他的 C++ UI库,Qt 的处理实际上更类似 Java 的 Swing.Qt 的大部分组件都是由自己的绘…
Window下python安装ansible,基于ansible api开发python程序 在windows下使用pycharm开发基于ansible api的python程序时,发现ansible的包无法import.本机安装的是3.7.0的python,cmd下使用pip安装ansible一直安装失败.pycharm中使用File | Settings | Project: runTasks | Project Interpreter也无法导入ansible的包.后来终于找到解决方法. 下…
aardio 支持与很多编程语言混合开发.网络上大家分享的 aardio + Python 混合开发的文章很多,aardio + PHP 的文章却很少. 其实 aardio 与 PHP 混合开发是真的简单 ! CGI 调用 PHP aardio 虽然很小,但自带嵌入式 HTTP 服务器,通过 CGI 调用 PHP 也非常简单. 这种方式就跟平时用 PHP 写网站基本一样了,而且兼容所有 PHP 版本.下面我们直接看 aardio 代码示例: import win.ui; var winform…
一.隐藏和显示光标 函数: int ShowCursor ( BOOL bShow );  参数 bshow,为布尔型,bShow的值为False时隐藏光标,为True时显示光标:该函数的返回值为整型,为鼠标隐藏或显示的指数器:返回值大于等于0时显示光标,否则隐藏鼠标:如果安装了鼠标初值为0. 二.交换鼠标左右键和恢复 函数:BOOL SwapMouseButton ( BOOL fSwap );  参数 fSwap,为布尔型,TRUE表示交换鼠标左右键,FALSE表示恢复系统默认左右手习惯:返…
常用的处理窗体的API函数如下(注意:API函数必须放在窗体中...): 使用C#语言,要引用DllImport,必须要添加using System.Runtime.InteropServices命名空间 (1)获得当前前台窗体句柄 [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)] public static extern IntPtr GetForegroundWindow(); 返回值类型…
今天兴之所至,来写一写关于程序返回值的问题.普通的py程序就不用多说了,sys.exit(result),result就是你想返回的返回值啦.我们今天来讲讲用PyQt5写的带界面的程序如何设置返回值的问题. 1. 先画一个简单的界面,放置两个Button,代表着两个返回值.(界面怎么画就不用多说了) 2. 调用此界面 import sys from PyQt5.QtWidgets import QApplication, QWidget from ui_button import Ui_Form…
返回值的函数 思考:上一节函数中,通过"document.write"把结果输出来,如果想对函数的结果进行处理怎么办呢? 我们只要把"document.write(sum)"这行改成如下代码: function add2(x,y) { sum = x + y; return sum; //返回函数值,return后面的值叫做返回值. } 还可以通过变量存储调用函数的返回值,代码如下: result = add2(3,4);//语句执行后,result变量中的值为7.…
本文中,我们介绍在Enclave函数中调用不可信OCALL函数,并获得OCALL函数的返回值. 1. 复制SampleEnclave示例并建立自己的OcallRetSum项目 SampleEnclave示例实现了安全printf函数,可以被用来安全打印我们需要打印的字符串.我们使用OCALL计算两个整数之间的所有整数的累加和(包括这两个整数),并调用printf函数打印复制的目的字符串.我们把SampleEnclave示例复制到自己的文件夹中,基于该示例,我们开发一个在Enclave函数中调用O…
从Vista开始,想阻止系统关机就开始变麻烦了,不能只拦截WM_QUERYENDSESSION了,操作系统只给一个应用程序两秒钟的时间去保存自己的东西,两秒钟之后,不管做完了没有,Game Over!可是如果你正在刻录一张光盘呢?两秒钟是都不够的,所以Vista之后也给提供了一种方式阻止系统关机,就是ShutdownBlockReasonCreate函数,只要调用这个函数,第一个参数传递创建主窗口的句柄,第二个参数传递一个字符串,这个字符串说明阻止关机的原因,将会显示给用户.而且msdn提示说这…
经常使用windows系统的同学可能都会遇到这样一种情况,刚按照完的应用程序,可能会在桌面产生一个提示信息,指示当前快捷方式可以使用了,并给出相应的文字说明,指示该快捷方式的功能.那么大家有没有考虑过这供功能是怎么实现的呢,使用一般的窗口spy工具应该都能抓取windows系统桌面使用的窗口类,我使用彗星小助手抓取了下,效果如图1所示.原来windows桌面窗口是一个listview,那么问题就变得简单了,我们只需要拿到窗口句柄,并向其发送消息LVM_GETITEMCOUNT消息,获取到窗口it…
本文首发于:码友网--一个专注.NET/.NET Core开发的编程爱好者社区. 文章目录 C#/.NET基于Topshelf创建Windows服务的系列文章目录: C#/.NET基于Topshelf创建Windows服务程序及服务的安装和卸载 (1) 在C#/.NET应用程序开发中创建一个基于Topshelf的应用程序守护进程(服务) (2) C#/.NET基于Topshelf创建Windows服务的守护程序作为服务启动的客户端桌面程序不显示UI界面的问题分析和解决方案 (3) 前言 在上一篇…
首先简单介绍Windows 10 S Mode,Windows在该模式下,只能跑MS Store里的软件,不能通过其他方式安装.好处是安全有保障,杜绝一切国产流氓软件.就像iOS一样,APP进商店都需审核,同时APP在沙盒环境下,以普通用户权限运行,不能偷偷摸摸地干坏事,抢占资源的情况也不会发生,自然体验流畅,系统性能提升.一切都是那么的美好,但Windows S Mode就是没有人用…… 这个悲剧真是不好说,也许是用户习惯,也许是违背人性,同时侵犯了厂商(要审核,要分成)和用户的利益(很多软件…
ylbtech-杂项-桌面应用程序:Windows Live Writer(WLW) Windowslive Writer 即(WLW) 是一个免费的桌面应用程序,您可以使用它轻松发布丰富的内容到您的网络日志.使用 WLW,您可以轻松地在所有日志服务上共享照片和视频 — Windows Live.WordPress.Blogger.Live Journal.TypePad 等. 1.返回顶部 1. 外文名:Windowslive Writer 简    称:WLW 实    质:桌面应用程序 功…
.Net 桌面程序(winform,wpf,跨平台avalonia)部署到windows 入门 本文以为avalonia为例,用Setup Factory 将.Net桌面程序(winform,wpf,跨平台avalonia)打包成windows安装包.avalonia项目创建,参考上一篇. 第一步:vs2019发布程序 第二步:打开 Setup Factory 9 新建项目(Setup Factory 自己网上下载) 1.创建打包项目: 2.填写公司,程序名称,版本号(非必填) 3.根据发布的是…
传统桌面程序不能完全被web和移动端替代,但是需要改造.这里要说的是巧用webapi把以前用dll和com组件,ocx等方式做接口,做分布式开发的方式,改成restful 风格api的方式实现跨平台,多客户端(类型).并分享几则案例. 1.智能储物柜 项目背景:某智慧城市项目需要用到有智能锁的储物柜,用app扫码控制存取,并和智慧城市后台交互.智能锁系统是工业的塔式控制器,使用modbus ascii协议控制,端口使用串口.储物柜配备了工控电脑32寸竖屏,工控电脑控制塔式控制器(单片机),工控机…
迁移传统桌面程序到MS Store的另一种方式是使用Desktop App Converter工具.虽然本篇标题包含了Desktop App Converter(以下简称DAC),实际上我是来劝你别用DAC的…… 首先我简单介绍下DAC,DAC可以转换传统桌面程序,将其打包成APPX文件.虽然名字里有Converter字样,实际这是一个打包程序,并不会真正去修改用来打包的源程序. 为了使用DAC,你需要1607版本以上的Windows 10 Pro.我想也没有人会闲的蛋疼用Win7去打包APP进…
原文链接:http://blog.csdn.net/flyoxs/article/details/3710367 Windows开机和关机慢,很多时候慢得令人抓狂.特别是做嵌入式开发时(如XPE和WinCE),任谁都无法忍受开发出来的设备开关机的蜗牛速度.所以我们得为她加速.采用HORM是不错的方案,因为是直接从休眠文件中恢复系统现场,开机速度快了不少.采用HORM方案后,Windows默认的关机过程中,很多步骤对我们的设备来说,是完全不需要的,我们需要直接断电关机.本文将分析Windows的关…
在上一篇<迁移桌面程序到MS Store(7)——APPX + Service>中,我们提到将desktop application拆分成UI Client+Service两部分.其中UI Client可以通过Desktop Bridge技术Pacakage成APPX,上传到MS Store以供下载,而Service则仍以传统的desktop application安装包形式提供.这样势必造成用户安装时的割裂感.本篇将就这个问题进行一些讨论. 首先我们参照上图的架构创建Sample Solut…
在传统桌面程序中,对图标的使用大多是直接嵌入JPG或者PNG的图片.在祖传的1366x768分辨率下,并没有什么问题.相对于手机硬件的突飞猛进,也侧面反映了PC行业的落寞和桌面程序开发的不思进取.用360卫士的群众并不能倒推PC行业的升级.反倒是水果公司双高的利润和口碑让人很是眼馋.加之某软跳出来教猪队友做硬件.现在倒是有些起色,1080p的屏幕已是标配,4k也算常见.那么传统桌面程序在升级过程中,就会遇到今天要讨论的,如何解决高分辨率下图标模糊的问题. 一种解决方案是按最高的分辨率提供图片.这…
Windows10 1809版本开始,微软又对UWP开放了新的Capability:AllowElevation. 通过这个新的Capability,UWP APP能够在运行时向用户请求Admin权限,配合Windows 1607版本就引入的RunFullTrust Capability(参考<迁移桌面程序到MS Store(9)——APPX With Desktop Extension >),我们可以让MS Store中的APP拥有无限接近传统桌面程序的能力.本篇提到的Sample工程位于全…