利用移动存储设备在计算机上重现用户配置环境的方法

文档序号:6460194阅读:269来源:国知局
专利名称:利用移动存储设备在计算机上重现用户配置环境的方法
技术领域
本发明属于在计算机上重现用户配制环境方法领域,尤其是一种 利用移动存储设备在计算机上重现用户配制环境的方法。
背景技术
随着硬件价格的下降与应用软件的增多,计算机已经普及到人们的工作和生活。同时,由于Internet的接入也越来越普及,用户不 仅可以在家里、公司、网吧连上Internet,还可以在咖啡厅、火车、 飞机上进行网上冲浪;如果计算机配置了无线网卡,接入Internet 就更加方便了。然而用户总是习惯于自己配置好的桌面应用环境,例如"我的文 档"的位置,"Internet Explorer"的主页,应用程序工具栏显示的 图标等等。但地理位置的改变通常导致用户需要在不同的计算机上切 换工作,而各个计算机上的桌面配置环境可能并不相同,用户经常需 要在使用之前花一定时间改动配置环境以适应自己习惯。同时,使用公共计算机上常用程序通常会留下一些操作痕迹,这 些痕迹极有可能泄露用户的隐私,对用户的信息安全构成威胁。例如, "Outlook Express"的邮件账户设置,"Internet Explorer"的历 史记录和cookies,等等。通常解决这一问题的方法有(1)采用便携式计算机即笔记本式电脑,笔记本电脑的便携性能够很好地解决由于环境变换带来的操作 不便的问题,但同时笔记本电脑本身在使用方面又有很多限制,如随 身携带几千克的东西毕竟还是不太方便,电脑电池的使用时间有限等等。(2)远程访问,该方法的优点是无需随身携带任何东西,缺点是 对网络依赖性太高,必须在局域网或VPN (虚拟专网)内才能有合适 的性能。(3)利用虚拟机,将操作系统装在虚拟机(VMware或Virtual PC)上,然后将虚拟机镜像放在移动存储设备上随身携带也可以解决200810056741.6说明书第2/10页这个问题,但是同时存在目标机器必须安装虚拟机软件,启动时间长, 对机器性能要求高等缺点。发明内容本发明的目的是提供一种利用移动存储设备在计算机上重现用 户配制环境的方法,能够将与用户个性化配置环境相关的配置信息提 取出来并存放于移动存储设备上,在目标计算机上把对这些配置信息 的操作重定向到移动存储设备上,从而重现用户自己的个性化配置环 境。本发明的技术方案是利用移动存储设备在计算机上重现用户配 制环境的方法,其特征在于包括以下步骤—-提取用户的个性化配置环境相关信息即私有配置信息,存储 于移动存储设备上;—-对存储在移动设备上的私有配置信息进行初始化,它包括根据移动存储设备的盘符重新设置用户环境变量;根据移动存储 设备的盘符修改私有配置信息中与盘符相关的信息项;一-使用预置的包裹程序将目标应用程序的注册表操作进行包 裹,即在目标程序执行文件中插入代码,以重写所要包裹的注册表系 统调用在执行文件中的入口;_一检测应用程序是否访问配制信息,当检测到应用程序访问配 置信息时进行如下步骤若为读操作,包括打开、查询、枚举,先判断读的信息是否存在 于私有配置信息中,如果是,则读取私有配置信息中的内容;否则读 取计算机中配置信息的内容;若为写操作若为修改包括增加操作,则无论操作的对象存不存 在于私有配置信息中,都操作私有配置信息;若为删除操作,则无论 操作的对象存不存在于私有配置信息中,都操作私有配置信息,并增 加判断标志表明该操作对象已被删除;一-当检测到应用程序没有访问配置信息时继续检测;若应用程 序退出,保存用户的个性化配置信息。本发明的效果是目前,便携式移动存储设备(如移动硬盘,U 盘)的使用越来越广泛,同时,越来越多的数码设备(如手机,MP3,4数码相机)都可以使用基于Flash Memory (闪存)的存储设备与计 算机直接进行高速数据交换。Flash Memory是近年来发展迅速的内 存,属于非挥发性内存(Non-volatile即断电数据也能保存),它具 有电擦除的特点,还具有低功耗、密度高、体积小、可靠性高、可擦 除、可重写等优点。另一方面,USB2. 0的数据传输速率可以达到480Mbps, IEEE-1394 (俗称火线)的传输速率也可以达到40簡bps, 一些PCI存储卡能达 到更高的传输速率。这样,CPU与便携式存储设备的数据交换速率可 以接近与内存的数据交换速率。基于上述分析,本发明提出将与用户个性化配置环境相关的配置 信息提取出来并存放于移动存储设备上,在目标计算机上把对这些配 置信息的操作重定向到移动存储设备上,从而重现用户自己的个性化 配置环境。本发明的方法具有如下特点(l)成本低廉,只需一个移动存储 设备,当前Flash Memory的价格已经突破Y100/GB,移动硬盘的价 格Y5/GB; (2)通用性好,在任何预装Windows XP (或更高)的操 作系统下都可以工作,无须额外配置其它硬件;(3)高效性,移动存 储设备和计算机间的数据交换速率已经接近或等同于计算机内部数 据交换速率;(4)先进性,普式计算和移动计算的发展方兴未艾,从 技术角度来讲,不会过时;(5)透明性,对用户来说使用透明,同时 无须修改操作系统和应用程序的代码,(6)易拓展,本发明己经完成 了针对几个Windows常用应用程序的配置环境迁移的实现,通过相同 方法,可以很容易实现其它应用程序的配置环境迁移。本发明技术的核心在于,将与用户个性化配置环境相关的配置信 息(记作私有配置信息)提取出来并存放于移动存储设备上,然后截 获应用程序读取配置信息的API,若访问的是私有配置信息,则重定 向到移动存储设备上;否则直接访问目标机器的配置信息(记为本地 配置信息)。同时,对与应用程序相关的配置信息的任何修改,都重 定向到移动存储设备,不对本地操作系统作任何改动。其主要创新点在于(1)只保存应用程序的配置信息,而不是整 个应用程序;(2)只重定向对配置信息的写操作和对个性化配置信息 的读操作;(3)对操作系统和应用程序透明实现。通过说明书附图我们可以看到,应用程序与操作系统无需修改,而是直接通过对系统调用进行包裹(实质就是在用户用到的系统调用 与实际实现的功能之间插入代码,以便截获用户程序的调用参数等信 息,详见下一部分),这样可以直接截获应用程序对配置信息操作, 若操作是写操作(包括增加,删除,修改)和针对个性化配置信息的 读操作,则将操作重定向到移动存储设备上。下面结合附图和实施例对本发明做进一步的说明。


