更新千炮捕鱼需要pp助手卸载旧版本组件之前的版本吗

我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本_百度知道
我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本
我更新了快速问医生,很不喜欢现在这个版本,我卸载了到百度重新下载还是这个版本,怎么换回之前那个版本啊?
我有更好的答案
下载百度手机助手,里面有历史版本随你挑。
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。请问,更新显卡驱动之前需要先把原来的驱动卸载掉吗?_显卡吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数: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下载安装很方便。
登录百度帐号

我要回帖

更多关于 卸载旧版本组件异常 的文章

 

随机推荐