完美者(wmzhe.com)网站以软件下载为基础,改版后的网站对功能性板块进行扩充,以期能够解决用户在软件使用过程中遇见的所有问题。网站新增了“软件百科”、“锦囊妙技”等频道,可以更好地对用户的软件使用全周期进行更加专业地服务。
粘贴助手 ClipboardEx 是 Clipboard Extension 程序,是最便捷的剪贴板扩展工具。ClipboardEx是真正的绿色系统编程,无修改注册表,单机版绝无网络连接,系统绝对安全可靠;软件不需安装即可执行,并支持网页快照,截图,以及图像和文字快速存储,使用方便快捷。"锦囊妙技"栏目是聚合全网软件使用的技巧或者软件使用过程中各种问题的解答类文章,栏目设立伊始,小编欢迎各路软件大神朋友们踊跃投稿,在完美者平台分享大家的独门技巧。
本站文章素材来源于网络,大部分文章作者名称佚失,为了更利于用户阅读和使用,根据需要进行了重新排版和部分改编,本站收录文章只是以帮助用户解决实际问题为目的,如有版权问题请联系小编修改或删除,谢谢合作。
软件大小:79.44 KB
OLE是建立在COM之上的技术,层次比COM要高。AfxOleInit()调用的是OleInitialize(),而OleInitialize()除了调用CoInitializeEx()来初始化COM库外,还进行一些其它的操作,这些操作对OLE应用来说是必须的,这些OLE应用包括: (1)Clipboard; (2)Drag and drop; (3)Object linking and embedding(现在的OLE,已不再仅仅是Object linking and embedding的概念); (4)In-place activation; 与AfxOleInit()对应的是,AfxOleTerm()。 CoInitialize和CoUninitialize必须成对使用,后者不必。
熊猫烧香病毒 一、病毒描述: 含有病毒体的文件被运行后,病毒将自身拷贝至系统目录,同时修改注册表将自身设置为开机启动项,并遍历各个驱动器,将自身写入磁盘根目录下,增加一个Autorun.inf文件,使得用户打开该盘时激活病毒体。随后病毒体开一个线程进行本地文件感染,同时开另外一个线程连接某网站下载ddos程序进行发动恶意攻击。 二、病毒基本情况: [文件信息] 病毒名: Virus.Win32.EvilPanda.a.ex$ 大 小: 0xDA00 (55808), (disk) 0xDA00 (55808) SHA1 : F0C3DA82E1620701AD2F0C8B531EEBEA0E8AF69D 壳信息: 未知 危害级别:高 病毒名: Flooder.Win32.FloodBots.a.ex$ 大 小: 0xE800 (59392), (disk) 0xE800 (59392) SHA1 : B71A7EF22A36DBE27E3830888DAFC3B2A7D5DA0D 壳信息: UPX 0.89.6 - 1.02 / 1.05 - 1.24 危害级别:高 三、病毒行为: Virus.Win32.EvilPanda.a.ex$ : 1、病毒体执行后,将自身拷贝到系统目录: %SystemRoot%\system32\FuckJacks.exe HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run Userinit "C:\WIN2K\system32\SVCH0ST.exe" 2、添加注册表启动项目确保自身在系统重启动后被加载: 键路径:HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键名:FuckJacks 键值:"C:\WINDOWS\system32\FuckJacks.exe" 键路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键名:svohost 键值:"C:\WINDOWS\system32\FuckJacks.exe" 3、拷贝自身到所有驱动器根目录,命名为Setup.exe,并生成一个autorun.inf使得用户打开该盘运行病毒,并将这两个文件属性设置为隐藏、只读、系统。 C:\autorun.inf 1KB RHS C:\setup.exe 230KB RHS 4、关闭众多杀毒软件和安全工具。 5、连接*****.3322.org下载某文件,并根据该文件记录的地址,去www.****.com下载某ddos程序,下载成功后执行该程序。 6、刷新bbs.qq.com,某QQ秀链接。 7、循环遍历磁盘目录,感染文件,对关键系统文件跳过,不感染Windows媒体播放器、MSN、IE 等程序。 Flooder.Win32.FloodBots.a.ex$ : 1、病毒体执行后,将自身拷贝到系统目录: %SystemRoot%\SVCH0ST.EXE %SystemRoot%\system32\SVCH0ST.EXE 2、该病毒后下载运行后,添加注册表启动项目确保自身在系统重启动后被加载: 键路径:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 键名:Userinit 键值:"C:\WINDOWS\system32\SVCH0ST.exe" 3、连接ddos2.****.com,获取攻击地址列表和攻击配置,并根据配置文件,进行相应的攻击。 配置文件如下: www.victim.net:3389 www.victim.net:80 www.victim.com:80 www.victim.net:80 1 1 120 50000 四、解决方案: 1、使用超级巡警可以完全清除此病毒和恢复被感染的文件。 2、推荐在清除时先使用超级巡警的进程管理工具结束病毒程序,否则系统响应很慢。 3、中止病毒进程和删除启动项目。 专杀工具:http://0e2.net/upload/Pandakiller.rar 很多人肯定有这样的感觉,杀完之后总觉的电脑还是运行速度慢,并且很容易复发。 其实在对“熊猫烧香”病毒的认识上,还要加深认识,那就是它不仅修改注册表信息、结束一些对头的进程、禁用一系列服务、删除若干安全软件启动项信息、遍历目录,感染除以下系统目录外其它目录中的exe、com、scr、pif文件等等。有一个更可怕的是它能自动改动电脑系统内存在的*.asp;*.html,*.js等网页构成文件,在你电脑所有的这些文件的编码自动加上一段病毒指向的代码,如此的隐蔽当然是无法防治了,前面说的两个专杀工具对此也无能无力。因为在杀完之后,只要你一上网,其病毒代码就自动与病毒网站链上,导致病毒再次发作,为此,只好手动删除了。 方法是:1、先用专杀工具查杀 2、用右键打开相应的盘符,不可用左键直接点击盘符。3、用Dreamweaver打开*.asp *.html *.js 这些文件,在编码最后一行,我们可以看到一串病毒指向的网页链接的代码,应用查找功能进行在文件夹内的全面删除,就OK了。 补充: 1. 结束病毒进程 %System%\drivers\spoclsv.exe 2. 删除病毒文件: %System%\drivers\spoclsv.exe 3. 右键点击分区盘符,点击右键菜单中的“打开”进入分区根目录,删除根目录下的文件: X:\setup.exe X:\autorun.inf 4. 删除病毒创建的启动项: [Copy to clipboard]CODE:[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run] "svcshare"="%System%\drivers\spoclsv.exe" 5. 修改注册表设置,恢复“显示所有文件和文件夹”选项功能: [Copy to clipboard]CODE:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\Folder\Hidden\SHOWALL] "CheckedValue"=dword:00000001 6. 修复或重新安装反病毒软件 7. 使用反病毒软件或专杀工具进行全盘扫描,清除恢复被感染的exe文件
Matlab提供了名为clipboard的函数,用于设置或读取clipboard中的文本。这个函数有一个非常严重的限制,那就是只能操作文本。虽然使用pastespecial参数通过数据导入工具将文本表格转化为Matlab矩阵,但不管怎么说,操作的都是clipboard中的文本,不能是其它类型的数据。 这次我们对clipboard添加了一个扩展,使其能够读取clipboard中的图像对象。这个功能当然是通过Java实现的,所以想要使用它,Matlab得有Java虚拟机的支持。clipboardex.m的全部代码如下: function dat = clipboardex(varargin) % 2013.06.26 PM 09:26 % Matlab 2013a % xialulee if strcmp(varargin{1}, 'copy') clipboard(varargin{:}); return; else dat = clipboard(varargin{:}); end if ~strcmp(dat, '') return; end import java.awt.* clipb = Toolkit.getDefaultToolkit().getSystemClipboard(); df = clipb.getAvailableDataFlavors(); data_type = 'not sure'; for idx = 1 : numel(df) if isequal(df(idx), datatransfer.DataFlavor.imageFlavor) data_type = 'image'; break; end end switch data_type case 'image' dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor); grabber = image.PixelGrabber(dat, 0, 0, -1, -1, false); grabber.grabPixels(); pixels = grabber.getPixels(); isgray = isa(pixels, 'int8'); pixels = typecast(pixels, 'uint8'); if isgray pixels = reshape(pixels, dat.getWidth(), dat.getHeight()).'; else pixels = reshape(pixels, 4, dat.getWidth(), dat.getHeight()); pixels = permute(pixels, 3:-1:1); pixels = pixels(:, :, 3:-1:1); end dat = pixels; otherwise error('Not supported data type.'); end end 上面的代码中,用来获取clipboard数据的代码就两行, clipb = Toolkit.getDefaultToolkit().getSystemClipboard(); dat = clipb.getContents([]).getTransferData(datatransfer.DataFlavor.imageFlavor); 如果clipboard中的内容是图像的话,dat的类型是java.awt.image.BufferedImage。之后的代码,就是利用PixelGrabber将dat中的像素数据提取出来,构造成Matlab图像矩阵。之所以看起来有点复杂,是因为Java什么的都是使用Row-Major,而Matlab使用Column-Major。如果图像是一副灰度图像还好说,通过矩阵转置即可完成数据的重新排列,但是含有RGB分量的图像,由于对应三维数组,需要使用permute这样的“广义转置”来排列数据。这些内容在之前的《xialulee大战pythonchallenge——level11(续)》中就已经提到过了。 使用方法。首先clipboard中应该有一副图像。比如,从FireFox中复制了一副图像,如下图 在Matlab中执行 >> img = clipboardex('paste'); 此时,变量img就是clipboard中的图像,用imshow查看 >> imshow(img)
菜单鼠标事件没有触发,换这个试试: import java.awt.BorderLayout; import java.awt.EventQueue; import java.awt.datatransfer.Clipboard; import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.border.EmptyBorder; public class Test extends JFrame{ private JPanel contentPane; static JTextArea text = new JTextArea(); Clipboard clipboard = new Clipboard("");//获取系统剪贴板。 /** * Launch the application. */ public static void main(String[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { Test frame = new Test(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); } /** * Create the frame. */ public Test() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setBounds(100, 100, 450, 300); contentPane = new JPanel(); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); contentPane.setLayout(new BorderLayout(0, 0)); setContentPane(contentPane); JScrollPane scrollPane = new JScrollPane(); contentPane.add(scrollPane, BorderLayout.CENTER); scrollPane.setViewportView(text); JMenuBar menuBar = new JMenuBar(); setJMenuBar(menuBar); JMenu menu = new JMenu("\u7F16\u8F91"); menuBar.add(menu); JMenuItem mntmCopy = new JMenuItem("copy"); mntmCopy.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { //text.copy(); String tempText = text.getSelectedText(); //拖动鼠标选取文本 //创建能传输指定 String 的 Transferable。 StringSelection editText = new StringSelection(tempText); /** 将剪贴板的当前内容设置到指定的 transferable 对象, 并将指定的剪贴板所有者作为新内容的所有者注册。 */ System.out.println("dfffffffff"); clipboard.setContents(editText,null); } }); menu.add(mntmCopy); JMenuItem mntmPaste = new JMenuItem("paste"); mntmPaste.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { //text.paste(); Transferable contents = clipboard.getContents(this); DataFlavor flavor= DataFlavor.stringFlavor; if( contents.isDataFlavorSupported(flavor)) { try { String str; str = (String)contents.getTransferData(flavor); text.append(str); }catch(Exception ex) { ex.printStackTrace(); } } } }); menu.add(mntmPaste); JMenuItem mntmCut = new JMenuItem("cut"); mntmCut.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { String tempText = text.getSelectedText(); StringSelection editText = new StringSelection(tempText); clipboard.setContents(editText,null); int start= text.getSelectionStart(); int end = text.getSelectionEnd(); text.replaceRange("",start,end) ; } }); menu.add(mntmCut); } }