今天在博客园看到的,通过反编译播放器找到解码音乐资源的地址的算法。

算法这里就不多解释了,原文有分析,这里说一下获取“加密”地址的过程:

1.进入单首歌曲介绍页,比如 http://www.xiami.com/song/1768914936 ,地址后面的数字就是歌曲的 id

2.根据 id 找到包含歌曲相关信息的 xml 文件地址,例如 http://www.xiami.com/song/playlist/id/1768914936/object_name/default/object_id/0

3.载入 xml ,获取 location 节点的内容,就是“加密”的地址

- 阅读剩余部分 -

嗯,你只需要一个网盘就能搭建属于自己的博客。

Farbox 其实是一个网盘应用(应该没理解错吧),目前支持 Dropbox 和金山快盘。

你的文件同步到 Dropbox 等云端后,FarBox 会去获取它们;然后文章、图片、HTML页各自归档。比如.txt .md .markdown .docx四种后缀的文档,会当做博客的日志来归档。

注册 Farbox

这里用金山快盘演示:在 Farbox 网站上点击“开始 FarBox”,选择“快盘登陆”,登陆成功后会在你的快盘的我的应用里建立一个“FarBox”文件夹,和你博客相关的文件都放在这里面,FarBox 会自动去获取他们。

- 阅读剩余部分 -

Opera 扩展包括有“后台脚本”、“注入脚本”、“弹窗脚本”等,所谓“消息”,各脚本间的数据传递就是通过消息实现的。

Opera 扩展发送消息的方式有3种,postMessage()/broadcastMessage()/消息通道。

例如在后台脚本和注入脚本之间传递数据:

可以使用 broadcastMessage() 来发送消息。你可以在后台脚本中这样写:

opera.extension.broadcastMessage("Hello there");

- 阅读剩余部分 -

功能:输入正则表达式即时匹配出结果

reg

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;

namespace RegexTool
{
    public partial class Form1 : Form
    {
        Regex reg;
        public Form1()
        {
            InitializeComponent();
        }
        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            richTextBox1.SelectAll();
            richTextBox1.SelectionBackColor = Color.White;
            regIt();
        }
        private void regIt()
        {
            try
            {
                if (textBox1.Text == "")
                {
                    label1.Text = "";
                }
                else
                {
                    reg = new Regex(textBox1.Text);
                    MatchCollection mc = reg.Matches(@richTextBox1.Text);
                    int count = 0;
                    for (int i = 0; i < mc.Count; i++)
                    {
                        richTextBox1.Select(mc[i].Index, mc[i].Length);
                        if ((i + 2) % 2 == 0)
                        {
                            richTextBox1.SelectionBackColor = ColorTranslator.FromHtml("#FFF000");
                        }
                        else
                        {
                            richTextBox1.SelectionBackColor = ColorTranslator.FromHtml("#D2F854");
                        }
                        if (mc[i].Length != 0)
                        {
                            count++;
                        }
                    }
                    label1.Text = "结果:" + count + "个";
                }
            }
            catch (Exception ex)
            {
                label1.Text = "错误:" + ex.Message;
            }
        }
        private void richTextBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.Control && e.KeyCode == Keys.V)
            {
                e.Handled = true;
                richTextBox1.Paste(DataFormats.GetFormat(DataFormats.Text));
            }
        }
        private void textBox1_MouseClick(object sender, MouseEventArgs e)
        {
            if (textBox1.Text == "在此输入正则表达式")
            {
                textBox1.Clear();
            }
        }
        private void textBox1_Leave(object sender, EventArgs e)
        {
            if (textBox1.Text == "")
            {
                textBox1.Text = "在此输入正则表达式";
            }
        }
    }
}

之前的自动更新 Smarthosts 到本地 hosts最后需要刷新 DNS 缓存,刷新 DNS 缓存首先想到的就是“ipconfig /flushdns” 命令,直接调用 cmd.exe 就可以了。不知道 .net 里是否提供了直接刷新 DNS 的方法,于是搜索了一下,很奇怪搜索“ C# 刷新 DNS 缓存”竟然找不到想要的结果,搜索“c# flush dns cache”一下就有答案了。方法大概有两种,一种就是调用 cmd.exe,一种就是调用系统 API:dnsapi.dll,其实 cmd 里方法也是调用 dnsapi.dll 实现的,为了不那么麻烦,这里就直接调用 cmd.exe 了。

using (System.Diagnostics.Process process = new System.Diagnostics.Process())
{
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
startInfo.FileName = "cmd.exe";
startInfo.Arguments = "ipconfig /flushdns";
process.StartInfo = startInfo;
process.Start();
}

网上教程太多了已经分辨不出是谁原创的了,用自己的话写一遍

新建白色背景画布

新建图层“布纹颜色”,填充你想要的颜色

新建图层“深色横纹”,填充白色

选择“滤镜-杂色-添加杂色”,数量99%,平均分布,单色

选择“滤镜-模糊-动感模糊”,角度0度,距离25像素

更改图层混合模式为叠加,不透明度25%

新建图层“深色竖纹”,和上面一样,不同的是把动感模糊角度设为90度

新建图层“浅色横纹”和“浅色竖纹”,和上面一样,不同的是图层填充为黑色,把杂色数量变为101%,图层混合模式为滤色,透明度20%

你会发现画布的边缘部分的效果和其他地方不一样,剪裁掉即可~

iphone布纹

SmartHosts 是一个托管在 googlecode 上的项目,定期更新 hosts 文件,你懂的。为了方便自动更新,不用每次都打开网站,于是尝试用 c# 实现了一下。

实现原理

https://smarthosts.googlecode.com/svn/trunk/hosts 抓取数据,写入本地 hosts。

实现步骤

1.抓取数据

2.判断本地是否有 hosts 文件。没有则直接建立,并写入抓取下来的数据;有则读取

- 阅读剩余部分 -

基本规则:

扩展必须有 config.xml 文件;

扩展必须有一个在后台执行操作的文件(通常是一个 index.html 文件);

注入脚本必须放到 includes 文件夹下;

所有文件必须打包进一个 zip 压缩包中,并将压缩包后缀名更改为 .oex

- 阅读剩余部分 -

获取分类数据

根据文章ID获取文章分类数据:get_the_category()

根据分类别名获取分类数据:get_category_by_slug()

<?php $cat = get_the_category($post_id);//返回数组,参数默认为当前文章ID ?>
<?php $cat = get_category_by_slug($slug);//返回数组?>

根据分类ID或分类对象获取分类数据:get_category()

<?php $cat = get_category( $category,$output,$filter);?>
<?php
$cat = get_category_by_slug($slug);//返回数组?>
<?php
$cat_id = $cat->term_id;//获取分类ID
$cat_count = $cat->count;//获取分类文章数
$cat_description = $cat->description;//获取分类描述
$cat_slug = $cat->slug;//获取分类别名
$cat_parent = $cat->parent;//获取分类父级引用
 ?>

- 阅读剩余部分 -

get_posts() 用于在 WordPress 中提取多篇文章。

调用

<?php $posts = get_posts($args); ?>

参数

<?php
$args = array(
'numberposts' => 5,
'offset' => 0,
'category' => ,
'orderby' => 'post_date',
'order' => 'DESC',
'include' => ,
'exclude' => ,
'meta_key' => ,
'meta_value' => ,
'post_type' => 'post',
'post_mime_type' => ,
'post_parent' => ,
'post_status' => 'publish' );
?>

- 阅读剩余部分 -