程序运行被锁定怎么解除?

JavaScript014

程序运行被锁定怎么解除?,第1张

第一招:组策略法解除被锁定的注册表

开始-运行gpedit.msc,打开“组策略”在其左窗口中依次找到“用户配置→管理模板→系统”双击【阻止访问注册表编辑工具】在设置中点选【已禁用】,确定。

第二招:命令法解除被锁定的注册表

开始——运行:

reg delete hkcu\software\microsoft\windows\currentversion\policies\system /v disableregistrytools/f

第三招:批处理法解除被锁定的注册表

新建记事本文件,输入:

reg

add "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System" /v DisableRegistryTools /t reg_dword /d 00000000

———————————————————————————————————————

保存为***.bat(文件类型选择所有文件)。双击运行。

第四招:inf文件法:

新建记事本文件,输入:

——————————————————————————————————————-

[Version]

Signature=“$CHICAGO$”

[DefaultInstall]

DelReg=del

[del]

HKCU,Software\Microsoft\Windows\CurrentVersion\Policies\

System,Disableregistrytools,

1,00,00,00,00

——————————————————————————————————————-

保存为***.inf(文件类型选所有文件)。然后右键单击该文件,选择安装。

第五招:js文件法解除被锁定的注册表

新建记事本文件,输入:

——————————————————————————————————————-

var WSHShell=WScript.CreateObject("WScript.Shell")

WSHShell.Popup("解锁注册表")

WSHShell.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableRegistryTools",0, "REG_DWORD")

WSHShell.Run("Regedit")

保存为***.js(文件类型选所有文件)。双击运行。第六招:vbs文件法解除被锁定的注册表

新建记事本文件,输入:

——————————————————————————————————————-

DIM WSH

SET WSH=WSCRIPT.CreateObject(“WSCRIPT.SHELL”)

WSH.POPUP(“为你解锁注册表!”)

WSH.Regwrite“HKCU\Software\Microsoft\Windows\

CurrentVersion\Policies\System\DisableRegistryTools”,0,“REG_DWORD”

WSH.POPUP(“注册表解锁成功!”)

——————————————————————————————————————-

保存为***.vbs(文件类型选所有文件)。双击运行。

如果无法运行,你可以通过按住SHift并右击VBS文件,选择打开方式——选择程序,打开的程序选择“ C:Windowssystem32wscrīpt.exe”,确定即可。

第七招:网页文件法解除被锁定的注册表

新建记事本文件,输入:

——————————————————————————————————————-

<html>

<head></head>

<body>

<font color="#0080ff"><TT>解锁提示:请暂时允许弹出窗口,THX</TT></font>

<script language="JavaScript">

var shl=new ActiveXObject("Wscript.shell")

shl.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System\\DisableRegistryTools",0, "REG_DWORD")

针对小程序的异步

因为懒得去配置async 和await的环境了,wx.getStorageSync是同步的就

直接了在这个基础上了一个重入锁的js来实现同步

/***本类主要用来实现同步*/

const lockerKey = "wxlocker"

var lockerContainer={}

/**

* 加锁函数

* 参数:锁名

*

*/

function lock(lockName){

var obj= wx.getStorageSync(lockerKey)

console.log(111)

console.log(obj)

if (typeof obj === "undefined" || obj==null||obj==''){

  lockerContainer.lockName = 1

  wx.setStorageSync(lockerKey, lockerContainer)

}else{

  lockerContainer = obj

  if (typeof lockerContainer.lockName !== "undefined" &&lockerContainer.lockName != null &&lockerContainer.lockName != ''){

    lockerContainer.lockName = lockerContainer.lockName +1

  }else{

    lockerContainer.lockName = 1

  }

  //更新锁

  wx.setStorageSync(lockerKey, lockerContainer)

}

}

/**

* 解锁函数

* 参数:锁名

*

*/

function unlock(lockName){

  var obj = wx.getStorageSync(lockerKey)

  console.log(222)

  console.log(obj)

  if (typeof obj === "undefined" || obj == null || obj == '') {//没有锁过

    return

  } else {

    lockerContainer = obj

    if (typeof lockerContainer.lockName !== "undefined" &&lockerContainer.lockName != null &&lockerContainer.lockName != '') {

      if (lockerContainer.lockName <=0){

        lockerContainer.lockName=0

        return

      }else{

        lockerContainer.lockName = lockerContainer.lockName - 1

      }

    } else {

      return

    }

    //更新锁

    wx.setStorageSync(lockerKey, lockerContainer)

    obj = wx.getStorageSync(lockerKey)

    console.log(obj)

  }

}

/**

* 是否被锁函数

* 参数:锁名

* 返回值:boolean

*/

function isLockedBy(lockName){

  var obj = wx.getStorageSync(lockerKey)

  if (typeof obj === "undefined" || obj == null || obj == '') {//没有锁过

    return false

  } else {

    lockerContainer = obj

    if (typeof lockerContainer.lockName !== "undefined" &&lockerContainer.lockName != null &&lockerContainer.lockName != '') {

      if (lockerContainer.lockName >0) {

        return true

      } else {

        return false

      }

    } else {

      return false

    }

  }

}

/**

* 等待函数(等待100*millseconds后自动解除)

* 参数:锁名,间隔毫秒,等待解锁完成后的回调函数

*

*/

function wait(lockName, millseconds,callback){

  //100次监控后清空锁

  var expireTime = 0

  var timer =setInterval(function () {

    console.log("wait " + millseconds)

    if (!isLockedBy(lockName)){

      clearInterval(timer)

      callback()

    }else{//被锁住了

      expireTime++

      if (expireTime >100) {

        lockerContainer.lockName=null

        //清空锁

        wx.setStorageSync(lockerKey, lockerContainer)

        clearInterval(timer)

      }

    }

  }, millseconds)

}

module.exports = {

  wait: wait,

  unlock: unlock,

  lock: lock

}

用法,加锁多少次就要解锁多少次

lock("mylock")

lock("mylock")

unlock("mylock")

unlock("mylock")

wait("mylock",1000,callback)