为啥代码精简了无用的,语句就执行不起来

nezakin 2020-05-06 09:25:29
用的是智联天地N5的扫描枪

原来的DEMO是这样的

package com.juri.juriscanner;
import java.util.ArrayList;

import com.zltd.decoder.Constants; //调用sdk
import com.zltd.industry.ScannerManager; //这个也是sdk的
import com.juri.juriscanner.R;

//import android.annotation.SuppressLint;SoundUtils //这个是声音接口
import android.app.Activity; //下面的是系统自带的
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.os.Bundle;
import android.os.Handler; //消息处理 Handler对像
import android.os.Message;
import android.widget.ArrayAdapter;

import androidx.annotation.NonNull;

public abstract class BaseActivity extends Activity implements //调肜了iscannerstatuslisterner接口
ScannerManager.IScannerStatusListener {
protected static final int UPDATE_LIST = 4096; //4096
protected static final int UPDATE_NUMBER = 4097; //4097

protected ScannerManager mScannerManager;
protected SoundUtils mSoundUtils;

protected ArrayList<String> mBarcodeList = new ArrayList<String>(); //条码列表列表
protected ArrayAdapter<String> mListAdaper; //字符串适配器

protected int pressed = 0; //计数器,用来计算按键数
protected int scanned = 0; //计数器,用来计算扫描数
protected int decoderType = 0;


//onCreate方法
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mScannerManager = ScannerManager.getInstance(); //实例化
decoderType = mScannerManager.getDecoderType(); //解码类型
mSoundUtils = SoundUtils.getInstance();//声音对象
mSoundUtils.init(this); //声音初始化
mListAdaper = new ArrayAdapter<String>(this, R.layout.list_item, mBarcodeList);
}

public void onResume() {
super.onResume();
//2.返回后继续代码
int res = mScannerManager.connectDecoderSRV(); //连接驱动
mScannerManager.addScannerStatusListener(this);
if (decoderType == Constants.DECODER_ONED_SCAN) { //解码类型
if (!mScannerManager.getScannerEnable()) {
new AlertDialog.Builder(this)
.setTitle(R.string.action_settings)
.setIcon(android.R.drawable.ic_dialog_info)
.setMessage(R.string.scan_message)
.setPositiveButton(R.string.dialog_ok, new OnClickListener() {
@Override
public void onClick(DialogInterface paramDialogInterface, int paramInt) {
closeSelf();
}
})
.setCancelable(false)
.show();
}
}
}

// 4.APP暂停代码
public void onPause() {
mScannerManager.removeScannerStatusListener(this);
mScannerManager.disconnectDecoderSRV(); //断开连接
super.onPause();
}

protected void closeSelf() {
this.finish();
}

//更新UI,这里HANDLDER是因为安卓子线程不能更新UI,必须通过HANLDER方向
//HANDLER接收消息
//@SuppressLint("HandlerLeak")
// protected Handler mHandle = new Handler() {
//// public void handleMessage(Message msg) {
//// switch (msg.what) {
//// case UPDATE_LIST:
//// scanned++; //次数增加
//// mSoundUtils.success(); //播放声音
//// updateList((String) msg.obj); //添加数据到列表框
//// case UPDATE_NUMBER: //增加数量,显示在前台标签
//// updateCount();
//// break;
//// default:
//// break;
//// }
//// }
//// };

protected Handler mHandle=new Handler(new Handler.Callback() {
@Override
public boolean handleMessage(@NonNull Message msg) {
switch (msg.what){
case 4096:
scanned++; //次数增加
mSoundUtils.success();
updateList((String) msg.obj); //添加数据到列表框
case 4097:
//updateCount();
break;
default:
break;
}
return false;
}
});

public abstract void updateCount();

public abstract void updateList(String data);

//清除消息
public void clear() {
mBarcodeList.clear(); //清除列表
mListAdaper.notifyDataSetChanged(); //适配器清空
pressed = 0;
scanned = 0;
mHandle.sendEmptyMessage(4097); //发送数据
}

//3.结果改变,sdk事件
@Override
public void onScannerResultChanage(byte[] arg0) {
String data = new String(arg0);
Message msg = mHandle.obtainMessage(4096, data); //获取消息
mHandle.sendMessage(msg);
}

//扫描状态改变
@Override
public void onScannerStatusChanage(int arg0) {
// TODO Auto-generated method stub

}
}



package com.juri.juriscanner;

import com.zltd.industry.ScannerManager; //调用sdk接口
import com.juri.juriscanner.R;

import android.content.Intent; //intent方法
import android.os.Bundle;
import android.view.KeyEvent; //键盘事件
import android.view.View;
import android.widget.Button; //下面这些都是控件
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class MainActivity extends BaseActivity {
private boolean mIsScanKeyDown = false; //初始化控件变量
private ListView mListView;
private TextView mTextView;
private CheckBox mToneCheckBox;

private RadioGroup mRadioGroup;
private RadioButton mSingleButton;
private RadioButton mContinuousButton;
private RadioButton mKeyHoldButton;
private Button mAutoTestButton;

private Button mSingleScanButton;
private Button mContinousScanButton;
protected boolean inContinuousShoot = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTextView = (TextView) findViewById(R.id.textView);
mListView = (ListView) findViewById(R.id.list);
mAutoTestButton = (Button) findViewById(R.id.button_auto_test);
mToneCheckBox = (CheckBox) findViewById(R.id.checkBox_tone);
mToneCheckBox.setChecked(mSoundUtils.getPlay());
//通过这个按扭事件来设置声音是否可用
mToneCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
mSoundUtils.enablePlay(isChecked); //单选框是保证这个是否可用,如果不可用,就不播放声音了
}
});
mSingleButton = (RadioButton) findViewById(R.id.single_radioButton); //单扫按键
mContinuousButton = (RadioButton) findViewById(R.id.continuous_radioButton); //连扫按键
mKeyHoldButton = (RadioButton) findViewById(R.id.key_radioButton);
mRadioGroup = (RadioGroup) findViewById(R.id.rg);

//单选框的点击事件
mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
switch (checkedId) {
case R.id.single_radioButton:
mScannerManager.setScanMode(ScannerManager.SCAN_SINGLE_MODE); //设置为单扫模式
break;
case R.id.continuous_radioButton: //多扫模式
mScannerManager.setScanMode(ScannerManager.SCAN_CONTINUOUS_MODE);
break;
case R.id.key_radioButton: //挂起模式
mScannerManager.setScanMode(ScannerManager.SCAN_KEY_HOLD_MODE);
break;
default:
break;
}
}
});
// mAutoCheckBox = (CheckBox) findViewById(R.id.checkBox_auto);
// mAutoCheckBox.setChecked(mAutoScan);
// mAutoCheckBox.setOnCheckedChangeListener(new
// OnCheckedChangeListener() {
// @Override
// public void onCheckedChanged(CompoundButton buttonView, boolean
// isChecked) {
// mAutoScan = isChecked;
// mHandle.sendEmptyMessage(AUTO_SCAN);
// }
// });

mSingleScanButton = (Button) findViewById(R.id.single_button);
mContinousScanButton = (Button) findViewById(R.id.continuous_button);

mListView.setAdapter(mListAdaper);
}

//恢复状态,用来恢复
public void onResume() {
super.onResume();
switch (mScannerManager.getScanMode()) { //获取 这个状态,如果是连扫模式,那么单扫不可用,自动测试可用
case ScannerManager.SCAN_CONTINUOUS_MODE:
mSingleScanButton.setEnabled(false);
mContinuousButton.setChecked(true);
mAutoTestButton.setEnabled(false);
break;
case ScannerManager.SCAN_KEY_HOLD_MODE: //如果是自动测试,那么前面两个不可用
mContinousScanButton.setEnabled(false);
mSingleScanButton.setEnabled(false);
mKeyHoldButton.setChecked(true);
break;
case ScannerManager.SCAN_SINGLE_MODE: //单扫模式
default:
mContinousScanButton.setEnabled(false);
mSingleButton.setChecked(true);
break;
}
}

/*
* public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()
* == KeyEvent.KEYCODE_BUTTON_A) {
* mScannerManager.dispatchScanKeyEvent(event); return true; } return
* super.dispatchKeyEvent(event);
*
* }
*/