图l是本发明的硬件框图; 图2是本发明的程序流程图。
具体实施例方式本发明由一台带有高带宽外设接口 (包括USB、 IEEE-1394)的 计算机和移动存储设备组成。它提取与用户个性化环境相关的配置信 息,并以移动存储设备作为载体。移动存储设备与计算机通过高带宽 数据线(包括usb接口、 IEEE-1394接口)相连。该技术先重新设置 环境变量,然后通过系统调用透明包裹技术对应用程序的注册表操作 进行包裹,从而将对用户个性化配置信息的操作重定向到移动存储设 备上,在几乎不影响性能和可靠性的前提下重现用户的个性化配置环 境。本发明的技术对用户完全透明。1、高速移动存储设备的安装与使用当前由许多高速移动存储设备,从存储介质上区分包括移动硬盘 与基于Flash Memory的多种存储器,后者包括闪存盘(优盘),CompactFlash卡,SmartMedia卡,Memory Stick, MultiMedia Card卡等。其中优盘已经取代软盘称为PC机的标准配置,而后面所提到 的多种存储卡也已经广泛地应用于数码相机、MP3播放器等多种数字从与计算机的连接协议上看,Windows系列以及其它主流操作系 统可以支持USB接口 (现在2.0标准是主流),IEEE-1394, PCMCIA 接口等。它们的最大数据传输速率都已达到400Mbps或更高,完全可 以满足操作系统和应用程序在移动存储设备存储配置信息的要求。因此,本发明技术不用解决移动存储设备的安装问题,具有很好 的易用性。2、提取用户个性化配置环境操作系统中与用户配置环境相关的配置信息总是以某种方式存储,如配置文件。下面以Windows为例说明。Windows操作系统使用环境变量和注册表来管理用户环境配置信息。(1) 环境变量环境变量是包含关于系统及当前登录用户的环境信息的字符串。 一些软件程序使用此信息确定在何处放置文件(如临时文件)。在安装过程中,Windows安装程序将配置默认系统变量,如 Windows文件的路径。此类环境变量通常称作系统环境变量。任何用户都可以添加、修改或删除用户环境变量。这些变量由 Windows安装程序、某些程序以及用户建立。这些环境变量通常被称 作用户环境变量。本发明的技术主要修改用户环境变量。例如,用户的"我的文档" 的存储位置,Internet Explorer的临时文件加存储位置,等等。由于环境变量是被继承的,每一个进程有不同的环境变量拷贝。 这样,只需在技术初始化时设置好环境变量,由该技术启动的程序就 都复制这些环境变量拷贝。(2) 注册表注册表是windows操作系统的用于集中统一管理系统各种配置 信息的一个庞大的关系型数据库,它是windows操作系统的基础和核 心。环境变量也保存在注册表里。注册表中记录了系统各个方面的信息,大致包括用户安装到计算 机上的各种软件程序的相互关联数据,也包括计算机的硬件配置信息 (包括计算机启动后自动的即插即用的设备如优盘和已有的各种设 备配置信息等),另外注册表中还存放着控制windows操作系统启动、 硬件驱动程序的安装以及启动windows各种应用程序的配置参数,这 些数据在整个windows操作系统运行中起着核心控制作用。本发明的技术主要关注与用户个性化配置环境相关的注册表信 息。例如用户Outlook Express收件箱的保存位置,Internet Explorer的主页等等。综合对环境变量和注册表的分析,剥离用户个性化相关配置信息 是完全可行的。3、系统调用透明包裹技术系统调用包裹技术的实质就是在用户用到的系统调用与实际实 现的功能之间插入代码,以便截获用户程序的调用参数等信息。在Windows中,本发明的技术主要截获Windows API中对注册表 操作的API,这个可以通过Detours工具实现。微软公司提供的 Detours开发工具可以通过为目标函数重写在内存中的代码从而拦截 Win32函数。Detours软件包还可以将任意的dll和数据片段(称之为 有效载荷)注入到任意的Win32 二进制文件当中。通过detours插装程序调用的注册表API函数后,可以通过API 函数的参数来判断函数的操作对象是不是我们所要关注的操作对象。 若是,则通过私有注册表API函数将操作重定向到私有注册表,否则, 则返回让Windows注册表操作函数继续执行。 4、系统的参考实现本发明的技术已经在Windows XP系统上实现,其具体组成如下 Windows XP SP2; USB 2. 0移动硬盘; 本发明技术启动程序和插装DLL; 用户个性化环境的配置文件(1) 设置环境变量本发明技术应用程序初始化时,通过调用Windows API设置用户环境变量。 由于环境变量的继承特性,由该技术启动的应用程序就不需要重新设置环境变 量。本发明技术初始化时设置的用户环境变量包括ALLUSERPROFILE, APPDATA, CommonPogramFiles, HOMEDRIVE, H0MEPATH, TEMP, TMP, USERPROFILE等等。(2) 提取与用户配置相关的注册表信息与Windows用户个性化配置环境相关的注册表项(即私有注册表)较多,主 要包括服LM、S0FTWAREWICR0S0FTWIND0WS、CURRENTVERSI0rAEXPL0RER、USER SHELL FOLDERS , HKCU\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\EXPLORER\USER SHELL FOLDERS等等。本发明技术主要提取HKEY_LOCAL_AMCHINE和HKEY—CURRENT—USER下的注册表项,其它根键下的与用户个性化配置环境相关注册表项,都是由这两 个根键下的注册表项依据特定规则组合而成,具体规则请参看MSDN开发文档。本发明技术将提取出来的注册表内容保存到user.r和system, r下面,分 别表示服EY—CURRENTJJSER和HKEY—LOCAL—MACHINE下的注册表项。 (3)包裹注册表操作本发明技术主要包裹的注册表API包括RegCreateKeyEx, RegOpenKeyEx, RegCloseKey, RegDeleteKey, RegSetValueEx, RegQueryValueEx, RegEnumKeyEx, RegEnumValue, RegDeleteValue, RegQuerylnfoKeyEx, RegOpenCurrentUser, RegOpenUserClass 。包裹的总体流程如下St印l:初始化,主要包括初始化配置文件。St印2:截获相关Registry API调用,并进行如下判断 如果是读操作,若操作对象在私有注册表中也有,则读取私有注册表中记录 的内容;如果是写操作(包括修改,删除,增加),则重定向到私有注册表,不对本机上的注册表内容作任何修改。包裹后的的函数如下(这里只描述了宽字节函数(函数名末尾为w),窄字节函数(函数末尾为A)再对参数进行A/W转换后调用宽字节函数),其中Real一开头的函数表明Windows Registry API, My开头的函数表示私有Registry API。Mine—RegCreateKeyExW(HKEY aO,LPCWSTR al, DWORD a2, LPWSTR a3, DWORD a4, REGSAM a5, LPSECURITY_ATTRIBUTES a6, PHKEY a7, LPDWORD a8))HKEY mine_hkey;if(MineRegOpenKeyEx(aO, al, 0, a5, a7)==ERR0R—SUCCESS)*a8 = REG_OPENED—EXISTING—KEY; Return ERROR—SUCCESS;61S6增加记录表示aO+al已打开;MyRegCreateKeyEx(aO, al, a2, a3, a4, a5, a6, a7, a8) Mine—RegOpenKeyExW(HKEY a0, LPCWSTR al, DWORD a2,REGSAM a3,PHKEY a4)HKEY mine—hkey;If (aO+al的组合存在于私有注册表) 记录aO+al已经打开;Return MyRegOpenKeyEx(aO, al, a2, a3, &mine_hkey);Mine—RegCloseKey(HKEY aO)if (aO为私有注册表的handle)若aO对应的rea1—handle也已打开,贝lJReal—RegCloseKey (real—handle); return MyRegCloseKey(aO);Else若aO对应的private—handle也已打开,则MyRegCloseKey (private—handle); return Real—RegCloseKey(aO);Mine—RegDeleteKeyW(HKEY aO, LPCWSTR al)if(MyRegDeleteKey(aO' al)==ERROR_SUCCESS) 标记aO+al为已删除ElseReturn相应错误代码Mine_RegSetValueExW(HKEY aO, LPCWSTR al, DWORD a2, DWORD a3, const BYTE* a4, DWORD a5)Return MyRegSetValueExW(aO, al, a2, a3, a4, a5);Mine—RegQueryValueExW (HKEY aO, LPCWSTR al, LPDWORD a2, LPDWORD a3, LPBYTE a4, LPDWORD a5)If (aO+al+valuename存在于私有注册表)Return MyRegQueryValueExW(aO, al, a2, a3, a4, a5);ElseReturn Real—RegQueryValueExW(aO, al, a2, a3, a4, a5);Mine_RegEnuraKeyExW(HKEY aO, DWORD al, LPWSTR a2, LPDWORD a3, LPDWORD a4, LPWSTR a5, LPDWORD a6, LPFILETIME a7)MyRegEnuniKeyExW(aO, al, a2, a3, a4, a5, a6, a7); Real一RegEn咖KeyExW(aO, al, a2, a3, a4, a5, a6, a7); 将两个枚举的结果合并,然后返回Mine—RegEn咖ValueW(HKEY a0, DWORD al, LPWSTR a2, LPDWORD a3, LPDWORD a4, LPDWORD a5, LPBYTE a6, LPDWORD a7)If (aO对性注册表项不存在于私有注册表中)return Real_RegEnumValueW(aO, al, a2, a3, a4, a5, a6, a7);6ls6MyRegEn咖Value(aO, al, a2, a3, a4, a5, a6, a7); Real—RegEnumValue (a0, al, a2, a3, a_4, a_5, a_6, a7);将两个枚举的结果合并,然后返回Mine_RegDeleteValueW(HKEY aO, LPCWSTR al)LONG res = MyRegDeleteValueW(aO, al) If (res == ERROR—SUCCESS)将aO+al标记为已删除;Return res;Mine_RegQueryInfoKeyW(HKEY aO, LPWSTR al, LPDWORD a2, LPDWORD a3, LPDWORD a4, LPDWORD a5, LPDWORD a6, LPDWORD a7, LPDWORD a8, LPDWORD a9, LPDWORD alO, LPFILETIME all)If (aO对应注册表项不存在于私有注册表中)Return Real—RegQuerylnfoKeyW(aO, al, a2, a3, a4, a5, a6, a7, a8, a9, alO, all);ElseReal_RegQueryInfoKeyW(aO, al, a2, a3, a4, a5, a6, a7, a8, a9, alO,all); MyRegQueryInfoKeyW(aO, al, a2, a3, a4, a5, a6, a7, a8, a9, alO, all); 合并两个查询结果然后返回;Mine—RegOpenCurrentUser(REGSAM aO,PHKEY al) HKEY real一hkey;Real一RegOpenCurrentUser(aO, &real—hkey);记录aO对应注册表项已经打开;Return MyRegOpenCurrentUser(aO, al);Mine_RegOpenUserClassesRoot(HANDLE aO, DWORD a1, REGSAM a2, PHKEY a3) HKEY real—hkey;Real一RegOpenlIserClassRoot (aO, al, a2, &real—hkey);记录aO对应注册表项已经打开;Return MyRegOpenUserClassRoot(aO, al, a2, a3);1.性能测试Windows XP系统下,对本发明的方法进行了技术性能测试。具体配置如下.-Windows XP Professional XP2 CPU: Pentium 4 2.41Ghz 内存1GBUSB驱动:微软的USB Mass Storage Device, 5.1.2600.2800 移动硬盘日立60G 5400转 本发明技术程序启动时间3秒运用本发明方法启动的程序 启动时间(单位秒)正常启动的程序启动时间(单 位秒)Internet Explorer 622Outlook Express22Microsoft Word 200322Microsoft Excel 200322Microsoft Powerpoint 200322Internet Explorer 744Microsoft Word 200755Microsoft Excel 200755Microsfot Powerpoint 20075权利要求
1、利用移动存储设备在计算机上重现用户配制环境的方法,其特征在于包括以下步骤---提取用户的个性化配置环境相关信息即私有配置信息,存储于移动存储设备上;---对存储在移动设备上的私有配置信息进行初始化,它包括---根据移动存储设备的盘符重新设置用户环境变量;---根据移动存储设备的盘符修改私有配置信息中与盘符相关的信息项;---使用预置的包裹程序将目标应用程序的注册表操作进行包裹,即在目标程序执行文件中插入代码,以重写所要包裹的注册表系统调用在执行文件中的入口;检测应用程序是否访问配制信息,当检测到应用程序访问配置信息时进行如下步骤若为读操作,包括打开、查询、枚举,先判断读的信息是否存在于私有配置信息中,如果是,则读取私有配置信息中的内容;否则读取计算机中配置信息的内容;若为写操作若为修改包括增加操作,则无论操作的对象存不存在于私有配置信息中,都操作私有配置信息;若为删除操作,则无论操作的对象存不存在于私有配置信息中,都操作私有配置信息,并增加判断标志表明该操作对象已被删除;---当检测到应用程序没有访问配置信息时继续检测;若应用程序退出,保存用户的个性化配置信息。
全文摘要
一种利用移动存储设备在计算机上重现用户配制环境的方法,能够将与用户个性化配置环境相关的配置信息提取出来并存放于移动存储设备上,在目标计算机上把对这些配置信息的操作重定向到移动存储设备上,从而重现用户自己的个性化配置环境。技术方案是将系统配置信息与环境变量,存储在移动存储设备上,并在运行时通过系统调用包裹技术截获对于这些资源的访问并重定向到移动存储设备上在几乎不影响性能和可靠性的前提下重现用户的个性化配置环境。它兼容已有的视窗应用软件,不需要修改其源代码。
文档编号G06F9/445GK101221510SQ20081005674
公开日2008年7月16日 申请日期2008年1月24日 优先权日2008年1月24日
发明者林 付, 张世钢, 肖常磊, 闯 陈 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1