给用户最大的便利
0000-00-00 00:00:00
中国的网民低端的占大多数,他们不懂英文,不知道I agree 是同意,也就当然不会装英文软件,他们对运行环境也没有概念,这也是为什么java软件在中国不流行的原因。现在我们用和java类似的flex来写一些客户端的程序,这样,如何让用户便利的安装就成了重要的问题。
首先第一点,我们的安装程序必须打包运行环境,回想java,多少用户对.class或者.jar不知所措,或者懂一点电脑的,幸苦去下载java运行环境,却又不知道classpath是怎么回是,最终的结果就是用户气急败坏,大骂软件是垃圾。。
然后就是安装运行环境时必须辅助用户点击 类似I agree 或者finish 之类的英文,就如同safe360帮助用户安装漏洞补丁一样,下面是最简单的实现代码:命令行传入安装air运行环境可执行程序的路径,然后运行这个程序,激活窗口,按3下tab,按一下回车,这里面所有的值参数等,都是通过spy++,侦测安装窗口实际鼠标键盘事件得到的, 也许有人看到会觉得有用,
#include "windows.h"
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
{
STARTUPINFO si;
memset((void *)&si,0,sizeof(STARTUPINFO));
si.cb = sizeof(STARTUPINFO);
PROCESS_INFORMATION pi;
if( !CreateProcess(lpCmdLine, NULL, NULL, NULL, NULL,NULL,NULL, NULL,&si,&pi) )
{
LONG LErr=GetLastError();//返回0.
return LErr;
}
HWND hWnd=FindWindow(NULL, "Adobe AIR Setup");
while(!hWnd)
{
hWnd=FindWindow(NULL,"Adobe AIR Setup");
Sleep(1000);
}
SendMessage(hWnd,WM_SETFOCUS,0,0);
SendMessage(hWnd,WM_ACTIVATE,1,0);
SendMessage(hWnd,WM_KEYDOWN,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_CHAR,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_KEYUP,VK_TAB,0xc00f0001);
SendMessage(hWnd,WM_KEYDOWN,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_CHAR,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_KEYUP,VK_TAB,0xc00f0001);
SendMessage(hWnd,WM_KEYDOWN,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_CHAR,VK_TAB,0x000f0001);
SendMessage(hWnd,WM_KEYUP,VK_TAB,0xc00f0001);
SendMessage(hWnd,WM_KEYDOWN,VK_RETURN,0x001c0001);
SendMessage(hWnd,WM_CHAR,VK_RETURN,0x001c0001);
return 0;
}
Leave a Reply