PHP程序员开发win32应用程序之梦

相信做纯WEB开发的PHP程序员都会想过,要是PHP能开发windows本地应用程序多好,于是上网一查找出来的很多都是“PHP-GTK”的老文章,这东西好像已经没人维护了,随便看了下,也就没去细研究了。

前阵子折腾了node-webkit,这东西可以用javascript + chorme内核blink 开发本地应用,满足纯WEB程序员开发本地应用程序的梦想。

node-webkit有几个优点:

1、内置blink内核,跟随google升级,支持现代浏览器特性,妈妈再也不用担心我的浏览器兼容问题了

2、内置nodejs,就是加强版的javascript,WEB程序员入手快,nodejs功能强大

3、入门级开发流程比较简单,没有太多看不明白的东西

4、跨平台,三大操作系统都可用

5、国人开源项目,现在在github上很热门

缺点:体积太大。  写个hello wold,嗯,20M以上。 试了不少压缩方法,最少的也要17M以上,头痛

有道词典前阵子也开源了类似项:叫有道hex,但我比较看好node-webkit,社区更活跃更成熟。

因为自己是PHPer,自然是写PHP才够酸爽,于是又在想其它解决方案。

有没有一个绿色的php web server软件呢,这样可以把软件做成绿色版,不用特意去安装apache nginx之类的东西。

功夫不负有心人,找到了一个叫QuickPHP的好东西,作者本意是想做个方便快速调式PHP脚本的工具,歪打正着,收下了。

研究了一会,发现是delphi写的软件,用exescope处理下,修改几处文字和菜单,尽量不显示出这货是QuickPHP

再用C++边学边开发,弄个简易的浏览器,其实就是生成一个窗体,里弄个IE控件上去。 启动窗体的时候,用C代码启动QuickPHP,然后隐藏QuickPHP的窗体。

(这里还有个问题没解决,否则就比较完美了,最小化后,隐藏托管栏上的图标很麻烦,winxp和win7处理方法还不怎么一样,自己C能力太差,先放弃优化)

折腾两天,成果截图

运行 localphp.exe可以看到效果

其中php.ini和ext目录非必须,为了使用一些PHP扩展才加上

除掉非必要的扩展目录(ext),剩下的文件打包压缩完就小几M,还算满意

demo中的功能利用了js的异步请求,达到无刷新操作。当然你还可以优化css样式、禁止js报错、禁止复制文字、禁止右键菜单等手段让它看去更像客户端

本身php就有很多可以控制操作系统的函数,再加上可以用exec()执行命令行代码,所以PHP能做的事情就很多了。

除了以上提到的PHP能做的事,其实还是很想让PHP能调用系统里的dll文件,那就牛逼了。想像一下,用PHP找旺旺句柄、呼出旺旺聊友窗口、自动发送消息给旺旺好友,多美丽的场景...

找了半天,发现两个扩展php_w32api.dll和php_ffi.dll,可惜好像都没有人维护了,新版的php都不能用。有兴趣有能力的同学,可以到php官方去找,优化一下,编译一份给偶用,万分感谢。

总结一下,在这几天实现想法的过程中,受益颇多:

1、PHP居然只要一个php5ts.dll就可以运行,还有sapi是什么

2、C/C++其实也不是那么可怕,学进去还是挺有意思的

3、办法总比困难多

接下来想完善两块:

第一、彻底隐藏web server服务器,即那个QuickPHP 或 者自己做个web server

第二、完成用WEB控制旺旺发送消息功能。思路可以是

1、用PHP的扩展(如上面提到的w32api和ffi)来调用系统dll;

2、自己写PHP扩展,在扩展里实现发送旺旺消息功能;

3、在主窗体中实现发送旺旺消息,通过某种机制让PHP通知到C

PHP程序员开发win32应用程序之梦

时间: 2024-08-29 13:47:50

PHP程序员开发win32应用程序之梦的相关文章

程序员开发大型应用程序的技巧

英文原文:Tips to Developers Starting on Large Applications 假如你是一名Java开发者,正在开发和维护包含2000个类并使用了很多框架的应用程序.你要如何理解这些代码呢?在典型的Java企业项目 小组中,大部分能够帮你的高级工程师看起来都很忙,文档也很少.你需要尽快交付成果,并向项目组证明自己的能力.你会如何处理这种状况呢?这篇文章为开始 开发新项目的Java开发者提供了一些建议. 1. 不要试图一下子搞懂整个项目 仔细考虑一下,为什么你会想要先

Web程序员开发App系列 - 开发我的第一个App,源码下载