//这两个按扭事件一个意思就是为了防止长按,设置了一个策略,如果长按,那么为false也就是不会执行
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
switch (event.getKeyCode())
{
case KeyEvent.KEYCODE_BUTTON_A: {
if (!mIsScanKeyDown) { //如果非按下状态,
pressed++;//按下计数器增加
mScanner
...全文
436 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
fei得更高 2020-05-14
  • 打赏
  • 举报
回复
试着不要一下子精简那么多,或者就能明白是哪里搞错了
王能 2020-05-13
  • 打赏
  • 举报
回复
引用 11 楼 韩曙亮 的回复:
我看一篇帖子 最多 30秒
膜拜大神
luj_1768 2020-05-11
  • 打赏
  • 举报
回复
智联的代码,有关输入按键部分的处理你看懂了么?恐怕你的代码有关消除长按输入部分有问题,把正常输入屏蔽了。你再仔细考虑考虑。
android_cai_niao 2020-05-11
  • 打赏
  • 举报
回复
代码略长啊。。。
韩曙亮 2020-05-11
  • 打赏
  • 举报
回复
我看一篇帖子 最多 30秒
le540850072 初级 2020-05-10
  • 打赏
  • 举报
回复
哈哈,感觉像是在看高中英语的阅读理解,讨厌那玩意。
davexa 2020-05-10
  • 打赏
  • 举报
回复
是呵,能缩小问题代码的范围,兴许大家还能抓住重点,找到问题。这么长段代码review,恐怕难以耐心、聚焦。
windyNight99 2020-05-09
  • 打赏
  • 举报
回复
大哥,直接贴错误吧,可以加log调试。 Log.d(""); 你这个贴上来的代码太长长长了,恐怕只有编译器才能看出错误。
剑笑了 2020-05-09
  • 打赏
  • 举报
回复
还不如直接贴异常,这咋看
le540850072 初级 2020-05-07
  • 打赏
  • 举报
回复
你这长篇的代码,常人是难以阅读的。
nezakin 2020-05-06
  • 打赏
  • 举报
回复
/**
 * Project Name:YTOInfield File Name:SoundManager.java Package
 * Name:cn.net.yto.infield.biz Date:2013-3-7 am 10:10:13 Copyright (c) 2013,
 * zhiliantiandi All Rights Reserved.
 */

package com.juri.juriscanner;

import com.juri.juriscanner.R;

import android.content.Context;  //上下文
import android.media.AudioManager;
import android.media.SoundPool;

/**
 * ClassName:SoundManager <br/>
 * Date: 2013-3-7 am 10:10:13 <br/>
 *
 * @author Liliang
 * @version
 * @since JDK 1.6
 * @see
 */
//加了final的话,这个类无法继承的
public final class SoundUtils {

    //定义声音的三种状态,成功为0,警告为1,查询为2
    public static final int SOUND_TYPE_SUCCESS = 0; //静态变量,这样就保证了只有一份
    public static final int SOUND_TYPE_WARNING = 1;
    public static final int SOUND_TYPE_QUERY = 2;

    private static SoundUtils sManager; //实例本身,因为这个类不打算继承,那么只有只有通过实例化来猎取
    private float mStreamVolume = 0.1f;
    private Context mContext; //上下文菜单

    private int mWarningId = R.raw.warning; //这里是资源ID
    private int mSuccessId = R.raw.success;
    private int mQueryId = R.raw.query;

    private boolean isPlay = true; //默认为正在播放

    //构造方法
    private SoundUtils() {

    }

    //初始化,他这个奇怪的在于,写在里面了,原因是因为不想继承,只有这个办法,实例化对象
    public static SoundUtils getInstance() {
        if (sManager == null) {
            sManager = new SoundUtils();
        }

        return sManager;
    }

    //初始化
    public void init(Context context) {
        if (mContext == null || mSoundPool == null) {
            mContext = context;
            loadSoundResources(context);
        }
    }

    //初始化方法
    public void init(Context context, int warningId, int successId, int queryId) {
        if (mContext == null || mSoundPool == null) {
            mContext = context;
            mWarningId = warningId;
            mSuccessId = successId;
            mQueryId = queryId;
            loadSoundResources(context);
        }
    }

    //是否可用,默认是可用的
    public void enablePlay(boolean enable) {
        isPlay = enable;  //赋值
    }

    //获取 状态
    public boolean getPlay() {
        return isPlay;
    }

    /**
     * playSound:Play sound for scan. <br/>
     *
     * @author Liliang
     * @param soundType One of {@link #SOUND_TYPE_SUCCESS},
     *            {@link #SOUND_TYPE_WARNING}, or {@link #SOUND_TYPE_QUERY}
     * @since JDK 1.6
     */

    //播放声音,参数为类型,不同的声音种类
    public void playSound(int soundType) {
        if (!isPlay)
            return; //如果不允许播,那么直接返回
        int soundResId = mSoundSuccessId; //默认是成功的
        switch (soundType) {
            case SOUND_TYPE_SUCCESS:
                soundResId = mSoundSuccessId;
                break;

            case SOUND_TYPE_WARNING:
                soundResId = mSoundWarningId;
                break;

            case SOUND_TYPE_QUERY:
                soundResId = mSoundQueryId;
                break;

            default:
                break;
        }

        mSoundPool.play(soundResId, getVolume(), getVolume(), 1, 0, 1f);
    }

    //播放其他的声音
    public void playOther(int resourceId) {
        if (!isPlay)
            return;
        int id = mSoundPool.load(mContext, resourceId, 1);
        mSoundPool.play(id, getVolume(), getVolume(), 1, 0, 1f);
    }

    //播放警告
    public void warn() {
        if (!isPlay)
            return;
        mSoundPool.play(mSoundWarningId, getVolume(), getVolume(), 1, 0, 1f);
    }

    //左右分开
    public void warn(float leftVolume, float rightVolume) {
        if (!isPlay)
            return;
        mSoundPool
                .play(mSoundWarningId, leftVolume, rightVolume, 1, 0, 1f);
    }

    //播放正确的
    public void success() {
        if (!isPlay)
            return;
        mSoundPool
                .play(mSoundSuccessId, getVolume(), getVolume(), 1, 0, 1f);
    }

    //正确的左右
    public void success(float leftVolume, float rightVolume) {
        if (!isPlay)
            return;
        mSoundPool
                .play(mSoundSuccessId, leftVolume, rightVolume, 1, 0, 1f);
    }

    public void query() {
        if (!isPlay)
            return;
        mSoundPool.play(mSoundQueryId, getVolume(), getVolume(), 1, 0, 1f);
    }

    public void query(float leftVolume, float rightVolume) {
        if (!isPlay)
            return;
        mSoundPool.play(mSoundQueryId, leftVolume, rightVolume, 1, 0, 1f);
    }

    //声音大小
    private float getVolume() {
        return 0.8f;
    }

    private void loadSoundResources(Context context) {
        release();
        if (mSoundPool == null) {
            mSoundPool = new SoundPool(3, AudioManager.STREAM_MUSIC, 0);
            mSoundWarningId = mSoundPool.load(context, mWarningId, 1);
            mSoundSuccessId = mSoundPool.load(context, mSuccessId, 1);
            mSoundQueryId = mSoundPool.load(context, mQueryId, 1);
        }
    }

    //关闭资源,停止播放
    public void release() {
        if (mSoundPool != null) {
            mSoundPool.release();
        }
        mSoundPool = null;
    }

    //定义三个自定义对象,用来播放声音
    private SoundPool mSoundPool;
    private int mSoundWarningId;
    private int mSoundSuccessId;
    private int mSoundQueryId;

}
我简单的想测试下
package com.juri.juricode;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;

import android.os.Bundle;

//下面代码为段涛于2020年5月6日手工编写,今天完工,做个最好的

import android.os.Handler;
import android.os.Message;
import android.view.KeyEvent;
import android.widget.TextView;
import android.widget.EditText;
import android.widget.ListView;

//导入支持库
import com.zltd.decoder.Constants;
import com.zltd.decoder.DecoderManager;
import com.zltd.industry.ScannerManager;


//调用SDK接口
public class MainActivity extends AppCompatActivity implements ScannerManager.IScannerStatusListener {

    //定义几个全局变量
    ScannerManager mScannerManager;
    TextView mTV;
    private static final int UPDATE_LIST = 4096;
    private static final int UPDATE_NUMBER = 4097;
    public boolean isScankeyDown = false; //默认是弹起的

    //定义一个Handler对象用来更新UI
    protected Handler mHandler = new Handler(new Handler.Callback() {
        @Override
        public boolean handleMessage(@NonNull Message msg) {
            switch (msg.what) {
                case UPDATE_LIST:
                    mTV.setText((String) msg.obj);
                default:
                    break;
            }


            return false;
        }
    });

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mScannerManager = ScannerManager.getInstance();//初始化实例
        mTV = findViewById(R.id.mTV);

    }

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_BUTTON_A:
                if (!isScankeyDown) {
                    mScannerManager.dispatchScanKeyEvent(event);
                    isScankeyDown = true;  //如果不是是按下状态,那么设为按下去的
                }
                return true; //返回为真,就是弹起来的意思
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (event.getKeyCode()) {
            case KeyEvent.KEYCODE_BUTTON_A:
                if (isScankeyDown) {
                    isScankeyDown = false;  //如果是按下状态,那么设为弹起来的
                    mScannerManager.dispatchScanKeyEvent(event);
                }
                return true; //返回为真,就是弹起来的意思
        }
        return super.onKeyUp(keyCode, event);
    }

    @Override
    public void onScannerStatusChanage(int i) {

    }

    @Override
    public void onScannerResultChanage(byte[] arg0) {
        String data = new String(arg0);
        Message msg = mHandler.obtainMessage(UPDATE_LIST, data); //接收消息,发送消息
        mHandler.sendMessage(msg);
    }
}
为啥不起作用了
nezakin 2020-05-06
  • 打赏
  • 举报
回复


package com.juri.juriscanner;

import com.zltd.industry.ScannerManager;  //调用sdk接口
import com.juri.juriscanner.R;

import android.content.Intent; //intent方法
import android.os.Bundle;
import android.view.KeyEvent; //键盘事件
import android.view.View;
import android.widget.Button; //下面这些都是控件
import android.widget.CheckBox;
import android.widget.CompoundButton;
import android.widget.CompoundButton.OnCheckedChangeListener;
import android.widget.ListView;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;

public class MainActivity extends BaseActivity {
    private boolean mIsScanKeyDown = false;  //初始化控件变量
    private ListView mListView;
    private TextView mTextView;
    private CheckBox mToneCheckBox;

    private RadioGroup mRadioGroup;
    private RadioButton mSingleButton;
    private RadioButton mContinuousButton;
    private RadioButton mKeyHoldButton;
    private Button mAutoTestButton;

    private Button mSingleScanButton;
    private Button mContinousScanButton;
    protected boolean inContinuousShoot = false;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mTextView = (TextView) findViewById(R.id.textView);
        mListView = (ListView) findViewById(R.id.list);
        mAutoTestButton = (Button) findViewById(R.id.button_auto_test);
        mToneCheckBox = (CheckBox) findViewById(R.id.checkBox_tone);
        mToneCheckBox.setChecked(mSoundUtils.getPlay());
        //通过这个按扭事件来设置声音是否可用
        mToneCheckBox.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                mSoundUtils.enablePlay(isChecked); //单选框是保证这个是否可用,如果不可用,就不播放声音了
            }
        });
        mSingleButton = (RadioButton) findViewById(R.id.single_radioButton); //单扫按键
        mContinuousButton = (RadioButton) findViewById(R.id.continuous_radioButton); //连扫按键
        mKeyHoldButton = (RadioButton) findViewById(R.id.key_radioButton);
        mRadioGroup = (RadioGroup) findViewById(R.id.rg);

        //单选框的点击事件
        mRadioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                switch (checkedId) {
                    case R.id.single_radioButton:
                        mScannerManager.setScanMode(ScannerManager.SCAN_SINGLE_MODE); //设置为单扫模式
                        break;
                    case R.id.continuous_radioButton: //多扫模式
                        mScannerManager.setScanMode(ScannerManager.SCAN_CONTINUOUS_MODE);
                        break;
                    case R.id.key_radioButton: //挂起模式
                        mScannerManager.setScanMode(ScannerManager.SCAN_KEY_HOLD_MODE);
                        break;
                    default:
                        break;
                }
            }
        });
        // mAutoCheckBox = (CheckBox) findViewById(R.id.checkBox_auto);
        // mAutoCheckBox.setChecked(mAutoScan);
        // mAutoCheckBox.setOnCheckedChangeListener(new
        // OnCheckedChangeListener() {
        // @Override
        // public void onCheckedChanged(CompoundButton buttonView, boolean
        // isChecked) {
        // mAutoScan = isChecked;
        // mHandle.sendEmptyMessage(AUTO_SCAN);
        // }
        // });

        mSingleScanButton = (Button) findViewById(R.id.single_button);
        mContinousScanButton = (Button) findViewById(R.id.continuous_button);

        mListView.setAdapter(mListAdaper);
    }

    //恢复状态,用来恢复
    public void onResume() {
        super.onResume();
        switch (mScannerManager.getScanMode()) { //获取 这个状态,如果是连扫模式,那么单扫不可用,自动测试可用
            case ScannerManager.SCAN_CONTINUOUS_MODE:
                mSingleScanButton.setEnabled(false);
                mContinuousButton.setChecked(true);
                mAutoTestButton.setEnabled(false);
                break;
            case ScannerManager.SCAN_KEY_HOLD_MODE: //如果是自动测试,那么前面两个不可用
                mContinousScanButton.setEnabled(false);
                mSingleScanButton.setEnabled(false);
                mKeyHoldButton.setChecked(true);
                break;
            case ScannerManager.SCAN_SINGLE_MODE: //单扫模式
            default:
                mContinousScanButton.setEnabled(false);
                mSingleButton.setChecked(true);
                break;
        }
    }

    /*
     * public boolean dispatchKeyEvent(KeyEvent event) { if(event.getKeyCode()
     * == KeyEvent.KEYCODE_BUTTON_A) {
     * mScannerManager.dispatchScanKeyEvent(event); return true; } return
     * super.dispatchKeyEvent(event);
     *
     * }
     */


    //这两个按扭事件一个意思就是为了防止长按,设置了一个策略,如果长按,那么为false也就是不会执行
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        switch (event.getKeyCode())
        {
            case KeyEvent.KEYCODE_BUTTON_A: {
                if (!mIsScanKeyDown) { //如果非按下状态,
                    pressed++;//按下计数器增加
                    mScannerManager.dispatchScanKeyEvent(event);//这个才是主要事件,调用sdk方法,触发扫描SDK扫描事件
                    // mScannerManager.triggerLevel(ScannerManager.LOW_LEVEL);

                    mHandle.sendEmptyMessage(4097); //添加数据,添加数据的IP为4097,意思就是升级记录条数
                    mIsScanKeyDown = true; //设置为真,防止连续按
                }
                return true;

            }
        }
        return super.onKeyDown(keyCode, event);
    }

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event) {
        switch (event.getKeyCode())
        {
            case KeyEvent.KEYCODE_BUTTON_A: {
                if (mIsScanKeyDown) {  //触发按下弹起事件
                    mIsScanKeyDown = false;
                    mScannerManager.dispatchScanKeyEvent(event);
                    // mScannerManager.triggerLevel(ScannerManager.HIGH_LEVEL);
                }
                return true;
            }
        }
        return super.onKeyUp(keyCode, event);
    }

    public void onClear(View view) {
        clear();
    }


    //启动自动测试,跳到新窗口
    public void onAutoTest(View view) {
        Intent intent = new Intent();
        intent.setClassName("com.zltd.scantest", "com.zltd.scantest.AutoTestActivity");
        startActivity(intent);
    }

    //计数器显示在文本标签
    public void updateCount() {
        mTextView.setText("Scan: " + pressed + "times\nResult: " + scanned + "times");
    }

    //添加文本的方法
    @Override
    public void updateList(String data) {
        //mBarcodeList.add(0, data);
        //mListAdaper.notifyDataSetChanged();
         mTextView.setText(data);
    }

    public void singleShootOnClick(View view) {
        mScannerManager.singleScan();
    }


    //连扫事件
    public void continuousShootOnClick(View view) {
        if(!inContinuousShoot){
            inContinuousShoot = true;
            mScannerManager.startContinuousScan();
        } else {
            inContinuousShoot = false;
            mScannerManager.stopContinuousScan();
        }
    }

}

