首页
社区
课程
招聘
屏蔽RealPlay 10.5英文版更新补丁并附java源代码
发表于: 2006-8-19 17:01 6365

屏蔽RealPlay 10.5英文版更新补丁并附java源代码

2006-8-19 17:01
6365

现在很多软件有自动更新的功能.占这系统资源,占这网络资源...比如说realplay,我的机器没有连网,可是天天看到它的更新组件realsched.exe在我内存里跳来跳去.很郁闷,把它的注册表key删除了吧,通常在:
"Software\Microsoft\Windows\CurrentVersion\Run"
key里边!
下一次,启动realplay主程序,它有会给你复原回去,没有用.
所以想屏蔽它一下,我的realplay 10.5 英文版...

两个方案:
第一个在主程序找Realplay加载更新组件的地方,由于主程序太大,加载组件很多,注册表里有大堆key.估计主程序也用,更新程序也负责查看更新点.很杂乱的,
我用了第二中偷工减料的方法:
是直接在目录找到它的更新组件:
C:\Program Files\Common Files\Real\Update_OB\realsched.exe
...
在更新组件中,它负责几个网络组件的更新和加载不鼓励上网的朋友改,对于上不了网的来说,如果它启动有异常,主程序有几处报告网络错误...

思路大概是这样,可以让更新组件把所有网络组件全检查完毕,有更新的就报告你,没有就退出!!
我是直接让它退出的,没有上网,让它更新干哈.
我用java写的补丁源程序,原理很简单,见笑了,出了错误自己负责,其他版本不兼容,要改自己动手!!!
1:找入口,
2:更新检查
3:退出
===
由于没有上网直接1与3步骤跳过2,其他人在另diy

import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import java.io.*;
import java.util.*;
import javax.swing.*;

public class Pediy implements ActionListener
{
         Frame f;
         byte[] buff;
         String strfile;
         Label t1,t2,t3;
         FileDialog fd;
         TextField tf1,tf2,tf3;
         Button b1,b2,b3,b4;
         
public void display()
{
         f=new Frame("屏蔽RalyPlay更新补丁-qiweixue ");
               f.setSize(350,230);
               f.setBackground(Color.lightGray);
               f.setLocation(300,240);
               f.setLayout(new FlowLayout());
               t1=new Label("realsched.exe:");
               t2=new Label("程序入口指针(*必须是十进制):");
               tf1=new TextField("",40) ;
               tf2=new TextField("90597",40);
               tf3=new TextField("",40) ;     
               t3=new Label("http:www.pediy.com");
               b1=new Button("打开文件");
               b2=new Button("修改");
               b3=new Button("撤消");
               b4=new Button("about");
               f.add(t1);
               f.add(tf1);
               f.add(t2);
               f.add(tf2);
               f.add(t3);
               f.add(tf3);
               f.add(b1);
               f.add(b2);
               f.add(b3);
               f.add(b4);      
               b1.addActionListener(this);
               b2.addActionListener(this);
               b3.addActionListener(this);
               b4.addActionListener(this);
               f.addWindowListener(new WinClose());
               f.setVisible(true);
              tf3.setText("Don't destroy me!,如果RealPlay运行异常,请撤消操作...");
                  tf3.enable(false);
                 b2.enable(false);
                 b3.enable(false);
}
public static void main(String[] args)
   {
         
              (new Pediy()).display();
    }
    public void actionPerformed(ActionEvent e)
    {
            if(e.getSource()==b1)
            {
           
             fd = new FileDialog(f,"qiweixue open",FileDialog.LOAD);
             fd.show(true);
                     strfile=fd.getDirectory()+fd.getFile();
                     if (strfile!=null)
                     {
                        tf1.setText(strfile);
                        
             }
               b2.enable(true);
               b3.enable(true);
       }
        else if(e.getSource()==b2)
        {
              try
                            {
                             
                              String str=new String(tf2.getText());  
                              long offset=Long.parseLong(str);
                              long fixset=offset;
                              RandomAccessFile raf=new RandomAccessFile(strfile,"rw");                             
                              byte[] newbuf={-23,69,01,0,0};
                              buff=new byte[5];
                              raf.seek(fixset);
                              raf.read(buff,0,5);
                              raf.seek(offset);
                              raf.write(newbuf);
                               JOptionPane.showMessageDialog(f,"修该成功!");
                             
                             raf.close();
                              
                     }
                       catch(Exception e1)
                       {
                               e1.printStackTrace();
                       }
                       tf2.enable(false);
                     
               
        }
        else if(e.getSource()==b3)
        {
          try{         
                     
                     String str=new String(tf2.getText());
                     long offset=Long.parseLong(str);
                         RandomAccessFile raf=new RandomAccessFile(strfile,"rw");                             
                           //  byte[] oldbuf={85,-117,-20,106,-1};
                             raf.seek(offset);
                             raf.write(buff);                    
                             raf.close();
                         JOptionPane.showMessageDialog(f,"撤消成功");
                         tf2.enable(true);
                         tf3.enable(true);
            }
          catch(Exception e1)
            {
          e1.printStackTrace();       
            }
       }
       else
       {
       final Frame f2=new Frame("www.pediy.com");
               Label b1=new Label("Author:qiweixue ,this is only used to RealPlay version English 10.5 :=>");
                f2.add(b1);
               f2.addWindowListener(new WindowAdapter(){
               public void windowClosing(WindowEvent e)
        {
                f2.hide();
        }
                       });
      
      f2.setLocation(300,240);
       f2.setSize(370,100);
       f2.setVisible(true);
   
    }
}
}

class WinClose extends WindowAdapter
{
        public void windowClosing(WindowEvent e)
        {
                System.exit(0);
        }
}

=========
运行要jdk2,
一个开执行包程序Pediy.jar 和源代码Pediy


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 7
支持
分享
最新回复 (1)
雪    币: 258
活跃值: (230)
能力值: ( LV12,RANK:770 )
在线值:
发帖
回帖
粉丝
2
晕,上传...k了...
上传的附件:
2006-8-19 17:13
0
游客
登录 | 注册 方可回帖
返回
//