Web程序员开发App系列 Web程序员开发App系列 - 认识HBuilder Web程序员开发App系列 - 申请苹果开发者账号 Web程序员开发App系列 - 调试Android和iOS手机代码 Web程序员开发App系列 - 开发我的第一个App 待续 目录 前言 源码和App下载 准备工作 查看留言页面 增加留言页面 前言 看了前面几篇文章后我们终于要开始敲代码了,由于所有前端代码都是Html静态问题,所以你用什么开发工具都可以,后台我采用MVC开发,因为Html静态文件需要打包,里面

趣文:程序员/开发人员的真实生活

本文借用了多张动态图,以诙谐的方式,展示了程序员/开发人员的真实生活.文章原始版本是西班牙语,由Alex Soto 翻成了英文版,再由伯乐在线翻成了中文版. (更多 IT 相关趣文,请查看伯乐在线博客的"趣文漫画"分类.) 往工作环境上传东西的时候: 没保存,就关了 IDE 的时候: 凌晨三点调代码的时候: 正则表达式返回了了预期结果的时候: 当老板告诉我,我那一直负责的模块失效了的时候: 刚修复了Bug,我给老板演示的时候: 上传的代码,没有测试,居然也能如预期工作的时候: 市场部同

【转】程序员/开发人员的真实生活[多图预警]

[本文转自伯乐在线,看一次笑一次啊,,] 本文借用了多张动态图,以诙谐的方式,展示了程序员/开发人员的真实生活.文章原始版本是西班牙语,由Alex Soto 翻成了英文版,再由伯乐在线翻成了中文版. 往工作环境上传东西的时候: 没有“Google一下”,也找到了问题解决方案的时候: 没保存,就关了 IDE 的时候: 凌晨三点调代码的时候: 正则表达式返回了了预期结果的时候: 当老板告诉我,我那一直负责的模块失效了的时候: 刚修复了Bug,我给老板演示的时候: 上传的代码,没有测试,居然也能如预期

100+个程序员开发必备参考手册(在线及下载) [复制链接]

100+个程序员开发必备参考手册(在线及下载) [复制链接] 上一主题下一主题   离线张广巨 班长 关闭 个人中心可以申请新版勋章哦 立即申请知道了 加关注 发消息 只看楼主 倒序阅读 使用道具楼主   发表于: 2012-11-22 本部分设定了隐藏,您已回复过了,以下是隐藏的内容 即使经验丰富,天赋过人,也不得不承认,你并不能记得所有的东西,尤其是各种各样的语言的API,参考手册(Cheat Sheet)和Google肯定是必备,为了更方便的使用,也有很多有心的人收集整理了很多,比如下面这

展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告【转载】

走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们.01. 自己的户口档案.养老保险.医疗保险.住房公积金一定要保管好.由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳来跳去,甚至是城市都换过3个.还好户口没丢掉,其他都已经是乱了,好几个城市里,

浅谈程序员的行业选择---程序人生

引言 本篇博文接着许久之前的一篇博文<浅谈程序猿的职业规划,看你如何决定自己的未来吧.>,继续探讨一下程序员行业相关的内容. 行业的选择不仅对于程序员来说非常重要,对任何一个人来说都是一样的.只不过对于程序员来说,行业更容易被忽略.从程序员每天热议的话题就能看出来,大部分的热议话题都是C#和Java哪个更牛B,或者IOS和Android哪个挣得钱多,很少看到程序员去讨论两个行业谁更有发展前景. 鉴于此,今天我们就来着重讨论一下程序员行业的选择,行业和语言一样,没有谁优谁劣,只是一种选择罢了.

“菜鸟”程序员和“大神”程序员差距在哪里

“菜鸟”和“大神” 刚刚走出就业的程序员,技术是刚刚起步的基点.那下面我们就聊一聊有关技术的东西.首先请您先想想这几个问题.现在社会上有很多程序员,CSDN就是我们程序员的家,那您是否可想过程序员为什么会有不同的水平?你又是哪一类的程序员?“菜鸟”程序员和“大神”程序员差在哪里?真是差在技术上了吗?那不是差在技术上那差在了哪里? 上面很多一连串的问题,没有把你搞晕吧!那就听我一一给您分析这个问题背后的答案.确切的说程序员分为“菜鸟”程序员和“大神”程序员. 一个程序员有多优秀,就得看他写的代码!

漫谈程序员系列:千奇百怪的程序员

干开发时间长了,遇见好多好玩儿的程序员. 看看你躺枪了没. 博客之星评选,点击投我一票,谢谢.投过了也可以点哦,每天都可以投投一票. 留一手 有个哥们儿,在一合资公司做程序员,能力挺强,写代码很神的. 他的代码我看过,深得 MFC 的精髓:大量的宏,很多函数就两三个宏,一个BEGIN_XXX,一个END_XXX,中间再夹另外一个宏.诺,这就是汉堡包了. 我碰巧看他的代码(题外话,没和他在一个公司一块儿待过),那个头大啊--这玩意儿也能记得住嘛,厉害,真是厉害. 就是这么厉害个人儿,项目组数他牛