精易模块 V5.15 what’s new:(2015XXXX) 1、新增“线程_枚举”枚举指定进程ID中所有线程列表,成功返回线程数量,失败返回零。 2、删除“文件_取图标”与"文件_取图标句柄"功能重复。 3、优化“系统_创建桌面快捷方式”流程代码,感谢易友[ds9660]反馈。 4、修正“IP_10进制转IP”与“IP_16进制转IP”命令反向的问题,感谢易友[@humanbean ]反馈。 5、改善“网页_访问”死循环代码,感谢易友[@67564226]反馈。 6、优化“文本_取随机数字”精简代码,提高执行效率,感谢易友[ds9660]反馈。 7、修正“普通填表->链接_点击”无法在本窗口中打开的BUG,感谢易友[@zhuan888]反馈。 8、修正“时间_时间戳转文本”代码不严谨出现数组错误的BUG,感谢易友[455275321]反馈。 MD5:3E66BFA15806DEAFBCF11806EB99CC11 精易模块 V5.13 what’s new:(20150202) 1、修正“编码_ansi到usc2”当末尾出现10或13字符时出错的BUG,感谢易友【@rmcs】反馈。 2、改名“文件_搜索1”改为“文件_搜索_深度”并修正备注及深度问题,感谢易友【@小爬虫】反馈。 3、改善“时间_取现行时间戳”优化代码,提高执行效率,感谢易友【@小爬虫】反馈。 4、改善“文本_逐字分割”改善个别字符分割错误的情况,代码由易友【@百弊若愚】提供。 5、改善“窗口_激活,窗口_置控件焦点,窗口_是否在最顶端”有时失败的问题,由易友【@wjt741106】提供代码。 6、新建“外部组合框_关闭列表”关闭已经弹出的下拉列表。 7、修正“文件_下载”不能下载的BUG,感谢易友【@新手来学易】反馈。 8、删除“文本_到小写m”删除该汇编命令,出现不兼容。 9、修正“系统_取MAC地址”未初始化COM不支持线程的BUG,感谢易友【@ds9660】反馈。 10、改善“文本_粘贴”参数可空也处理的问题,感谢易友【@ds9660】反馈。 11、新增“调用COM方法”COM编程,动态调用COM方法。 12、新增“时间_WMI时间转日期”把WMI数据时间转换成日期时间型,如“20140926001639.000000+480”。 13、修正“类_系统信息”重写该类,在部分系统下不兼容及闪退问题,感谢易友【@longfeng0008】反馈。 14、改善“程序_禁止重复运行”当标识为空时,默认为自身路径,代码由易友【@wjt741106】提供。 15、改善“普通填表类-就绪判断_源码关键字”添加区分大小写参数。 MD5: 3C01272B9E2DAFDEF08D20C191E3C265 精易模块 V5.12 what’s new:(20150108) 1、删除“IP_取外网IP”与 网页_取外网IP()功能重复命令,感谢易友【67564226】反馈。 2、修正“正则元字符转义”子程序,对应个别替换符错误的BUG,感谢易友【@墨雨千寻】反馈。 3、改善“进程_枚举”处理效率,由易友【@御风软件】提供方案。 4、新增“窗口_是否被遮挡”,判断一个窗口是否被置顶窗口遮挡,代码由易友【@shituo】提供。 5、改善“汇编类->置入汇编代码”增添一个参数是否保留以前代码。感谢易友【@无名侠】反馈。 6、修正“文本_加密”返回文本传递给“文本_解密”后长度不正确BUG,改为返回字节集。 7、改善“外部编辑框_取密码框文本”当不是密码输入属性时不做任何处理,感谢易友【@wjt741106】反馈。 8、恢复“文本_加密”与“文本_解密”,把新版加解密改名为"文本_加密c"与“文本_解密c”。 MD5:5831C531ABD80ADD0EFE10172AEED71F 精易模块 V5.11 what’s new:(20150101) 1、修复“文本_取中间_批量”获取大数据崩溃的BUG,改为循环方式获取,大数据不建议用此命令(吃CPU)。 2、添加“文本_朗读”是否使用百度语音引擎参数,为空时默认使用微软语音引擎。 3、改善“文本_加密”与“文本_解密”去除原来算法,改用微软基础加解密API。 4、修复“网页_打印”,无效的BUG,感谢易友【@nameyypx】反馈。 5、修复“时间_取身份证判断”出现17位身份证的BUG,感谢易友【@求其改个名】反馈。 6、新增“类_托盘”类模块,源码来自彗星托盘图标模块,感谢源作者。【带实例】。 MD5:F4ECA009078166001A6577C1E502D7E6 精易模块 V5.01 what’s new:(20141201) 1、新增“网页_取网络文件名”获取无后缀的下载地址文件名,感谢易友【@灵魂出窍808】反馈。 2、新增“网页_是否为网页”判断地址是否为URL路径。 3、删除“窗口_取进程路径”命令,与窗口_句柄取进程路径() 功能相同。 4、删除“线程_强制结束”命令,与 线程_销毁() 功能相同。 5、修改“窗口_热键注册”参数备注错误,感谢易友【灵魂出窍808】反馈。 6、优化“时间_取中国星期几”命令,感谢易友【灵魂出窍808】提议。 7、新增“网页_取网络文件尺寸”获取网络文件尺寸,失败返回零。 8、新增“数组_取次数”,取指定数组成员出现相同数量,源码由易友【C盘是头猪】提供。 9、修正“进程_ID取进程名”在64位系统不能获取名称的BUG,感谢易友【慕寒夜】反馈。 10、新增“进程_取线程数”通过进程ID或进程名获取指定进程线程数。 MD5:89AECEA5D0E513E7D586EA8396AD17CC 精易模块 V5.0 what’s new:(20141121) 1、修正“类_通用对话框”会改变当前目录的BUG。感谢易友【scqandcy】反馈。 2、修正“进制_十到十六”不支持长整数的BUG。 3、恢复3.75版的“时间_格林威治转北京”命令,设置参数可将13位时间戳转换成北京时间。 4、改善“类_通用对话框”打开与保存对话框拥有易全部属性,感谢易友【詠不言敗】提议。 5、新增“类_通用对话框->选择字体”成功返回字体相关信息,调用格式如; 编辑框.字体=选择字体() 6、修复“网页_创建快捷方式”在win7以上系统不能自定义图标的BUG,感谢易友【蓝风】反馈。 7、修复“进制_十六到十”不支持长整数的BUG。 8、新增“类_时钟”,类似易语言自带时钟控件,可设置时钟周期。 MD5:E31C357200B0CA8994D373FD7298CE95 精易模块 V3.88 what’s new:(20141101) 1、为“网页_访问”和“网页_访问_对象”增加了HEAD方法。 2、修正“目录_复制”在线程未初始化,导致对象不能创建的问题,感谢易友【@pp25729391】反馈。 3、修正“类_环境存取->读环境变量”不能读取当前进程环境变量的BUG,感谢易友【@詠不言敗】反馈。 4、修正“文本_逐字分割”返回数组不清除会保留上次内容的问题,感谢易友【@JadeジYu】反馈。 5、新增“文本_是否为双字节字符”与OPenGL支持库->文字轮廓 中的 是否为双字节字符功能相同。 6、新增“文本_是否为字母”,判断指定文本是否为字母。 7、新增“目录_取桌面目录”获取当前系统桌面目录。 MD5:6592799FF42CE9AFDF122C47642C9DEE 精易模块 V3.87 what’s new:(20141021) 1、新增“效验_取md5_进度”,进度获取文件MD5值,支持大文件,采纳易友【@易模块】建议。 2、改善“程序_禁止重复运行”添加是否显示已运行的参数,此命令由易友【@小爬虫】改进。 3、修正“网页_取网址引用”不支持Https和mms地址协议问题,感谢易友【@小爬虫】反馈。 4、修正“文件_改扩展名”当后缀名错误情况下会删除原文件的BUG。 5、新增“进程_取同名ID”取相同进程ID,成功返回相同进程ID数量,失败返回-1。 6、修正“键盘_单击”当参数2为空时,按下未放开的问题,感谢易友【seadty】反馈。 7、删除“文件_取扩展名1”命令。 8、修正“编码_Utf8到Unicode”频繁操作导致内存泄漏的BUG,感谢易友【◆野蛮vE儿】反馈。 9、修正“目录_是否存在”,当存在无反缀文件时返回真的BUG,感谢易友【@飞灵】反馈。 10、新增“系统_信息框Ex”定时信息框,超时后自动销毁。 效验MD5:A8EA46EB0FA7395F9355E37286B32742 精易模块 V3.86 what’s new:(20141001) 1、修正“进程_名取句柄”部分机器返回零的BUG。感谢易友【liu307921917】反馈。 2、修改“注册表操作Ex”中的写入函数,现在支持:#REG_SZ;#REG_EXPAND_SZ;#REG_MULTI_SZ;#REG_BINARY#REG_DWORD;#REG_DWORD_BIG_ENDIAN;#REG_QWORD类型的写入。 将原来的函数分割为:“写入键值Ex_数值”和“写入键值Ex_文本”。 3、修正“注册表操作Ex”不支持“#HKEY_CURRENT_USER”的BUG,感谢易友【pp25729391】反馈并帮助测试。 4、新增“注册表操作Ex->写QWORD_64值”写入64位长整数值,成功返回真,失败返回假.源码由@pp25729391提供。 5、修正“类_APIHOOK->取地址”当安装时不填后缀,而取地址填写后无法获取已安装地址BUG,感谢易友【@ChongZi】反馈。 6、修正“窗口_枚举所有子窗口”当过滤类名输入空符号或一段空文本后无法枚举的BUG,感谢易友【vibu】反馈. 7、改名“编码_Ansi到十进制_文本”源作者重新改名为“编码_Ansi到ASCII_文本型”。 8、字节集_还原,新版算法问题,已恢复老版本命令。 9、新增“窗口_限制尺寸”,限制窗口缩放最小尺寸与最大尺寸,超出则无法缩放。采纳易友【@kisl7979】建议。 10、新增“窗口_取消尺寸限制”,取消窗口尺寸限制。 效验MD5:51A332F5AB071957FEF39209FD240CB6 精易模块 V3.85 what’s new:(20140916) 1、改善“文件_取文件名”与“目录_取尾部目录名或文件名”取出路后带斜杠问题,感谢论坛易友【雷雷】反馈。 2、改善“文本_取行数”载入大数据程序处理效率问题,感谢某位易友反馈。 3、新增“编码_Ansi到十进制_文本型”此代码由易友【菜虫】提供,将Ansi码转换为十进制,如:将“精易论坛”转换后将返回格式如:“뺫틗싛첳”。 4、新增“目录_取运行目录”取当前被执行的易程序文件所处的目录。同易支持库功能一样。 5、新增“取对象指针”取对象指针。相当于特殊功能支持库->取变量数据地址。 6、新增“取变体型指针”取对象指针。相当于特殊功能支持库->取变量数据地址。 7、新增“取整数型指针”取整数指针。相当于特殊功能支持库->取变量数据地址。 8、新增“类_环境存取”类模块,可以新建、编辑、删除当前用户或系统环境变量,无需重启立刻生效。 精易模块 V3.83 what’s new:(20140901) 1、改善“网页_访问”、“网页_访问_对象”命令,添加默认协议头“Referer” 2、修复校正API正确申明后,“类_内存”不能使用的BUG。 3、改善“普通填表->单选框_取状态”参数2加入可空标志。 4、改善“字节集_还原”优化子程序处理速度,感谢易友【落款hMZ】提供代码。 5、修改“窗口_热键注册”API正确申明,并把第五个参数【热键标识文本】改为热键ID。 6、新增“类_任务栏”可以显示隐藏任何第三方窗口图标,相当于易中的(不在任务栏显示),带【实例】演示。 7、新增“类_线程池1”中的“等待”方法。 8、修复“编码_Utf8到Ansi“分配内存失败BUG,感谢易友【仁鹰】反馈。 9、改善“网页_访问”中最后一个参数(代理地址)为“”符号时无法访问网页,感谢易友【z00544】反馈。 精易模块 V3.82 what’s new:(20140816) 1、修复“时间_取现行时间戳”有时不能正常返回13位时间戳,当毫秒为一位时,返回结果为11位。感谢易友【happyboy】反馈。 2、修复上个版本校正API正确申明后“普通填表”类返回不能初始化BUG。 3、新增“类回调_取类地址”类回调(带实例)源码来自东灿的ECallBack。 4、新增“类回调_释放回调”释放回调子程序地址。 5、新增“系统_调用帮助”调用系统帮助文档。 精易模块 V3.81 what’s new:(20140811) 1、修复“输入法类”绝对路径不正确BUG。 2、改善“类_内存”读写内存失败返回不正确值问题。感谢易友【stft】建议。 3,网页访问_对象()增加一个参数,用来保存网页返回状态代码。 4、改善(字节集_取左边|取右边|取中间)与未公开子程序重复,改名为 字节集_寻找取左|字节集_寻找取右|字节集_寻找取中,并修正BUG。 5、公开子程序(字节集_到文本|字节集_到整数|字节集_取左边|字节集_取右边|字节集_取空白|字节集_取长度|字节集_取中间|字节集_替换|字节集_寻找|字节集_取指针)模块原有命令。 6、修正“文本_取中间_批量”当参数限定长度不要时,不能继续向下执行的BUG,感谢易友【半个灵魂づ留着】代码。 7、删除“文本_取中间_批量1”命令。 8、修复“注册表操作Ex->写入键值Ex”创建项,重启丢失的BUG,感谢易友【pp25729391】反馈。 9、修复“文本_转拼音”传入的参数变成全角的BUG,感谢易友【reloking】反馈。 10、修复“编码_Utf8到Unicode”频繁操作导致程序崩溃BUG,感谢易友【diablozxl】反馈。 11、修复“线程_等待”命令注释反的问题,返回真表示线程结束,假表示已超时。感谢易友【tone】反馈。 12、修复“类_识图->找图_从字节集”命令,载入大文件直接奔溃的BUG,感谢易友【tone】反馈。 精易模块 V3.80 what’s new:(20140801) 1、新增“进程_取优先级”,特殊进程需要特权,检索指定的进程的优先级。返回值:0=最高,1=高于标准,2=实时,3=标准,4=低于标准,5=低,返回-1表示无权限访问进程。 2、新增“进程_置优先级”,特殊进程需要特权,设置一个进程的优先级别,成功返回真,失败返回假。 3、新增“窗口_取激活句柄”,获取当前系统激活的窗口句柄。 4、新增“类_通用对话框”支持大窗口样式与易自带样式,2种选择。用法和易一样,完全可以替代。 5、新增“进程_取句柄数”,功能与XP系统下任务管理器一样。 6、新增“进程_取IO读取计数”,功能与XP系统下任务管理器一样。 7、新增“进程_取IO读取字节”,功能与XP系统下任务管理器一样。 8、新增“进程_取IO其它计数”,功能与XP系统下任务管理器一样。 9、新增“进程_取IO其它字节”,功能与XP系统下任务管理器一样。 10、新增“进程_取IO写入计数”,功能与XP系统下任务管理器一样。 11、新增“进程_取IO写入字节”,功能与XP系统下任务管理器一样。 12、改善“输入法类->激活”向指定窗口激活安装的输入法,感谢易友【大胆点】提供代码。 13、修复“图片_转换”,修复导致程序崩溃BUG,源码来源【凌晨孤星】同步。 精易模块 V3.78 what’s new:(20140715) 1、修复“进程_ID是否有效”在时钟循环获取下进程句柄不断飙升的BUG。 2、修复“ADSL拨号类 ->_取本机IP”,在XP系统下静态编译获取不到的BUG,感谢易友【islandandfriend】反馈。 3、新增“系统_取网络主机名”,取当前网络上登记的主机名,详细请参考CMD命令ipconfig /all 中的Windows IP 配置。 4、新增“系统_取网络主DNS后缀”,详细请参考CMD命令ipconfig /all 中的Windows IP 配置。 5、新增“系统_取网络节点类型”,详细请参考CMD命令ipconfig /all 中的Windows IP 配置。 6、新增“系统_IP路由是否启用”,详细请参考CMD命令ipconfig /all 中的Windows IP 配置。 7、新增“系统_WINS代理是否启用”,详细请参考CMD命令ipconfig /all 中的Windows IP 配置。 8、修改“目录_取尾部目录名或文件名”使用标准windows函数; 9、修改“文件_创建”成功返回1,失败返回错误代码,同时如果函数执行失败,不会出现文件残留; 10、修改“文件_打开”失败返回错误代码 11、修改“线程_销毁”与“线程_强制结束”存在命名歧义的问题,感谢易友【Mr.Yang】提议。 12、新增“系统_取IE版本”获取IE游览器版本,失败返回空文本。 13、修复“文件_取类型”原数据结构申明不正确导致偏移出错取出不正确值BUG,感谢易友【无\月】提醒。 精易模块 V3.77 what’s new:(20140701) 1、对已知命令备注存在歧义或错误的备注给予修正。 2、修复“线程_强制退出”命令,不能立即退出问题。 3、改善“CreateEvent”公开的API未提供返回值的问题,感谢易友【glgg】提醒。 4、改善“系统_屏蔽任务管理器1”在win7下无效问题。 5、修复“编码_usc2到ansi_EX”编码里包含英文字母会编码失败问题,感谢易友【7780000】提醒。 6、修复“文本_是否为汉字”正则方式正则语句判断不够准确的问题,感谢易友【精易⌒小傷】提醒。 7、新增“文件_句柄取路径”根据文件句柄获取文件所在路径,失败返回空文本。 8、新增“文件_取属性”与易语言中 取文件属性 ()功能相同。 9、新增“文件_取类型”获取文件类型,如.TXT文件,则返回“文本文档”,失败则返回空。 10、新增“文件_取图标”成功返回图标句柄,失败返回零。 精易模块 V3.76 what’s new:(20140620) 1、新增“窗口_是否激活”命令,判断指定窗口是否激活状态,是则返回真,否则返回假。 2、新增“窗口_取矩形”命令,取指定窗口矩形信息。 3、新增“窗口_取客户区矩形”命令,取指定窗口内客户区矩形信息。 4、新增“窗口_取样式”命令,取指定窗口样式。 5、新增“窗口_取扩展样式”命令,取指定窗口扩展样式。 6、新增“窗口_取边框宽度”命令,取指定窗口边框宽度。 7、新增“窗口_取边框高度”命令,取指定窗口边框高度。 8、修复“外部超级列表框->选择表项”,无法选中问题,感谢易友【fanghg】提醒。 9、新增“文本_到小写m”改善传递变量值改变的问题,感谢易友【我爱钱钱钱】提醒。 10、修复“文本_取右边”无法取到数据问题,感谢易友【我爱钱钱钱】提醒。 11、修复“目录_取大小”取上G目录返回负数问题,感谢易友【de01】提醒。 12、修复“目录_创建”当路径出现多个“\\”会删除整个文件夹的问题,感谢易友【淮南老三】提醒。 13、改善“外部超级列表框->取标题”由原来默认缓冲尺寸1048576字节,改为260字节。 14、修复“文件_枚举1”当参数文件夹路径为真,回调子程序出现二次相同路径,修改后将删除‘文件夹路径’参数。 15、重写“文件_定位”,explorer命令行定位会产生多余的explorer进程,用API代码此命令,新增编辑模式参数。 16、重写“目录_定位”,命令与'文件_定位'相同,采纳易友【御风软件】意见。 精易模块 V3.75 what’s new:(20140609) 1、改善“时间_北京转格林威治、时间_格林威治转北京”命令,删除无用参数,简写代码。 2、改善“系统_置屏幕分辨率”参数【设置模式】可为空标志,默认为永久修改分辨率。 3、修复“窗口_置窗口化”中调用[系统_置屏幕分辨率]中不最后参数不可空BUG,默认修改为临时分辩率,感谢易友【訫誶】的提醒。 4、改善“窗口_模糊遍历窗口”不能区别关键词大小写问题,感谢易友【yckwan】提醒。 5、改善“窗口_取句柄_模糊”不能区别关键词大小写问题,感谢易友【yckwan】提醒。 6、修复“文本_取右边”中起始寻找位置参数无效问题,感谢易友【御风じ撒泡尿ジ】大神提醒。 7、修复“字节集_取右边”中起始位置参数无效问题,感谢【Hoibben】提醒。 8、新增“目录_枚举子目录1”在原有命令上添加向下枚举参数,感谢易友【wjt741106】提供代码。 9、新增“文本_指针到文本A”,把ansi指针转换为文本。 10、新增“文本_指针到文本W”,把unicode指针转换为ansi文本。 11、新增“系统_取时区”与 应用接口支持库->系统处理 中时区一样。 12、新增“系统_取货币符号”,与 应用接口支持库->系统处理 【货币符号】一样。 13、新增“系统_取日期格式”,与 应用接口支持库->系统处理 【日期格式】一样。 14、新增“系统_取时间格式”,与 应用接口支持库->系统处理 【时间格式】一样。 15、新增“类_CPU信息”用WMI接口获取CPU相关核心数、占用率、名称等,注意;频繁获取程序可能会崩溃。 16、新增“类_系统信息”,用Wmi接品获取系统相关信息,如;名称、版本、物理内存等。 精易模块 V3.73 what’s new:(20140601) 1、改善“系统_运行死慢”,添加确认参数,防止误操作,感谢易友【詠不言敗】的建议。 2、改善“程序_加入右键菜单”命令添加右键位置,并增加删除参数。 3、改善“系统_关联右键菜单带图标”命令,增加一个删除参数,填真为删除指定菜单名称。 4、改善“程序_加入IE工具栏”命令,可自定义程序名称,路径,图标,以及增加删除参数。 5、修复“线程_销毁”,句柄数增加及线程达到2000以上返回0的问题,感谢易友【YJF】的提醒。 6、修复“类_系统服务->取程序路径”,修正在XP系统下循环获取分配8字节内存失败问题,感谢易友【my6036324】提醒。 7、填补V3.72中[文件_搜索1]命令丢失。 8、新增“线程_强制结束”命令,强制结束正在运行的线程。 9、新增“类_系统域”类模块,对windows系统域支持,加入与取消需重启后生效。 10、新增“系统_处理事件1”命令,从消息队列中获取消息然后移除消息并派发出去,达到与易自带的"处理事件"同样功能。 11、新增“类_系统还原”,创建系统还原点与删除系统还原点。 12、新增“系统_取字体名”,获取字体名称,如“simsun.ttc”显示字体名称为“宋体”。 13、新增“系统_取CPU占用率”命令,取当前CPU占用率。成功返回CPU占用率;失败返回-1。支持XP,2003及win7 64位系统。 14、新增“系统_关电源”命令,命令未公开API实现快速关机,感谢易友【暂停使用】提供其实语言源代码。 15、新增“窗口_闪动Ex”命令,闪烁指定窗口,可选闪烁标题、任务栏、次数、速度,成功返回真,失败返回假。 16、删除“易语言_到系统右键中、易语言_加入IE工具栏、易语言_加到系统右键”,此类命令有功能重复,整合到“程序_加入IE工具栏、程序_加入右键菜单”命令中。 精易模块 V3.72 what’s new:(20140511) 1、改善“网页_访问”,“网页_访问_对象”中的协议头补全机制,感谢易友 yaoying68 提醒。 2、去除“网页_访问”命令,中的超时参数,超时请自行用线程控制,感谢易友 yaoying68 建议。 3、新增“文件_搜索1”命令,简化程序参数,改用子程序回调显示搜索结果,添加目录深度参数,参照雨林木风Ghost搜索功能,提升搜索效率。 4、修复“文件_搜索”命令,修正当标签为空时关键词无效分支,同时修改列表框为必要参数(原参数可为空,无任何实际作用),感谢易友 biao197 提醒。 5、修复“系统_设置IE代理地址”设置ADSL代理失败问题,感谢易友“剩下我de孩子气”提醒。 6、修复“程序_取命令行”命令,替换常规的分割方式分割不正确问题,改用API数组方式获取,感谢易友“鲁凯啸”做出的努力。 7、改善“正则表达式类”对线程的支持,感谢易友“长翅膀的猫”的提醒。 8、新增“文件_取尺寸1”命令,利用易自带“取文件尺寸”命令支持获取超过2G大文件尺寸。 9、恢复所有类中的“线程_初始化COM库”和“线程_取消COM库” 10、修复“网页_取外网IP”命令,失效的问题,感谢易友 剩下我de孩子气 的提醒 精易模块 V3.71 what’s new:(20140501) 1、修复“程序_取命令行()”命令无法获取到命令行参数的问题,感谢易友 yangcongwen 提醒。 2、改善“网页_访问”,“网页_访问_对象”中的协议头补全机制 3、改善“网页_访问”命令添加超时参数(Win7需测试) 4、改善“网页_访问”,“网页_访问_对象”中的Cookies获取机制,感谢“淮南老三”等易友的提醒 5、改善“网页_访问_对象”命令中的,默认初始COM操作,避免重复初始化导致的错误(同类对象命令中的默认初始COM操作已经全部去除,请留意命令注解) 6、去除“网页_访问Ex”命令。 7、去除“协议头_网页”常量。 8、去除“文本_汉字转拼音”命令,此命令功能与“文本_转拼音”一样,但效率不如“文本_转拼音”,且不保留标点符号 9、改善“文本_取空白文本、字节集_取空白字节集”命令,汇编方式获取,提高执行效率。 10、改善“图片_加水印”命令,注:此命令还需要对不同的图片以及透明色测试。 11、改善“文件_取配置节名数组、文件_取配置项名数组”命令,解决项目或节名中包含一些特殊符号时获取有误的问题,感谢易友 淮南老三 提醒。 12、新增"类_配置项",全API操作。 13、新增“时间_转为GMT格式1”,将日期时间型数据转换为GMT格式,感谢会员shituo提供代码。 14、新增“时间_转为GMT格式2”。将日期时间型数据转换为GMT格式 15、新增“时间_GMT转为时间”,将GMT文本时间 转换成日期时间型,感谢会员shituo提供代码。 16、新增“时间_GMT转为时间1”将GMT文本时间 转换成日期时间型, 17、新增“网页_取编码”,获取网页编码信息。 精易模块 V3.70 what’s new:(20140401) 1、新增“注册表操作类Ex”部分win7用户操作不了注册表项值可试试本类中的命令。感谢 【落雪】分享。 2、新增“窗口_是否在最顶端_句柄()”提供一个要判断的窗口句柄进行判断是否在最顶端,感谢易友 牛X的孩子 分享。 3、新增“窗口_是否禁止()”判断指定窗口句柄是否被禁止,禁止返回真,没有禁止返回假。 4、新增“网页_跳转1()”命令,用于针对百度等一些特殊处理过的网站无法跳转的问题,感谢【微凉】分享。 5、改善“窗口_句柄取进程路径()”命令,精简代码,感谢易友 牛X的孩子 分享。 6、改善“汇编_取随机数()”命令,如果最小数大于最大数程序会关闭的情况,感谢易友 wzjcyy 提醒。 7、改善“系统_置屏幕分辨率()”命令,增加设置分辨率后可一直使用,具体请查看参数,感谢 biao197 提醒。 8、改善“窗口_取光标位置()”命令返回值问题,具体使用请搜索命令使用例题,感谢易友 无ye 提醒。 9、改善“就绪判断_文本关键字、文本关键字”命令在使用中,窗口被关闭后还一直在执行的问题,感谢易友 我爱钱钱钱 提醒。 10、改善“图片_转换()”命令,如果传入空字节集数据会导致程序失败的问题,感谢易友 jfaumt 提醒。 11、改善“时间_时间戳转文本,时间_取随机时间戳,时间_取现行时间戳”多线程操作会内存增加的问题,感谢易友 ljm2010 提醒。 12、去除“服务端类、客户端类”开头的命令,原因是远程服务支持库中的命令比此些命令更好。调用的API以及常量未去除。 13、改善“IP_10进制转IP、IP_转至10进制”互转的问题。感谢易友 yf5486yf 提醒,感谢【落雪】完善。 14、修复“文件拖放类”中注册超级列表框控件导致程序关闭的问题,感谢易友 h1601zl 提醒,感谢【落雪】完善。 15、修复“类_系统服务”无法操作系统服务的问题,感谢易友 fanghg 提醒和 【落雪】的改进。 精易模块 V3.69 what’s new:(20140312) 1.修复 “正则表达式类” 操作超过512kb文本时崩溃问题 2.修复 “类_脚本组件” 类方法“执行” 操作超过512kbJS文本时崩溃问题 3.修复 “普通填表” 类方法“网页_取文本” 和 “网页_取源码” "就绪判断_文本关键字""就绪判断_源码关键字"命令,返回超过512kb网页文本时崩溃问题 1.恢复“编码_usc2到ansi”和“编码_ansi到usc2”为原来的代码,原来代码能直接转换包含编码的文本,但是在特殊情况会返回空,甚至导致程序崩溃 1.恢复3.67版本修改的命令为原来的,折磨死我这小菜鸟了,这次是真的不玩了,真的是最后一个版本了,3.6.9 by 御风软件 精易模块 V3.68 what’s new:(20140310) 1.修复 “编码_usc2到ansi ”不能把文本型转换到字节集错误 精易模块 V3.67 what’s new:(20140309) 1.删除 "MultiByteToWideChar_byte" “WideCharToMultiByte_byte” 多余API 1.修复全部调用API"MultiByteToWideChar","WideCharToMultiByte" 参数三默认-1自动取长度,导致的软件崩溃问题 感谢 Bints 的提醒 精易模块 V3.66 what’s new:(20140309) 1.修复 “文本_取中间_批量_正则方式”并且优化代码 感谢 地球孤鹰 的提醒 1.修复“文本_取随机范围数字”会取出大于结束数的问题的 精易模块 V3.65 what’s new:(20140303) 1.改名“窗口_取IE窗口句柄”为“窗口_取IE浏览框句柄” 参数“窗口句柄”改名为“IEFrame句柄”,完善命令说明和参数备注 感谢 小爬虫的提醒 注:原名称有歧义,误导。这里并非取ie的句柄,是取那个浏览框的句柄(用于填表或者其他操作等等) 精易模块 V3.64 what’s new:(20140227) 1.删除“窗口_取位置和大小”多余的局部变量,优化内存 感谢 小爬虫 的提醒 1.修复“鼠标_限制” 感谢 小爬虫 的提醒 1.完善“批量_xx_保存配置”,“批量_xx_读取配置”命令,清除组件寻找句柄,感谢 小爬虫 的提醒 注:xx表示组件名,包括编辑框,单选框,日期框,选择框,组合框这些组件的名字 精易模块 V3.63 what’s new:(20140214) 1.重写“文本_取随机汉字”,效率提升 2.重写“文本_取随机数字”,效率提升 3.重写“文本_取随机姓氏”,效率提升,参数值意义发生变化 4.重写“随机_字母”,效率提升 5.重写“文本_汉字转拼音”,效率提升 1.优化“文本_取随机字符”,效率提升,删除多余变量,循环中的处理事件 1.完善“文本_取随机范围数字”参数备注 精易模块 V3.62 what’s new:(20140213) 1.修复“目录_是否存在”返回值为假的问题 感谢会员 orachard 的提醒 2.修复“InterlockedIncremen”“InterlockedDecrement”DLL注释错误 感谢会员 ds9660 的提醒 精易模块 V3.61 what’s new:(20140202) 1.修复“类_内存配置项”配置项加载的问题 感谢 SalHe 的提醒和会员 微凉清风的改进代码 1.完善 “窗口_取位置和大小”备注 感谢 Avatar·Tonoy 的提醒 1.重写“文本_插入文本到某位置” 感谢 我叫林舒书 的提醒 2.重写“剪辑板_置文本”“剪辑板_取文本” 感谢 myself2 的代码 精易模块 V3.60 what’s new:(20140114) 1.完善“IP_转至16进制”“IP_16进制转IP”的备注 感谢 瞎胡闹 的提醒 2.修复“系统_格式化软盘”没有返回值的问题 感谢 阿蒙 的提醒 1.重写“线程_启动多参”并改名为“线程_启动多参_整数型” 修改详情请查看新命令 2.重写“线程_启动四参”并改名为“线程_启动多参_文本型” 修改详情请查看新命令 精易模块 V3.59 what’s new:(20140107) 1.删除“系统_启用本地连接”中的垃圾代码,提升速度,感谢 阿蒙 的提醒 2.删除“程序_禁止重复运行_浏览器”,一个不知道何时添加的未公开子程序(可能代码也有问题) 1.完善“程序_加入右键菜单”,增加可空参数 <显示名称>感谢 阿蒙 的提醒 2.完善“线程_取自线程句柄”,采用百度百科的说明作为备注 1.修复“线程_取自线程ID”,采用百度百科的说明作为备注 2.修复“编码_usc2到ansi”“编码_ansi到usc2” 暂时使用EX版代替原来的代码 感谢 478755018 的提醒 3.修复“网页_置Cookie1” 感谢 阿蒙 的提醒 精易模块 V3.58 what’s new:(20140101) 1.公开“进程_ID取模块”1个内部子程序 1.删除“进程_ID取模块文件名” ,因为该命令效率低下,还和“进程_ID取进程名”一样的效果 进程_ID取模块文件名 先枚举模块得到信息数组,再计次循环 当条件=PID 就返回模块文件名,实际上枚 举到的模块信息数组所有的PID都一样,得到的也就是第一次循环结果,也就是进程名 2.删除“进程_ID取模块路径“,删除理由和上述一样 1.修复“剪辑板_取文件”的状态错误BUG 感谢 网络注册会员 的提醒,感谢 农夫 的代码 精易模块 V3.57 what’s new:(20131230) 1.删除 "窗口_取位置和大小" 的错误备注部分,感谢 美丽兔兔 的提醒 2.删除“窗口_消毁” 这个重复命令,该命令和“窗口_关闭”是一样的 感谢 改名卡 的提醒 3.删除“网页_取文本” 增加2个速度更快的命令“网页_取文本_reg”和“网页_取文本_dom” 4.删除“内存_优化” 在程序最小化和后台时系统会自动调用该函数来节省内存 个人使用,容易出现各种各样的问题,详情:http://bbs.125.la/thread-13690978-1-1.html 感谢 红河 的提醒 ,感谢 落雪 的详细分析文章 ↑ 1.新增“网页_取文本_reg” 正则方式取文本 感谢 H婶 提供参考代码 2.新增“网页_取文本_dom” DOM方式取文本 感谢 微凉 提供参考代码 3.新增“网页_置浏览器UA” 设置当前程序中浏览器的UserAgent 感谢 阿蒙 提供代码 1.完善 “进制_十到二” 取消长度不足8位自动会补零,请根据需要补零 感谢 小爬虫 的提醒 2.完善 类_ODBC数据库,“读文本”参数二的备注,改为 索引从0开始 感谢 阿蒙 的提醒 3.完善 类_ODBC数据库 ,“连接Access”增加参数 <参数_Accdb> 感谢 阿蒙 的代码 精易模块 V3.56 what’s new:(20131224) 1.删除 “类_json”的命令 “取成员”,使用该命令会导致软件挂掉,原因未知 解决方案,直接取通用属性,无需二次解析,速度更快 原:json.取成员 (0).取通用属性 (“Id”) 新:json.取通用属性 (“[0].Id”) 2.完善“网页_取域名” 将原来的3.50的和3.51重写的加强版合并 3.修复“系统_取宽带线路 ()”因为新版“网页_取域名”带来的bug 感谢 4.重写“系统_修改IP地址和网关和子网掩码” 感谢 落雪 提供参考代码 5.增加“系统_修改DNS” 感谢 落雪 提供参考代码 精易模块 V3.55 what’s new:(20131223) 1.完善 “系统_显示关闭对话框”改名为 ““系统_显示关机对话框” 增加可空参数 修复 WIN7下堆栈错误,感谢 小爬虫 的提醒 注:内部DLL "_关机对话框"改名“_关机对话框_XP” ,新增内部DLL "_关机对话框_WIN" 2.修复“音乐_停止”“音乐_暂停”返回值问题 感谢 小爬虫 的提醒 3.修复“文本_取出中间文本”参数 是否不区分大小写 得到相反结果的问题 4.修复“系统_取宽带线路”命令 感谢 secondkill 的提醒 5.增加"音量_""音乐_"开头的命令参数和备注 感谢 小爬虫 的提醒 6.删除 DLL“CoCreateInstance”“CLSIDFromString”“MultiByteToWideChar_整数型” 7.删除 "A2W"“音量_设置”“音量_获取”“音量_增减”等命令 因为原命令调用特定的dll,只对win7以上系统有效,并会附加一个特殊功能支持支持库 8.重写“音量_静音” 增加“音量_增加”“音量_减少”,对声卡操作,XP,WIN系列均有效 精易模块 V3.54 what’s new:(20131221) 1.修复“系统_取宽带用户名密码”因调用 RtlMoveMemory_整数型 传址导致取到空的问题 1.增加“系统_取磁盘类型” 2.增加DLL“CoCreateInstance”“CLSIDFromString”“MultiByteToWideChar_整数型” 3.增加“音量_设置”“音量_获取”“音量_静音”“音量_增减”“A2W” 感谢 灰灰君 提供参考代码 1.修正 “系统_置音量”为"音量_置声道",修改“系统_取音量”为"音量_取声道" 1.完善“文件_改扩展名”的参数备注 感谢 落雪 的提醒 精易模块 V3.53 what’s new:(20131220) 1.完善 “编码_URL编码”对 参数 欲编码的文本 是否为空进行判断 2.完善 “普通填表.网页_验证码同步”的备注,删除残留的测试代码 3.完善 “网页_禁止允许gif图片”“网页_禁止允许显示图片” “网页_禁止允许背景声音”“网页_禁止允许点击声音” “网页_禁止允许播放网页视频”“网页_禁止允许一键操作” 的备注信息 1.增加网页_禁止允许一键操作() 参数 <禁止允许播放网页视频> 2.增加 DLL "RtlMoveMemory_整数型2",目前应用于 类_位图操作 的 “从屏幕创建” 1.删除 “网页_验证码读取” 该命令是封装的 网页_访问_对象,所以 请直接使用“网页_访问”或“网页_访问_对象”读取验证码,根据需要进行“图片_转换” 2.删除“网页_验证码同步” 该命令是用于填表同步验证码的,所以 请直接使用“普通填表.网页_验证码同步”,使用前请确保已经“普通填表.初始化” 1.修复 类_识图 的“找图_从句柄” 感谢会员 今朝 的提醒 和 果子 提供解决方案 精易模块 V3.52 what’s new:(20131217) 1.修复 “普通填表.多行文本框_写内容”感谢会员 wjlzhi 的提醒和提供解决方案 2.修复 “网页_取元素坐标”导致普通填表无法使用,感谢会员 残绵游戏 的提醒 3.修复“程序_重启”win8无效的问题 感谢会员 千年 的提醒和提供解决方案 1.完善“系统_以管理员模式创建进程”的备注 感谢会员 977945676 的提醒 2.完善“线程池1”,投递任务支持多个参数 感谢会员 小磊 进行代码优化 3.完善“文本_汇编_取随机数字” 还原为 “文本_取随机数字” 该命令并没有被取消掉,只是被改名了,因此,对于前维护者改名所造成的不便进行道歉 1.重写“线程_启动四参”命令的参数类型和位置 感谢会员 小磊 进行代码优化 2.重写“数组_排序”,速度提升256倍以上! 感谢会员 落雪 提供的参考代码 3.增加 DLL "lstrcmp" 目前应用于数组_排序 4.增加“数组_反转”,感谢会员 落雪 提供的参考代码 精易模块 V3.51 what’s new:(20131214) 1.增加“网页_访问_EX”增加超时功能,和修复win7下https代理无效问题 感谢 90后辉煌 提供参考代码,让我们期待已久的超时功能回归,也请大家帮忙测试 【网页_访问_EX 为测试版本,完善后,将会删除该命令,功能会添加到 网页_访问()】 2.增加 线程池类1“取状态” 感谢 我叫林舒书 提供参考代码 3.增加 普通填表类“网页_刷新”刷新当前页面 感谢 laiyihan 的建议 4.增加 “网页_取文本”去掉网页源码中的HTML标签,保留纯文本 1.删除 普通填表类“网页判断” 精简模块体积(这是一个没有用的空白子程序) 1.重写 “窗口_圆角化” ,参数一类型由窗口改为句柄,参数二和三可空 感谢 果子的提醒 2.重写“网页_取元素坐标”原命令虽然公开但无效,因为屏蔽了全部代码代码本身残缺) 故本次属于重写代码,接收参数,改为一个,元素对象,代码简洁,需要更多功能请组合其他命令 3.重写“网页_取域名”增加可空参数<后缀点数量> 新版命令支持任何后缀域名 感谢 977945676 的提醒 1.完善 “网页_访问”和“ 网页_访问_对象”的参数<附加协议头>的备注 感谢 90后辉煌 的提醒 2.完善"系统_启用本地连接"备注 感谢 7141330054 的建议 3.完善“网页_访问” 删除设置代理时,无用的到文本,提高效率 感谢 果子 的提醒 4.完善“文本_取出中间文本”的参数<起始搜寻位置>的备注 感谢 落雪 的提醒 5.完善 DLL“_宽字符到双字节”和“_宽字符到双字节1”的备注 方便区分 1.修复“编码_Unicode到Utf8”,感谢 90后辉煌 的提醒 2.修复“系统_取宽带用户名密码”因 编码_Unicode到Utf8 有问题导致的问题 感谢 wjjucwj 的提醒 注:ADSL拨号类的<取宽带用户名密码>也是调用这个命令 代码个人审阅完成,发现代码和3.40版一样,对于3.40能取出,新版无法取出 如果不是上述已被修复的bug导致的,暂时无法解释。。。 因为该命令调用很多的子程序,涉及代码太多,维护时间耗时2天多,也因此拖慢了3.51的发布 故决定,先发布3.51版本,本命令可能隐藏的BUG,我们继续研究,看能否找出真正的问题所在 精易模块 V3.50 what’s new:(20131211) 1.修正 DLL "WideCharToMultiByte"最后一个参数为逻辑型 2.新增 DLL "StrToIntEx" 目前应用于usc2和ansi互转 EX加强版 3.新增 “编码_usc2到ansi_EX”“编码_ansi到usc2_EX” usc2和ansi互转 EX加强版 精易模块 V3.49 what’s new:(20131209) 1.删除 “网页_访问s ” 解决方案和删除原因:http://bbs.125.la/thread-13687724-1-1.html 2.完善 “网页_取外网IP” 网页_访问s 为 网页_访问 效率提升 3.增加“系统_屏蔽任务管理器1”“系统_恢复任务管理器1”的备注提示信息 4.增加 “时间_取现行时间戳” 一个可选参数,是否为 十位时间戳 感谢 H婶 的提醒 5.修复 “时间_转为GMT格式” 日期缩写错误 感谢 H婶 的提醒 精易模块 V3.48 what’s new:(20131208) 1 重写 “系统_是否已联网1” 检测速度更快,感谢 阿蒙 的提醒 1、修复 模块内部命令 ,感谢 农夫 的提醒 2、改善 “RAR_解压文件” 备注 ,感谢 阿蒙 的提醒 3. 改善 “文本_是否为汉字”增加正则方式判断 感谢 7141330054 的提醒 精易模块 V3.47 what’s new:(20131207) 1、增加“系统_关联右键菜单带图标”命令 2、增加“类_内存配置项”命令,感谢会员 微凉 提供的代码 3、增加“编码_U编码转换”命令 4、增加“音乐_播放”,“音乐_暂停”,“音乐_停止”命令 5、增加“文本_朗读”命令 1、改进“网页_验证码读取”添加“附加协议头”的参数,感谢会员 提百万 的建议 2、改进“系统_取MAC地址”命令,感谢会员 Mr.Yang 的源码 3、改进“ 网页_取Cookie”等命令的描述歧义,感谢会员 imdong 的提醒 1、修复“时间_取中国星期几”命令无效的BUG,感谢会员 易難為易 的建议 2、修复“目录_是否存在”,“目录_创建” 传入参数被参考,再次使用参数变量,引发路径错误 3、完善“目录_”“文件_”开头命令的参数描述,防止出现6中错误,数量众多,这里不一一列举 4、修复“易语言_取易语言安装目录” 感谢会员 7141330054 的提醒 精易模块 V3.46 what’s new:(20131101) 1、完善重写“文本_取出现次数”命令感谢会员 Mr.Yang 提供的代码 2、完善重写“系统_格式化软盘”命令感谢会员 Mr.Yang 提供的代码 3、完善“程序_删除自身”命令感谢会员 暂停使用 的提醒 4、完善“进程_ID取窗口句柄”命令感谢会员 维卷残恋 的提醒 5、完善“类_json”命令感谢会员 jixun66 提供的代码 1、修复“目录_是否存在”无效的问题,感谢会员 红颜似水 的提醒 1、添加“线程池1”类中的新“投递任务”命令,感谢会员 维卷残恋 提供的代码 精易模块 V3.45 what’s new:(20130901) 1、添加“系统_修改开机密码”命令,感谢会员 吾愛じ啃玉米ジ 提供的代码 2、添加“程序_写日志”命令 感谢会员 以后不抓了 的提醒 1、修复“网页_访问_对象”命令无效的BUG 2、修复API“ ZwQuerySystemInformation”的声明错误,感谢会员 天踏梦者 的提醒 3、修复“程序_加入右键菜单”的命名问题,感谢会员 阿蒙 的提醒 4、完善“窗口_取IE窗口句柄”命令备注,感谢会员 御风软件 的提醒 5、修复“系统_取CPU名称”、“系统_取CPU描述”发布版本崩溃的问题,感谢会员 淡淡烟草味 的提醒 6、修复“数组_输出”命令出错的问题,感谢会员 鬼璽 的提醒 精易模块 V3.44 what’s new:(20130802) 1、紧急修复“汇编_取随机数”命令所带来的一系列BUG 精易模块 V3.43 what’s new:(20130801) 1、增加“目录_强力清空”命令,完美清空大型目录 2、重写“目录_删除”命令,大幅度提高删除速度 3、“网页_访问_对象”命令,增加对象继承参数感谢会员 咏恒ぃ☆吣 的建议 4、增加“网页_修改”命令,感谢会员 晓易 提供的代码 5、增加“汇编_取随机数”命令 6、优化替换模块内部所有的“取随机数”命令为“汇编_取随机数” 7、“网页_访问_对象”命令,默认忽略Https证书错误感谢会员 tomorrow01 的建议 8、重写“文件_合并文件”命令 9、添加“类_json” 1、修复“服务器类”当启动时最后3个参数任意为空,会导致程序闪退的问题,感谢会员will的提醒 2、修复“文本_取右边”等一组,文本命令的参数描述错误,感谢会员 泪涟涟 的提醒 3、修复“置窗口位图”命令的一个参数错误,感谢会员will的提醒 精易模块 V3.42 what’s new:(20130601) 1、优化“网页_验证码同步”命令的备注,感谢会员御风软件提醒 1、修复“文本_取中间_批量”命令结果不正确的BUG,感谢会员淘宝网赚提供的命令 1、增加“进程_创建”命令 精易模块 V3.41 what’s new:(20130501) 1、优化“网页_验证码同步”命令,默认不自动转换格式,但保留转码参数 2、优化“批量_”开头命令的备注,感谢会员御风软件提醒 3、优化“文本_取随机范围数字”命令提高运行速度,感谢会员jixun66提供的代码 4、优化“校验_md5”相关命令添加16位的支持,感谢会员御风软件提醒 5、关闭“网页_访问”命令的自动转码功能 1、修复“剪辑版_置文件”和“剪辑版_取文件”命令,会导致程序崩溃的BUG 2、修复“转为十六进制”的函数错误,感谢会员狼牙提供的修正命令 3、修复“进程_名取句柄”无法取到句柄的BUG,感谢会员 奋斗的叶子 的提醒 精易模块 V3.4 what’s new:(20130401) 1、优化“网页_验证码同步”命令,自动转换图片格式,感谢会员御风软件提醒 2、优化去除重复命令“文本_取文本长度”,感谢会员御风软件提醒 3、优化“目录_是否存在”命令,返回结果更加精确,感谢会员雪落有声提供的命令 4、优化“文件_是否存在”命令,返回结果更加精确,感谢会员雪落有声提供的命令 5、优化“目录_定位”命令,写法更加简洁,感谢会员雪落有声提供的命令 6、优化网页事件常量的命名方式,统一为英文,,感谢会员御风软件建议 7、优化“系统_设置IE代理地址”命令添加是否立即更新设置参数 1、增加“系统_临时字体_安装”、卸载命令,感谢会员啸锐提供的命令 2、增加“文件_循环删除”命令 3、增加“窗口_循环关闭”命令 1、修复“文件_写出字节集”命令API模式无效的BUG,感谢会员5582139提供的命令 2、修复部分命令的备注问题 3、修复“字节集_到十六进制”无法解密的BUG,感谢会员linkasp的提醒 4、修复“进程_ID取窗口句柄”取出无效句柄的问题,感谢会员残绵游戏的提醒 精易模块 V3.33 what’s new:(20130301) 1、增加“网页_删除IE缓存文件”命令 2、增加“系统_判断有无摄像头”命令 1、修复“网页_访问s”无法使用的问题 2、修复“网页_取外网IP”失效的问题 3、修复“文本_取中间_批量”结果会叠加的问题,感谢会员尔康的提醒 4、修复“安装键盘钩子”命令的一个无效参数,感谢会员阿柳的提醒 5、修复“窗口_热键卸载所有”命令会内存出错的问题,感谢会员果子的提醒 6、修复“易语言_到系统右键中”的数据类型错误,感谢会员gotomiss的提醒 7、修复“易语言_加快捷方式到IE浏览器”的数据类型错误,感谢会员gotomiss的提醒 8、修复“外部编辑框_置四边距”的数据类型错误,感谢会员gotomiss的提醒 9、修复“外部列表框_鼠标坐标取项目索引”的数据类型错误,感谢会员gotomiss的提醒 10、修复“文本_取汉字机内码”的数据类型错误,感谢会员gotomiss的提醒 11、修复“文本_取汉字机内码2”的数据类型错误,感谢会员gotomiss的提醒 12、修复“客户端类_发送并取回1”的数据类型错误,感谢会员gotomiss的提醒 1、优化“网页_访问”相关命令的备注,感谢会员御风软件提醒 2、优化“网页_访问”相关命令的自动转码功能,支持XML页面 3、优化“文本_取中间_批量_正则方式”支持换行符 精易模块 V3.32 what’s new:(20130207) 1、修正“文本_删除指定文件行”命令,无法删除最后一行的BUG,感谢会员陌笔圣手提醒 2、修正“内存_优化”命令的优化间隔无法调整的问题,感谢会员御风软件提醒 3、优化“cmd_移动并运行”防止文件路径带空格执行失败,感谢会员jixun66提醒 4、优化“窗口_枚举”命令,无法枚举隐藏窗口的问题,感谢会员微凉提醒 5、优化“类_线程池1”去除部分无效的命令,感谢会员微凉提醒 6、修正“网页_验证码同步”命令会清空剪辑板的问题,感谢会员于哈三轮车提醒 7、优化“网页_访问”的自动解码能力,感谢会员御风软件建议 8、增加“数组_去重复1”可去除带有特殊字符的数组,但效率较慢,感谢会员zengxming提醒 9、优化“系统_检测host”,感谢会员jixun66提醒 10、修正“易语言_加快捷方式到IE浏览器”第二个参数无效的BUG,感谢会员jixun66提醒 11、修正“置入汇编代码”无效的问题,感谢会员jixun66提醒 12、添加“网页_访问s”命令,使用WinInet的方式访问网页,懒人专用自动返回文本 13、添加“系统_是否64位操作系统”命令 14、修复“程序_是否被调试”,返回结果是相反的问题,感谢会员yaoying68的提醒 15、修复“程序_禁止重复运行”部分参数无效的问题,感谢会员yaoying68的提醒 16、修复“系统_取星座”命令的错别字,感谢会员xzlch的提醒 17、添加“窗口_控件调整_创建”和销毁,感谢会员啸锐提供 18、修复“取指针地址_整数型”的返回结果不准确的问题,感谢会员 神一样的男人!提醒 精易模块 V3.31 what’s new:(20130126) 1、修正“内存.读文本”命令,会崩溃的问题,感谢会员 陌笔圣手提醒 2、修正“网页_访问”命令,代理IP可能失效的BUG 3、添加“编码_编码转换对象”命令,使用对象转码更加稳定 4、添加“文件_循环删除文件”命令 5、优化“cmd_删除自身”命令,只读文件也可删除 6、添加“系统_以管理员模式创建进程”命令 7、添加“系统_注册组件”、“系统_卸载组件 ()”命令,用于注册和卸载dll组件 8、添加“写注册项Ex”命令,用于写入带有斜杠的注册项 9、添加“窗口_模糊遍历窗口”命令,用于模糊枚举窗口 10、添加“窗口_取进程路径”命令 11、添加“系统_检测host”命令,用于检测host是否被修改 12、添加“文件_枚举1”命令,用于高速枚举文件 13、添加“窗口_取字符串宽度”命令 14、添加“窗口_按类名枚举”命令 15、添加“窗口_强制显示”命令 16、优化“系统_取硬盘特征字”的运行速度 精易模块 V3.3 what’s new:(20130119) 1、重写“网页_访问”命令,优化参数排序,增加智能解码功能,兼容黑月 2、重写“网页_访问_对象”,优化参数排序,增加自动处理Cookie功能 3、重写“网页_JS格式化”,采用了国外优秀的开源库,准确无误 4、修正“清除Cookie”命令无法彻底清除部分Cookie的问题 5、增加“文本_去重复文本”命令 6、修正“网页_取端口”,遇到ssl的网站,会返回错误的问题 7、修正“文件_定位”,在某些情况下,会失效的BUG 8、优化“线程_等待”命令的,超时参数,加入无限等待 9、增加“类_线程池1”,更加灵活的线程池模型 10、增加“系统_修改MAC地址”可修改本机mac地址,重启后生效 11、增加“系统_删除MAC地址”删除注册表内的mac地址 12、优化“FTP_”程序集,改为类模块,更加灵活调用 13、修正“网页_取Cookie”命令无法取出部分Cookie的BUG 14、重写“网页_Cookie合并更新”命令优化代码结构 15、修复“网页_屏蔽网页复制提示”在某些情况下无法立即生效的BUG
免费个人博客系统(兼多用户博客系统)是支持一个空间2个网站的全能型网站管理系统,本免费个人博客系统通用和拓展性强,博客、文章系统、商城、企业网站、个性化论坛等类型网站都可以使用,将来网站无论如何转型或拓展,只需要修改模板就可以实现,无需重建网站。本系统不同于以往任何逻辑架构的网站程序。本软件开发者希望通过注重商业化开发,助力用户通过网络创业和赚钱,当然您也可以通过这个软件在互联网高效地展示自己。 详细说明: 1.本个人博客系统可以用于商业用途,本软件官方、开发者不收取任何授权费用; 2.本个人博客系统是支持一个空间2个网站的全能型博客系统; 3.本个人博客系统通用和拓展性强,博客、文章系统、商城、企业网站、个性化论坛等类型网站都可以使用; 4.本个人博客系统功能强大,代码少,运行效率更高,程序运行速度是其它主流同类软件的3~4倍,内存占用不到其它主流同类软件的五分之一; 5.开启和关闭会员注册,开启和关闭普通会员投稿功能; 6.会员功能拓展到了兼职专题功能,SEO设置和开放特约编辑的多用户不同权限管理功能等; 7.超级管理员可无密码一键登录任意会员后台,管理员用受限登录会员身份后台发布信息,也可让网站攻击者无法猜解密码; 8.自动生成手机版网站,系统默认带www的域名为PC模板站,不带www的顶级域名为手机站,不增加维护难度,就可以同时拥有2个网站; 9.博客程序还包含订单、秒杀、限时抢购和数量虚拟功能,助力用户互联网创业和商业化运营,就看脑洞大开的你怎么使用了; 10.本个人博客系统能够适应各种界面浏览器,后台可手机随时随地访问、管理和更新网站; 11.可一键切换成.shtml、.html、.htm、.asp、.aspx、.cgi、.php、.jsp、.cgi、/ 等网页后缀,模拟不同语言编程的网站程序; 12.前端页面精简,前端编码不用div标签,不用id、class规则的CSS样式,最大限度精简前端代码,鼓励用户抛弃div+CSS前端代码编写模式,我们这样做不是为了迎合HTML5,只是为了更合理的应用HTML标签; 13.安装程序自动识别和设置伪静态; 14.全站无死角SEO设置; 15.强大的内链逻辑,特别适应大数据类型网站使用; 16.强大的广告和精准广告设置; 17.数据缓存模式,不依赖外部服务器组件和其它插件,不额外占用服务器系统内存资源; 18.删除局部缓存和一键清除全部缓存; 19.可设置邮件实时通知新订单和访客留言; 20.可设置管理员回复留言可同时邮件通知留言者; 21.可查看和删除无用上传文件,为将来数据备份节省时间和空间; 22.特色的tag标签功能; 23.分类、tag标签、url表单填写自动补缺; 24.url表单可自动生成拼音,也可以用汉字,自动转码,有利于SEO搜索引擎排名; 25.开放式PHP原生态模板,用户任意修改、穿插内容或广告,无需花时间研究额外规则,模板修改成本更低; 26.可对模板备份,使用备份模板,并可对模板恢复系统初始状态; 27.模板修改全站页面秒更新; 28.可自定义SQL语句的图片展示页面; 29.后台可控制各个模块是否开启验证码、设置验证码长度,以及设置验证码破解难度; 30.访客留言关键词过滤; 31.可自定义导航; 32.可在线编辑js和CSS文件; 33.本免费个人博客系统(兼多用户博客系统)无后门。
02408免费个人博客系统(兼多用户博客系统)是支持一个空间2个网站的全能型php MySQL网站管理系统,本免费个人博客系统通用和拓展性强,博客、文章系统、商城、企业网站、个性化论坛等类型网站都可以使用,将来网站无论如何转型或拓展,只需要修改模板就可以实现,无需重建网站。本系统不同于以往任何逻辑架构的网站程序。本软件开发者希望通过注重商业化开发,助力用户通过网络创业和赚钱,当然您也可以通过这个软件在互联网高效地展示自己。 02408免费个人博客系统(兼多用户博客系统)说明 1.本个人博客系统可以用于商业用途,本软件官方、开发者不收取任何授权费用; 2.本个人博客系统是支持一个空间2个网站的全能型博客系统; 3.本个人博客系统通用和拓展性强,博客、文章系统、商城、企业网站、个性化论坛等类型网站都可以使用; 4.本个人博客系统功能强大,代码少,运行效率更高,程序运行速度是其它主流同类软件的3~4倍,内存占用不到其它主流同类软件的五分之一; 5.开启和关闭会员注册,开启和关闭普通会员投稿功能; 6.会员功能拓展到了兼职专题功能,SEO设置和开放特约编辑的多用户不同权限管理功能等; 7.超级管理员可无密码一键登录任意会员后台,管理员用受限登录会员身份后台发布信息,也可让网站攻击者无法猜解密码; 8.自动生成手机版网站,系统默认带www的域名为PC模板站,不带www的顶级域名为手机站,不增加维护难度,就可以同时拥有2个网站; 9.博客程序还包含订单、秒杀、限时抢购和数量虚拟功能,助力用户互联网创业和商业化运营,就看脑洞大开的你怎么使用了; 10.本个人博客系统能够适应各种界面浏览器,后台可手机随时随地访问、管理和更新网站; 11.可一键切换成.shtml、.html、.htm、.asp、.aspx、.cgi、.php、.jsp、.cgi、/ 等网页后缀,模拟不同语言编程的网站程序; 12.前端页面精简,前端编码不用div标签,不用id、class规则的CSS样式,最大限度精简前端代码,鼓励用户抛弃div CSS前端代码编写模式,我们这样做不是为了迎合HTML5,只是为了更合理的应用HTML标签; 13.安装程序自动识别和设置伪静态; 14.全站无死角SEO设置; 15.强大的内链逻辑,特别适应大数据类型网站使用; 16.强大的广告和精准广告设置; 17.数据缓存模式,不依赖外部服务器组件和其它插件,不额外占用服务器系统内存资源; 18.删除局部缓存和一键清除全部缓存; 19.可设置邮件实时通知新订单和访客留言; 20.可设置管理员回复留言可同时邮件通知留言者; 21.可查看和删除无用上传文件,为将来数据备份节省时间和空间; 22.特色的tag标签功能; 23.分类、tag标签、url表单填写自动补缺; 24.url表单可自动生成拼音,也可以用汉字,自动转码,有利于SEO搜索引擎排名; 25.开放式PHP原生态模板,用户任意修改、穿插内容或广告,无需花时间研究额外规则,模板修改成本更低; 26.可对模板备份,使用备份模板,并可对模板恢复系统初始状态; 27.模板修改全站页面秒更新; 28.可自定义SQL语句的图片展示页面; 29.后台可控制各个模块是否开启验证码、设置验证码长度,以及设置验证码破解难度; 30.访客留言关键词过滤; 31.可自定义导航; 32.可在线编辑js和CSS文件; 33.本免费个人博客系统(兼多用户博客系统)无后门。 默认管理员:admin 密码:www.02408.com。注意此账号存在安全隐患,请另新创建超级管理员,然后将此账号删除,或禁止登录。 02408免费个人博客系统(兼多用户博客系统)截图 相关阅读 同类推荐:站长常用源码
2017.9.27 更新:处理可能出现的一些重复签到的情况 更新:现在被禁用的用户,在刷新签到列表后不会再显示在签到列表中 更新:增加了功能的快捷键 2017.9.25 更新:增加了手机端的观众中奖信息查看功能 2017.8.30 更新:处理了一个开幕墙,闭幕墙的二维码bug 2017.8.25 更新:增加了红包功能 更新:3d签到预设图形增加了网格 更新:对对碰里面增加了昵称显示 更新:修复一个幸运数字的bug 2017.9.18 更新:优化了很多用户体验细节 更新:处理了一些细节方面的bug 2017.8.25 更新:增加了红包功能 更新:3d签到预设图形增加了网格 更新:对对碰里面增加了昵称显示 更新:修复一个幸运数字的bug 2017.8.23 更新:增强了一个php配置的兼容性 更新:新手指南优化 更新:砸金蛋中奖人数较多时滚动条无法滚动的问题 更新:摇一摇增加了气球风格 更新:调整后台的一些文字描述 更新:新增中奖列表导出 更新:新手指南更新到8月22日 2017.8.11 更新:修复一个循环播放时随机出现重复消息的问题 更新:每场活动现在有独特的活动签到连接,不会出现串场的问题了 2017.8.8 更新:可以修改管理员密码 更新:增加开幕墙 更新:增加闭幕墙 更新:大屏幕右上角二维码增加中等大小的显示(3种大小状态,适合各种场景使用) 2017.8.6 更新:优化了一些js文件 更新:优化前台登录跳转页面的 更新:上墙消息增加了显示方式、循环播放设置、循环信息条数、放大显示图片消息开关、放大显示图片消息时间设置 更新:后台关闭上墙、摇一摇、投票后,手机端的菜单也会相应的消失,并且如果不小心连接放错了,可以跳转到签到页面去。 更新:系统会自动生成二维码 更新:安装好之后有更多的默认设置可以用,减少配置,即装即用 2017.8.5 更新:可以后台修改2段欢迎文字 更新:新手指南更新 更新:修复一个投票页面全屏后背景消失的问题 更新:增加了上墙首页右下角logo的上传功能 增加:相册 更新:处理一个在部分服务器上上传会报错的bug 更新:修复一个影响部分服务器的session相关的系统错误 更新:新增文字弹幕 更新:解决了砸金蛋每次只能砸1个人的问题 更新:优化了抽奖箱的效果,声音和摇晃的动作更加符合现实 2017.8.2 更新:优化签到顺序号码,减少不连续的情况出现 更新:增加最新的新手使用指南 更新:修复一个使用自己公众号授权的时候页面不跳转的问题 更新:现在可以自己编辑3d签到的图形的顺序及数量 更新:3d签到增加支持文字 更新:3d签到增加倒计时支持 更新:3d签到增加3个控制参数 2017.7.27 新增:增加内定列表,方便查看和管理内定人员信息 2017.7.26 更新:屏蔽用户的效果能正常运行了 更新:给抽奖箱和砸金蛋增加抽奖内定功能 更新:修复一个摇一摇后台显示错误的bug 更新:新版后台增加了开启和关闭签到填写姓名和手机号功能 2017.7.24 更新:优化界面 更新:优化手机页面的跳转 更新:增加签到名单导出功能 2017.7.6 新增:对对碰 更新:去掉后台进入摇一摇的链接(已经不需要了) 更新:一个可能会跳转到404页面的错误 更新:新版摇一摇菜单不正常显示的问题 更新:抽奖重新抽奖清空数据报错的问题 更新:优化了3d签到的效果 2017.7.5 新增:幸运手机号 新增:砸金蛋 更新:修复一个签到头像可能会重复出现的问题 更新:功能菜单修改 2017.7.4 新增:幸运号码抽奖 2017.7.3 更新:版本号从今天开始改为类似201707021这种形式,前八位是大版本日期,后面的数字是小版本的序号 2017.7.2 更新:前端UI界面全部优化 更新:抽奖支持多轮抽奖,可以内定 2017.6.25 更新:摇一摇功能全面优化升级,支持多轮摇一摇游戏 2017.6.14 更新:现在对对碰签到完成即可参与 更新:优化手机签到页背景 更新:部分文字说明更新 更新:优化了摇一摇功能 更新:图片上传功能优化,上传速度更快,支持jpg和png 2017.6.7 更新:去除不常用的功能,拍拍乐,拔河 更新:简化代码,优化性能 更新:系统不再需要对接公众号,使用更方便更自由 更新:修复了一个在windows系统下session可能失效的bug 更新:去除了公众号对接指南 更新:去除数据库中很多不再使用的表和字段,并且增加了大量备注 更新:重新写了签到功能 2017.6.6 更新:3D签到功能优化 2017.5.18 更新:更新图片保存的相关功能 更新:简化程序 2017.5.17 更新:修改session保存方式 2017.5.16 更新:修改缓存类,使代码更简介,结构性更好,方便二次开发 更新:修复摇一摇系统使用memcache的一些bug 2017.5.13 更新:简化所有主题的界面 更新:优化了后台系统设置页的内容,去掉了已经不用的项目 2017.5.10 更新:优化了3d签到的效果,减少屏幕分辨率对效果的影响 2017.5.5 更新:开场界面更新 更新:视屏背景主题的视频更新 更新:简化默认自定义主题的界面,使用更方便简洁 更新:修复一个拔河的默认没有自动安装上的问题 2017.5.2 新增:增加拔河功能 2017.4.24 更新:可以自定义修改版权信息 2017.4.13 更新:进一步提升摇一摇性能,减少数据库数据库访问次数 更新:改进完善微信上墙使用教程 2017.4.5 更新:修复一些小bug 2017.4.1 更新:修复了后台的信息显示的一个bug 2017.2.14 更新:优化签到列表的数据读取方式,现在几千人的活动,也不会卡在列表处了 2017.2.13 更新:增加了后台可以删除已审核信息的功能 2017.2.7 更新:优化抽奖功能,记录每个人被抽中的时间 2017.1.25(数据库结构发生变化) 更新:投票管理删除投票项功能 更新:可以设置2D签到时显示的微信昵称,真实姓名和手机号 更新:优化了上传图片的功能,增加了默认值,现在安装完成后不需要再上传自定义的图片才能正常显示页面了 新增:自定义上传摇一摇背景图 2017.1.24(数据库结构发生变化) 新增:签到触发关键字,可以设置关键字来触发签到的图文信息 新增:抽奖可以设置显示签到时填写姓名或手机号 更新:优化拍拍乐的参数设置 2017.1.23 更新:优化默认值,使系统安装完成之后设置简化 2017.1.22(数据库结构发生变化) 更新:修改了对公众号发送帮助后返回的信息内容,稍微简化了摇一摇和投票的流程 更新:把上传的图片存放目录转到更合适的目录下 2017.1.14 更新:解决弹幕必须循环播放的问题 2017.1.10 更新:修改了拍拍乐的多个bug 更新:修改了拍拍乐的图片排序 更新:修改了多个主题上墙内容重复滚动的问题 2016.12.30 更新:修改了新年主题的对联,改到鸡年的对联 2016.12.16 更新:处理了参与抽奖的人数大于150人时的一个人数显示错误 2016.11.22 更新:文字提醒优化 2016.11.14 更新:摇一摇显示人数的bug 2016.9.23 更新:处理一个数据库的兼容问题 更新:修改了多个js bug 更新:修改了smarty 的缓存目录,统一都放到data目录下,避免出现没有权限的情况 更新:优化用户信息获取方法,减少接口使用次数,避免现场观众太多导致接口次数用完的问题。 更新:优化系统设置界面,让人更容易看懂,为之后新增功能做准备 更新:现在支持所有类型的公众号。 2016.9.12 更新:处理一个微信墙js失效的bug。 2016.9.9 更新:摇一摇前台页面新增重置按钮,方便进行第多轮活动。 更新:简化数据库,并提供数据获取的性能 更新:调整系统后台细节,更方便使用 2016.9.7 更新:优化抽奖功能,千人万人抽奖都不卡。 更新:签到名单导出按钮,在php5.3以下的版本中自动不显示 新增:增加图文并茂的微信上墙使用教程word文档 2016.9.5 更新:提高摇一摇性能 更新:修复一个显示图片时候点击抽奖、摇一摇、投票界面,会被自动弹出的bug 2016.9.1 新增:增加关键字触发自动回复功能。 更新:微信上墙成功后自动回复后可增加自定义文字。 2016.8.29 更新:增加了程序和服务器的兼容性 更新:增加了系统内置的后台帮助信息 新增:签到用户列表导出excel 新增:增加更新日志按钮,最新更新一目了然 2016.8.18 更新:优化程序,降低误操作可能性 更新:更新拍拍乐,修复了一些小bug 2016.8.18 更新:修改了所有主题的3d签到按钮 更新:普通签到功能优化,修复了一个小bug 2016.8.3 更新:修改可以设置抽奖条件,签到即可抽奖和签到并发消息才可参与抽奖 2016.8.2 更新:修复抽奖结果查询bug,现在不是认证的号可以通过查询的方式获得中奖信息,认证的号在抽中的时候可以直接发送消息提醒中奖 2016.7.22 更新:3D签到墙修复不会实时更新签到用户的信息的bug 2016.7.21 更新:处理一些兼容性问题 2016.7.18 更新:修复拍拍乐抽奖阶段头像不显示bug 2016.7.16 更新:抽奖内定功能更新,优化设置流程 更新:美化授权成功页面 2016.7.15 更新:优化3D签到墙 更新:优化签到流程,使用更方便 2016.7.14 新增:3D签到墙 2016.7.13 更新:增加了后台的memcache配置功能,开始缓存后性能大大提升哦 2016.7.11 更新:修复一个宇宙弹幕不显示内容的bug 2016.7.7 更新:修复了一个最近更新中出现的sql语句错误 更新:修复可能导致借用公众号无法获取到用户信息的bug 2016.7.2 更新:修改了签到方式,签到更简单,更美观,可后台自定义记录姓名和手机号 2016.6.14 更新:修复了一个安装失败的bug 2016.6.11 新增:未认证订阅号和未认证服务号上墙功能 更新:修改了部分代码,方便阅读 更新:去掉了,很多不再使用的代码和注释,减少系统体积 更新:修改了 安装配置说明.txt 2016.6.6 更新:一键安装中增加了拍拍乐安装功能 2016.6.2 更新:微信菜单功能现在支持php5.4以下的版本 2016.6.1 更新:某些服务器上安装会出现微信token验证失败的一个问题 更新:数据库文件中的一个语法错误 2016.5.28 更新:支持本地缓存memcache,大幅提高摇一摇性能 2016.5.27 新增:微信菜单管理 更新:增加默认设置,一键触发帮助,摇一摇,拍拍乐,投票 2016.5.17 更新:宇宙弹幕主题,可以设置循环播放是否开启 新增:拍拍乐 2016.5.14 更新:增加了一些代码注释 更新:强化了代码的兼容性 2016.5.7 更新:数据获取方式调整,减少网络流量,性能更好。 2016.3.30 更新:美化摇一摇手机端界面 2016.3.28 更新:增加了抽奖内定功能 更新:去除签到页,改成用手机号签到,方便兑奖 更新:认证订阅号也可以使用 2016.3.25 更新:优化了摇一摇的操作,摇动记录功能更灵敏 2016.3.18 更新:降低了后台配置难度,使配置更简单 更新:增加了必填项的引导填写功能,操作更简单便捷 2016.3.9 更新:上墙首页关注部分的效果,提升了用户体验 更新:摇一摇参与界面的部分效果,提升了用户体验 更新:摇一摇背景变更,提升了用户体验 2016.1.30 更新:解决后台未审核信息类型错误的bug 更新:微信墙的一些细节更新,用户体验更好 2016.1.29 更新:修改系统的部分程序结构和目录结构 更新:修改更新日志结构 2016.1.28 新增:增加签到成功之后,微信公众号自动提醒签到成消息 新增:增加了用户中奖之后,公众号会发送提醒信息 更新:修改了一键安装程序,检测内容更完善 2016.1.22 更新:压缩了所有背景图,增加打开微信墙的速度 更新:更新了数据库安装导入文件,数据更小 2016.1.20 更新:修改了登录页面,新页面更大气上档次 2016.1.19 新增:后台增加了签到用户的信息 2016.1.6 更新:简化微信上墙的程序流程,提高程序运行效率 2016.1.5 更新:修复一些自动更新微信墙的bug 2015.12.30 更新:数据库连接相关内容 2015.12.23 更新:过滤一些字符串的空格,减少误操作的可能性 2015.12.20 更新:更新摇一摇提示信息,避免产生不必要的误会 2015.12.19 新增:增加1个自定义背景图的主题 新增:可以自定义上传logo图片 更新:微信上墙后台刷新待审核息功能完成 更新:修改了微信强签到页面的摇一摇按钮,使用更方便 更新:优化摇一摇功能减少大量无用的请求 更新:摇一摇优化,现在手机端和电脑端的数字会显示一致,不会因为网络卡而导致不一样的情况发生 2015.12.12 更新:更新了安装文档中的一个错误。 更新:更新了上墙换肤图相关的一个js错误。 更新:优化一键安装流程,精简代码,降低服务器要求 更新:不再要求开启php短标签支持,适用更多的服务器 更新:修改二维码存放目录,并在安装时检测存放目录的权限 2015.12.11 更新:更新了上墙首页的一个js错误。 2015.12.8 更新:安装教程更新 2015.12.5 新增:系统增加一键安装功能 更新:修改了大量数据库相关的内容,试程序更容易被读懂 更新:删除不必要的代码,简化程序方便二次开发 更新:优化代码,解决了页面上的一些js错误,提高页面运行效率,页面打开更快 更新:优化界面,使每一屏显示的消息更多 更新:优化页面资源加载顺序,使活动页面打开速度翻倍 2015.12.4 更新:去除领奖验证按钮,简化领奖操作流程 更新:简化系统配置文件,简化安装流程 更新:处理了一个抽奖完成后,没法再次抽奖的bug 更新:重新做了代码的排版,使代码修改更方便 更新:优化程序的存放目录结构,找文件更容易 更新:删除一些不必要的文件,减小源码包的体积,下载更轻松。 2015.12.2 更新:更新了大量的服务器配置兼容性问题,使安装更容易 2015.11.25 更新:修复了一些泄露微信公众号信息的问题 更新:完善了安装说明
6月24日再此更新,此次强调大家自己动手DIY:比如FCK自身工具栏上按钮的增删、位置的移动;再比如FCK插件及按钮的增删;安装方法:1、删除你PJBLOG原先的FCKEDITOR整个目录 2、上传压缩包中的所有文件到你的PJBLOG根目录下 3、在你的header.asp和Template\static.htm两个文件中找到以下一句代码代码:[removed][removed]低版本pjblog用户可查找代码:[removed][removed]在此之前插入以下几句代码代码:<link rel="stylesheet" rev="stylesheet" href="FCKeditor/editor/plugins/insertcode/insertcode.css" type="text/css" media="all" /> [removed][removed] [removed][removed]说明: 1、精简了原程序中ASP除外的无用脚本文件 2、精简了原种中除简体中文、繁体中文、英语除外的其他多国语言文件 3、增加了中文字体及字号 4、显示区块加载后默认为开启状态,方便对段落及层次查看 5、保留了FCKeditor2.6.4自带的filemanager文件上传管理系统。但并为开启。开启方法:打开fckeditor\editor\filemanager\connectors\asp\config.asp在其中找到代码:Dim ConfigIsEnabled ConfigIsEnabled = false将false改为true 上传文件目录的修改方法是在此文件中找到代码:Dim ConfigUserFilesPath ConfigUserFilesPath = "/attachments/"对其中的路径修改即可 在这个文件中可以对FCK自带的文件上传系统进行各种配置,比如对允许上传的文件类型进行配置等 6、更换了QQ表情包关于FCK本身工具栏按钮添加删除和改变布局的方法: 如果FCK编辑器的工具栏中本身自带的某些按钮对你没有用处,你可以通过修改来去掉他们,或者也可以改变他们在工具栏中的位置。 方法是打开fckconfig.js这个文件,这个配置文件可以对FCK编辑器许多参数进行配置,当然也包括工具栏上的按钮。 找到默认工具栏这段代码代码:FCKConfig.ToolbarSets["Default"] =这段代码就是工具栏按钮代码,一一对应的关系。对于FCK自身的某个按钮,不需要的话可以直接在这里将他的代码删除掉。或者前后移动某个按钮的位置。关于FCK插件方式扩展的功能: FCK插件方式扩展的功能需要先在代码:FCKConfig.PluginsPath = FCKConfig.BasePath + 'plugins/' ;这一段代码里增加插件的加载语句,然后再在默认工具栏代码那段中增加按钮。如果不需要某个插件功能了,反过来要将工具栏中的代码删除,并将插件的加载语句也删除掉。附带的FCK插件有: 1、谷歌地图插件:没有开启,若需要请自行开启。 2、增加了“插入多格式媒体”的功能,支持FLASH、windows media、real media、shockwave、quicktime等格式影音媒体播放 3、新增一种“多格式视频播放器”,支持.flv、.wma、.mov和.avi格式的视频播放。所以把将上一版本中的".flv视频插件"去掉了,但其插件文件保留在插件目录中,如果需要那个插件的朋友请自行开启。 4、增加了“KMP可收缩MP3音乐播放器”,专门用来播放.MP3音乐 此播放器颜色可自定义修改,打开fckeditor\editor\plugins\kmp\wpAudioPlay.js找到播放器各部分的颜色值直接修改,比如要修改此播放器底色为白色,那么找到如下的代码bg=0xCDDFF3将其中的颜色值CDDFF3修改为FFFFFF即可。 bg=0xCDDFF3 leftbg=0x357DCE lefticon=0xF2F2F2 rightbg=0xF06A51 rightbghover=0xAF2910 righticon=0xF2F2F2 righticonhover=0xFFFFF

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