来源:蜘蛛抓取(WebSpider)
时间:2017-08-03 11:47
标签:
卸载旧版本组件异常
我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本_百度知道
我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本
我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本啊?
我有更好的答案
下载百度手机助手,里面有历史版本随你挑。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请问,更新显卡驱动之前需要先把原来的驱动卸载掉吗?_显卡吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:3,135,614贴子:
请问,更新显卡驱动之前需要先把原来的驱动卸载掉吗?收藏
貌似之前直接装花屏过…
自定义里面有覆盖选项
我都直接来的,没花过
n会自动卸载,a卡建议手动卸载。
这个+10086
呃,我的显卡是GT 138M,看来还是先卸了再装吧…
貌似 装个 驱动精灵神马的 自动删除旧版本的
登录百度帐号我打包android apk 安装新版本的时候为什么必须卸载之前卸载的版本_百度知道
我打包android apk 安装新版本的时候为什么必须卸载之前卸载的版本
我有更好的答案
因为你打包的apk与之前应用的签名不一致
千万不要卸!
InstallShield安装新的打包程序时,默认会提示下面的对话框,大意是说已经安装了产品的另一个版本,要用户手动去卸载老版本,不是很友好。 下面是对InstallShield在安装新版本时自动卸载老版本的一些尝试,主要是Install Script程序的编写。 1.首先要将Installation Designer–》Upgrades–》Prepare Setup For Upgrade Scenarios–》Upgrade Windows Installer Setup–》common下的Small/Minor Upgrade Settings选择为Don’t prompt user,just install the upgrade。这样不会出现上面的提示框,继续下面的卸载和安装。 2.下一步是要对OnResumeUI事件进行响应,主要是OnResumeUIBefore和OnResumeUIAfter。 3.在OnResumeUIBefore中完成老版本的卸载,脚本如下: //--------------------------------------------------------------------------- // OnResumeUIBefore // // The OnResumeUIBefore event is called when end user runs installation that // is performing a resumed install. Usually this happens by specifying // a property like REINSTALL or ADDLOCAL at the command line when the // product is already installed. After this function returns, // ComponentTransferData is called to perform file transfer. //--------------------------------------------------------------------------- function OnResumeUIBefore() string szfilename, szmsg1, szmsg2; STRING szDir, szI begin nresult = MessageBox(&新版本安装之前将卸载旧版本,是否继续?&, MB_YESNO); if(nresult = IDNO)then szfilename = UNINSTALL_STRING +& /UNINSTALL /hide_progress&; nresult = StrFind(szfilename,&.exe&); if nresult &=0 then StrSub(szmsg1,szfilename,0,nresult + 4); StrSub(szmsg2,szfilename,nresult + 4,200); LongPathToQuote(szmsg1, FALSE ); LongPathToQuote(szmsg2, FALSE ); //szfilename = &\&& + szmsg1 + &\&& +szmsg2; if(LaunchAppAndWait(szmsg1, szmsg2, LAAW_OPTION_WAIT_INCL_CHILD | LAAW_OPTION_WAIT) & 0 )then MessageBox(&旧版本卸载失败&, MB_OK); else WaitForApplication(LAAW_PROCESS_INFORMATION.hProcess, LAAW_PROCESS_INFORMATION.dwProcessId, INFINITE, LAAW_OPTION_WAIT_INCL_CHILD | LAAW_OPTION_WAIT); szIcon = DesktopF DeleteFolderIcon(szIcon, &AliProbe&); szDir = INSTALLDIR + &AliProbe V1.1&; DeleteDir(szDir, ALLCONTENTS); 需要注意的地方是,在调用LaunchAppAndWait方法等待老版本卸载完成的时候,一定要加上LAAW_OPTION_WAIT_INCL_CHILD ,主要是因为卸载的过程是Windows Install启动卸载程序,所以一定要等待Windows Install的子进程结束,否则将不能等待。 4.在OnResumeUIAfter中完成新版本的安装,脚本如下: //--------------------------------------------------------------------------- // OnResumeUIAfter // // The OnResumeUIBefore event is called when end user runs installation that is // performing a resumed install. Usually this happens by specifying a property // like REINSTALL or ADDLOCAL at the command line when the product is already // installed. In the handler, installation usually displays UI that will // inform end user that Reinstallation has been completed successfully. //--------------------------------------------------------------------------- function OnResumeUIAfter() STRING noU NUMBER szProcessId; NUMBER nvProcessH // Handle to a process NUMBER nvModuleH // Handle to a process module STRING szModuleN // Module filename NUMBER nvBytesR begin szProcessId = GetCurrentProcessId(); if szProcessId != 0 then if ProcessRunning(noUse, szProcessId, szModuleName) = TRUE then LaunchApp(szModuleName, &/hide_progress&); else MessageBox(&自动安装新版本遇到问题,请再次运行安装文件完成安装。&, MB_OK); else MessageBox(&自动安装新版本遇到问题,请再次运行安装文件完成安装。&, MB_OK); 这里是通过GetCurrentProcessId得到当前进程的Id,并调用ProcessRunning获取当前进程模块的完整路径。 5.ProcessRunning的脚本如下: ////////////////////////////////////////////////////////////////////////////// // // Function: _Process_Running // // Description: Determines if the specified process is running in memory. // // Parameters: szAppName - Name of the application to check. // nvFindProcessId - ID of the process to find. // szFindModName - Name of the Module of the found process // // Returns: TRUE - The process is running. // FALSE - The process is not running. // ////////////////////////////////////////////////////////////////////////////// function BOOL ProcessRunning(szAppName, nvFindProcessId, szFindModName) BOOL bvR // Process is running NUMBER nvProcessIDs(512); // Array of process IDs NUMBER nvBytesR // Number of bytes returned in process ID array NUMBER nvP // Number of processes running NUMBER nvI // Loop index NUMBER nvProcessH // Handle to a process NUMBER nvModuleH // Handle to a process module NUMBER nvBytesR // Number of bytes required to store values POINTER pvProcessIDs; // Pointer to process ID array STRING svModuleN // Module name STRING svFileN // Module filename begin // The psapi.dll reads the Windows NT performance database. The DLL // is part of the Win32 SDK. if UseDLL(WINSYSDIR ^ PSAPI_FILE) & 0 then // Could not load psapi.dll. MessageBox(&ERROR: Could not load [& + WINSYSDIR ^ PSAPI_FILE + &].&, SEVERE); return FALSE; // Get the PIDs of all currently running processes. pvProcessIDs = ArrayToPointer(nvProcessIDs); EnumProcesses(pvProcessIDs, 512, nvBytesReturned); // Determine the number of process IDs retrieved. Each process ID // is PROCESSID_LENGTH bytes. nvProcesses = nvBytesReturned / PROCESSID_LENGTH; // Get the executable associated with each process, and check if // its filename matches the one passed to the function. for nvIndex = 1 to nvProcesses // Get a handle to the process. nvProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, 0, nvProcessIDs(nvIndex)); if nvProcessHandle != 0 then // Get a handle to the first module in the process, which // should be the executable. if EnumProcessModules(nvProcessHandle, nvModuleHandle, PROCESSID_LENGTH, nvBytesRequired) != 0 then // Get the path of the module. if GetModuleFileNameExA(nvProcessHandle, nvModuleHandle, svModuleName, SizeOf(svModuleName)) != 0 then // Extract the filename (without an extension) from // the path. //Add by QianShi at //Get module name by process id. if nvProcessIDs(nvIndex) = nvFindProcessId then szFindModName = svModuleN bvRunning = TRUE; goto ProcessRunningE ParsePath(svFileName, svModuleName, FILENAME_ONLY); if StrCompare(svFileName, szAppName) = 0 then // The process module matches the application // name passed to the function. bvRunning = TRUE; goto ProcessRunningE ProcessRunningEnd: if UnUseDLL(PSAPI_FILE) & 0 then MessageBox(&ERROR: Could not unload [& + WINSYSDIR ^ PSAPI_FILE + &].&, SEVERE); return FALSE; return bvR 程序的功能主要是枚举当前的进程Id,并通过Id匹配来得到Id对应的Module name,本函数同样可以判断某个name的进程是否正在运行。转载仅供参考,版权属于原作者。祝你愉快,满意请采纳哦
本回答被提问者和网友采纳
1条折叠回答
为您推荐:
其他类似问题
android的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。系统发生错误
页面错误!请稍后再试~unity更新需要卸载低版本吗?还是可以覆盖安装?【unity3d吧】_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:85,182贴子:
unity更新需要卸载低版本吗?还是可以覆盖安装?收藏
火星学习unity3d,编程师就业薪资20k起,毕业=高薪就业,unity3d0基础学习,半年即可入职一线游戏/互联网公司,火星终身免费推荐就业.
可以安装在不同位置,需要用哪个就打开哪个
我都是先卸载再安装的,unity下载安装很方便。
登录百度帐号