一个设置绕过TPM成功安装WIN11正式版系统

一个设置让你绕过TPM,成功安装WIN11的方法!安装WIN11需要检测电脑是否有TPM2.0芯片?没有TPM能不能安装WIN11呢?今天我们来聊聊没有TPM2.0,如何成功安装WIN11?首先,下载好WIN11正式版的ISO映像文件,点击setup开始安装,跳过输入产品密钥,选择专业版,弹出此电脑无法运行WIN11,按键盘上的Shift+F10打开命令提示符,运行注册表regedit,依次打开HKEY_LOCAL_MACHINE,SYSTEM Setup,对着Setup项右键,新建 LabConfig项,在此项下新建32位BypassTPMCheck的DWORD值,并设置为1,再新建32位的DWORD值BypassSecureBootCheck,并设置为1,关闭注册表,关闭命令行,点击左上角返回上一步,再点击下一步,成功跳过TPM检测,选择安装类型,新装需进行分区及格式化,升级就直接选择安装的系统盘符,下一步后就开始安装,重启两次后来到海内存知己界面,选择国家,选择输入法和布局,漫长的更新检查后,输入电脑名称,多次转圈后再一次自动重启,输入帐户和密码,设置找回帐户的三个安全问题及答案,来到隐私设置,显示准备界面,完成后进入Win11桌面。Win11的激活仍然可以使用,WIN10的激活方法!数字激活仍然可以永久激活了WIN11,至于跳过TPM,你也可以在安装前,直接打开ISO映像文件,在source目录下,改名或删除或修改appraiserres.dll文件,如果你的主板支持TPM2.0那就在BIOS中打开设置,都可以成功安装Win11系统! 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:杰叔说电脑

一句代码,揭开CPU执行原理

C语言写入一行代码 sum = a + b 计算机是怎样执行你写的这行代码的?C语言的一行代码int sum = a + b;经过编译器编译后你从IDA反编译后看到就是这个样子8B 45 EC mov eax, [ebp+a]03 45 E0 add eax, [ebp+b]89 45 F8 mov [ebp+sum], eax汇编代码对应的机器指令分别为8B 45 EC03 45 E089 45 F8十六进制只是为了书写方便计算机真正能看懂的是二进制的比特流10001011 01000101 11101100 00000011 01000101 11100000 10001001 01000101 11111000 计算机怎么执行这些比特流的呢?我们先了解一下CPU的指令格式x86架构CPU指令格式象这样每一条指令主要有六个部份,操作码是必须的,标识这条指令是什么功能CPU是执行指令的核心部件,在CPU中有一个指令寄存器IP,(32位叫eip 64位叫rip),开始执行上面的二进制比特流时,CPU指令寄存器指向第一条指令,开始读取第一个字节:10001011,也就是十六进制的8B,然后开始指令译码这是x86架构的cpu指令操作码表:看到8b是 mov指令往eax塞数据,再往后看十六进制 45的译码就是根据ebp寄存器的值+8位偏移来读取数据,再往后读取一个字节,就是偏移值 EC。第一条指令译出来就是:将ebp+EC位置处的4个字节的数据取出来,放到eax寄存器中。这就是这一条指令要干的事情,同时CPU得出,这一条指令长度是3个字节,下一条指令的起始地址是在3个字节之后,指令寄存器EIP就向后移动,指向下一条指令的地址:$ + 3执行完一条以后,又来到指令寄存器EIP指向的地方,随后再次指令译码、执行,不断重复这个过程,依次执行每一条指令。这其实就是CPU工作最基本的原理。 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:电脑百科知识

解决C盘空间不足的万能方法

简介C盘空间只有50G的大小,为什么能保存下900多G的游戏?今天我们来说说解决C盘空间不足的万能方法!C盘空间不足的解决方法通常有以下几种,第一,安装软件时选择其他盘,第二,清理系统的垃圾或冗余文件第三,扩展C盘分区,增加C盘容量。有没有一种方法让C盘空间永远存不满呢?回到我们开头的话题,50G的C盘,可以保存900多G的游戏。解释这个问题就要说到NTFS文件格式的符号链接,我们只要把存放在C盘的数据文件或文件夹移到其他盘,再创建文件或文件夹的符号链接到C盘,就能让C盘永远占不满!怎么创建符号链接呢,以C盘的photoshop目录为例,把photoshop剪切放在D盘,然后打开命令提示符,输入mklink /d “C:\Program Files\Adobe\Photoshop” “D:\Program Files\Adobe\Photoshop” 回车,其他所有设置不用更改,就象photoshop目录仍然在C盘一样!这就是网吧的电脑玩steam的游戏,C盘可以存放无限游戏的原因! mklink命令详解 mklink 命令区别:/d 给目录创建符号链接,简称符号链接、软链接;/h 创建硬链接,简称硬链接;/j 给目录创建联接点,简称软链接。当没有上面3个命令符时,创建是文件软链接!文件类型:.symlink注意:路径,建议使用绝对路径,必须使用英文双引号将路径括起来;空格,命令之间必须有空格 符号链接、目录链接、硬链接与快捷方式 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp 欢迎关注百脑问抖音:表情包零动画 抖音号:bqbao 欢迎关注百脑问小红书:电脑百科知识

如何从微软官方高速下载Win11正式版ISO?

如何才能从微软官方快速下载到win11正式版?从百度搜索win11官方正式版,搜索结果均是2021年10月以前的记录,中国Win11正式版推送时间10月6日 正式版版本号22000.194,显然,从百度搜索出来的结果均不能下载,下载后都是原来的win11测试版! win11微软官方正式版下载方法 打开网址 https://www.microsoft.com/zh-cn/software-download/windows11 界面如下:其中有三个选项 Windows 11 安装助手,如果你是在您当前所使用设备上安装 Windows 11,就选择此项下载,下载后是一个Windows11InstallationAssistant.exe可执行文件,运行后按照提示安装! 创建 Windows 11 安装媒体,如果要在新电脑或旧电脑上重新安装 Windows 11 或执行全新安装,请使用此选项下载媒体创建工具,以制作可引导的 USB 或 DVD。下载后是一个MediaCreationToolW11.exe的可执行文件,可以创建安装U盘或安装光盘! 下载 Windows 11 磁盘映像 (ISO),此项先选择win11或win11家庭版,点击下载后,再选择语言,确认就可以直接下载win11的ISO文件!此下载链接24小时有效,需要在24小时内下载完成! 加快下载win11官方正式版速度的方法!如果你是选择的第二项制作安装U盘,可能速度稍快!但从微软官方的下载链接下载ISO,速度很慢,我们可以离线下载Win11官方正式版ISO。百度网盘和微云的离线下载均不能下载Win11官方正式版ISO,均会显示失败!我们可以从offcloud离线下载!首先打开 https://offcloud.com/, 然后输入一个可用的电子邮件,点击加入 如果你想后续使用offcloud,可以在offcloud发来的电子邮件中设置密码,以后就可以使用邮件和密码登录offcloud!进入offcloud界面后,如下面图示,首先在1处选择代理为香港,然后在2处把微软官方Win11正式版的下载地址粘贴,再按3处的下载按钮,在offcloud弹出来的链接进行下载,速度可能达到几M或十几M的速度! 这样就可以高速的下载Win11官方正式版了!还能避免你下载到满是插件、广告、锁主页等的微软十月推出的Win11正式版系统! 欢迎关注百脑问抖音:杰叔说电脑 抖音号:jscomp

利用Nvidia的API设置数字振动数值源码_显示器亮度、对比度等设置源码

开始是一位朋友有这个需求,他给了我一个英伟达官网的开发包,名字是:R410-developer.zip(诸位可以自己到英伟达官网下载),里面提供了一些示例,包含自定义分辨率、显示器颜色设置等,但是显示器色彩设置的例子一致没有跑通,而且我也没有找到哪个参数是可以设置数字振动值的,所以憋屈了很多天。但直到看到了一个 AHK 版本实现的设置工具通过代码发现,其实实现方法是通过 nvapi.dll 动态库导出的一个查询函数地址的方法,将指定接口导出来执行具体业务。在加上在 github 上搜索的各类示例,最终实现了这个功能,下面详细介绍实现步骤。 需要的方法和结构设置数字振动数值需要先通过 nvapi.dll 导出的 NvAPI_QueryInterface_t 方法获取 NvAPI_Initialize_t 方法来初始化 NvAPI。然后依次获取显示器句柄、获取当前显示器数字振动值、设置数字振动值的函数地址,他们的声明分别对应如下:12345678910// 查询在 nvapi.dll 中函数的地址方法函数声明typedef int*(*NvAPI_QueryInterface_t)(unsigned int offset);// 初始化 NvAPI 的方法typedef int(*NvAPI_Initialize_t)();// 根据 ID 枚举显示器句柄的方法typedef int(*NvAPI_EnumNvidiaDisplayHandle_t)(int thisEnum, int* pNvDispHandle);// 获取数字振动当前值typedef int(*NvAPI_GetDVCInfoEx_t)(int hNvDisplay, int outputId, NV_DISPLAY_DVC_INFO_EX* pDVCInfo);// 设置数字振动值typedef int(*NvAPI_SetDVCLevelEx_t)(int hNvDisplay, int outputId, NV_DISPLAY_DVC_INFO_EX* pDVCInfo); 其中设置和获取数字振动值需要一个结构体 NV_DISPLAY_DVC_INFO_EX,其声明如下:12345678typedef struct{ unsigned int version; // 结构体版本 int currentLevel; // 当前级别 int minLevel; // 最低级别 int maxLevel; // 最高级别 int defaultLevel; // 默认级别} NV_DISPLAY_DVC_INFO_EX, *PNV_DISPLAY_DVC_INFO_EX; 获取各个接口地址我们首先 Load nvapi.dll 然后得到 nvapi_QueryInterface 方法的地址,然后通过 nvapi_QueryInterface 方法查询另外一些接口的地址。如下所示:123456789101112131415161718192021222324bool NvController::Initialize(){ hModule = LoadLibraryW(TEXT("nvapi.dll")); if (hModule == nullptr) { std::cerr << "Failed to load nvapi.dll." << std::endl; return false; } NvAPI_QueryInterface = (NvAPI_QueryInterface_t)GetProcAddress(hModule, "nvapi_QueryInterface"); NvAPI_Initialize = (NvAPI_Initialize_t)(*NvAPI_QueryInterface)(_NvAPI_Initialize); NvAPI_EnumNvidiaDisplayHandle = (NvAPI_EnumNvidiaDisplayHandle_t)(*NvAPI_QueryInterface)(_NvAPI_EnumNvidiaDisplayHandle); NvAPI_GetDVCInfoEx = (NvAPI_GetDVCInfoEx_t)(*NvAPI_QueryInterface)(_NvAPI_GetDVCInfoEx); NvAPI_SetDVCLevelEx = (NvAPI_SetDVCLevelEx_t)(*NvAPI_QueryInterface)(_NvAPI_SetDVCLevelEx); _NvAPI_Status status = (_NvAPI_Status)(*NvAPI_Initialize)(); if (status != NVAPI_OK) { std::cerr << "NvAPI initialization failed." << std::endl; return false; } return true;} 其中以下划线开头的枚举名字是每个函数在 dll 中的对应地址,这些是写死的,如下所示:12345678enum NvAPIs{ _NvAPI_Initialize = 0x150E828, _NvAPI_EnumNvidiaDisplayHandle = 0x9ABDD40D, _NvAPI_GetAssociatedNvidiaDisplayName = 0x22A78B05, _NvAPI_GetDVCInfoEx = 0x0E45002D, _NvAPI_SetDVCLevelEx = 0x4A82C2B1}; 你可能会问,你怎么知道这些函数地址的?其实我也是搜索到的,也看了以前 NvAPI 老版本提供的代码,可以搜索到相关痕迹。点击查看此文件里面有完整的所有函数地址。 获取和设置数字振动得到了各个函数的地址,我们就可以设置数字振动值了,代码如下:12345678910111213141516171819202122232425bool NvController::SetDVCLevelEx(int nDisp, int level){ int NvDispHandle; if (EnumNvidiaDisplayHandle(nDisp, &NvDispHandle) != 0) { NV_DISPLAY_DVC_INFO_EX oldInfo = GetDvcInfoEx(nDisp); NV_DISPLAY_DVC_INFO_EX info; info.version = oldInfo.version; info.currentLevel = level; info.minLevel = oldInfo.minLevel; info.maxLevel = oldInfo.maxLevel; info.defaultLevel = oldInfo.defaultLevel; _NvAPI_Status status = (_NvAPI_Status)(*NvAPI_SetDVCLevelEx)(NvDispHandle, 0, &info); if (status != NVAPI_OK) { return false; } return true; } return false;} 我们首先获得用户传入的显示器编号所对应的句柄,然后根据这个句柄获取当前数字振动的数值,然后修改其 currentLevel 成员数值来设置数字振动效果。这样处理后就可以使用了。完整代码参考地址:https://github.com/nmgwddj/nvapi-example 转载自https://cloud.tencent.com/developer/article/13715644. 屏幕亮度,对比度获取和调节 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960bool set_screen_brightness(long val){ HWND hDesktopWnd = GetDesktopWindow(); HMONITOR hMonitor = MonitorFromWindow(hDesktopWnd, MONITOR_DEFAULTTOPRIMARY); DWORD cPhysicalMonitors = 0; if (!GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor, &cPhysicalMonitors)) return false; LPPHYSICAL_MONITOR pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(cPhysicalMonitors* sizeof(PHYSICAL_MONITOR)); if (pPhysicalMonitors) { GetPhysicalMonitorsFromHMONITOR(hMonitor, cPhysicalMonitors, pPhysicalMonitors); //设置屏幕亮度 SetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor, val); //设置屏幕对比度 //SetMonitorContrast(pPhysicalMonitors->hPhysicalMonitor, val); // Close the monitor handles. DestroyPhysicalMonitors(cPhysicalMonitors, pPhysicalMonitors); // Free the array. free(pPhysicalMonitors); } return true;}long get_screen_brightness(){ long lret = -1; HWND hDesktopWnd = GetDesktopWindow(); HMONITOR hMonitor = MonitorFromWindow(hDesktopWnd, MONITOR_DEFAULTTOPRIMARY); DWORD dwMin = 0, dwMax = 0, dwCur = 0; DWORD cPhysicalMonitors = 0; if (!GetNumberOfPhysicalMonitorsFromHMONITOR(hMonitor, &cPhysicalMonitors)) return false; LPPHYSICAL_MONITOR pPhysicalMonitors = (LPPHYSICAL_MONITOR)malloc(cPhysicalMonitors* sizeof(PHYSICAL_MONITOR)); if (pPhysicalMonitors) { GetPhysicalMonitorsFromHMONITOR(hMonitor, cPhysicalMonitors, pPhysicalMonitors); //获取屏幕对比度 //if (GetMonitorContrast(pPhysicalMonitors->hPhysicalMonitor, &dwMin, &dwCur, &dwMax)) //获取屏幕亮度 if (GetMonitorBrightness(pPhysicalMonitors->hPhysicalMonitor, &dwMin, &dwCur, &dwMax)) { lret = dwCur; } //SetMonitorContrast(pPhysicalMonitors->hPhysicalMonitor, val); // Close the monitor handles. DestroyPhysicalMonitors(cPhysicalMonitors, pPhysicalMonitors); // Free the array. free(pPhysicalMonitors); } return lret;} 屏幕色彩灰度调节(Gamma调节)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758// #pragma pack(push, 4)// typedef struct _tagD3dGammaramp_t// {// WORD red[256];// WORD green[256];// WORD blue[256];// }D3DGAMMARAMP, *LPD3DGAMMARAMP;// #pragma pack(pop)class CScreenDC{public: CScreenDC(){ m_hdc = GetDC(NULL); } ~CScreenDC(){ if (m_hdc) ReleaseDC(NULL, m_hdc); m_hdc = NULL; } operator HDC(){ return m_hdc; }private: HDC m_hdc;};bool set_screen_gray(long val){ //HDC的对比度 val = min(100, val); val = max(0, val); val = val*128.0 / 100; /* bright >=0 && bright <= 128 */ CScreenDC hScreenDc; D3DGAMMARAMP Ramp = { 0 }; BOOL bret = GetDeviceGammaRamp(hScreenDc, &Ramp); if (!bret) return false; for (int iIndex = 0; iIndex < 256; iIndex++) { //bright 为什么需要+128,因为当 bring < 128 的时候效果同bright = 0 Ramp.red[iIndex] = min(65535, iIndex * (val + 128)); Ramp.green[iIndex] = min(65535, iIndex * (val + 128)); Ramp.blue[iIndex] = min(65535, iIndex * (val + 128)); } bret = SetDeviceGammaRamp(hScreenDc, &Ramp); return bret ? true:false;}long get_screen_gray(){ CScreenDC hScreenDc; D3DGAMMARAMP Ramp = { 0 }; BOOL bret = GetDeviceGammaRamp(hScreenDc, &Ramp); if (!bret) return -1; long bright = Ramp.red[1] - 128; bright = bright * 100.0 / 128; bright = min(100, bright); bright = max(0, bright); return bright;} 鼠标移动速度调节123456789101112131415161718bool set_mousemove_speed(long val){ //其接收范围在1(最慢)和20(最快)之间的值。值为10是 val = min(20, val); val = max(1, val); BOOL bret = SystemParametersInfo(SPI_SETMOUSESPEED, 0, (LPVOID)val, SPIF_UPDATEINIFILE || SPIF_SENDCHANGE || SPIF_SENDWININICHANGE); if (!bret) return false; return true;}long get_mousemove_speed(){ int nSpeed = 0; BOOL bret = SystemParametersInfo(SPI_GETMOUSESPEED, 0, &nSpeed, 0); if (!bret) return -1; return nSpeed;} 鼠标双击速度调节1234567891011121314151617181920//方法1:SystemParametersInfo(SPI_SETDOUBLECLICKTIME....bool set_mousedbclick_speed(long val){ //最快200ms 最慢 900ms 间隔70ms //SPI_SETDOUBLECLICKTIME val = 550 - (val - 10) * 35; val = min(900, val); val = max(200, val); BOOL bret = SetDoubleClickTime(val); if (!bret) return false; return true;}UINT get_mousedbclick_speed(){ UINT ival = GetDoubleClickTime(); ival = (ival - 550) / 35 + 10; return ival;} 转自 https://blog.csdn.net/CAir2/article/details/103897288 华夏网盟的成品下载 链接:https://share.weiyun.com/GJUzRJLE 密码:6jaisr

实现QQ8.0和QQ9.0登录界面动态背景效果

QQ8.0和QQ9.0登录界面的头部动态背景非常有个性,如何实现的呢? QQ8.0的登录界面效果,使用的JS和html5实现!就是QQ登录界面的这张图片最终的效果如下:123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229<!DOCTYPE html><head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>html5背景</title> <style type="text/css"> *{margin:0;padding:0;list-style-type:none;} a,img{border:0;} </style> <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script></head><body><div id="container" style="width:100%;height:700px;"> <div id="anitOut"></div></div><script type="text/javascript">$(function () { if (!window.ActiveXObject && !!document.createElement("canvas").getContext) { $.getScript("cav.js", function () { var t = { width: 1.5, height: 1.5, depth: 10, segments: 12, slices: 6, xRange: 0.8, yRange: 0.1, zRange: 1, ambient: "#525252", diffuse: "#FFFFFF", speed: 0.0002 }; var G = { count: 2, xyScalar: 1, zOffset: 100, ambient: "#002c4a", diffuse: "#005584", speed: 0.001, gravity: 1200, dampening: 0.95, minLimit: 10, maxLimit: null, minDistance: 20, maxDistance: 400, autopilot: false, draw: false, bounds: CAV.Vector3.create(), step: CAV.Vector3.create(Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1)) }; var m = "canvas"; var E = "svg"; var x = { renderer: m }; var i, n = Date.now(); var L = CAV.Vector3.create(); var k = CAV.Vector3.create(); var z = document.getElementById("container"); var w = document.getElementById("anitOut"); var D, I, h, q, y; var g; var r; function C() { F(); p(); s(); B(); v(); K(z.offsetWidth, z.offsetHeight); o() } function F() { g = new CAV.CanvasRenderer(); H(x.renderer) } function H(N) { if (D) { w.removeChild(D.element) } switch (N) { case m: D = g; break } D.setSize(z.offsetWidth, z.offsetHeight); w.appendChild(D.element) } function p() { I = new CAV.Scene() } function s() { I.remove(h); D.clear(); q = new CAV.Plane(t.width * D.width, t.height * D.height, t.segments, t.slices); y = new CAV.Material(t.ambient, t.diffuse); h = new CAV.Mesh(q, y); I.add(h); var N, O; for (N = q.vertices.length - 1; N >= 0; N--) { O = q.vertices[N]; O.anchor = CAV.Vector3.clone(O.position); O.step = CAV.Vector3.create(Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1), Math.randomInRange(0.2, 1)); O.time = Math.randomInRange(0, Math.PIM2) } } function B() { var O, N; for (O = I.lights.length - 1; O >= 0; O--) { N = I.lights[O]; I.remove(N) } D.clear(); for (O = 0; O < G.count; O++) { N = new CAV.Light(G.ambient, G.diffuse); N.ambientHex = N.ambient.format(); N.diffuseHex = N.diffuse.format(); I.add(N); N.mass = Math.randomInRange(0.5, 1); N.velocity = CAV.Vector3.create(); N.acceleration = CAV.Vector3.create(); N.force = CAV.Vector3.create() } } function K(O, N) { D.setSize(O, N); CAV.Vector3.set(L, D.halfWidth, D.halfHeight); s() } function o() { i = Date.now() - n; u(); M(); requestAnimationFrame(o) } function u() { var Q, P, O, R, T, V, U, S = t.depth / 2; CAV.Vector3.copy(G.bounds, L); CAV.Vector3.multiplyScalar(G.bounds, G.xyScalar); CAV.Vector3.setZ(k, G.zOffset); for (R = I.lights.length - 1; R >= 0; R--) { T = I.lights[R]; CAV.Vector3.setZ(T.position, G.zOffset); var N = Math.clamp(CAV.Vector3.distanceSquared(T.position, k), G.minDistance, G.maxDistance); var W = G.gravity * T.mass / N; CAV.Vector3.subtractVectors(T.force, k, T.position); CAV.Vector3.normalise(T.force); CAV.Vector3.multiplyScalar(T.force, W); CAV.Vector3.set(T.acceleration); CAV.Vector3.add(T.acceleration, T.force); CAV.Vector3.add(T.velocity, T.acceleration); CAV.Vector3.multiplyScalar(T.velocity, G.dampening); CAV.Vector3.limit(T.velocity, G.minLimit, G.maxLimit); CAV.Vector3.add(T.position, T.velocity) } for (V = q.vertices.length - 1; V >= 0; V--) { U = q.vertices[V]; Q = Math.sin(U.time + U.step[0] * i * t.speed); P = Math.cos(U.time + U.step[1] * i * t.speed); O = Math.sin(U.time + U.step[2] * i * t.speed); CAV.Vector3.set(U.position, t.xRange * q.segmentWidth * Q, t.yRange * q.sliceHeight * P, t.zRange * S * O - S); CAV.Vector3.add(U.position, U.anchor) } q.dirty = true } function M() { D.render(I) } function J(O) { var Q, N, S = O; var P = function (T) { for (Q = 0, l = I.lights.length; Q < l; Q++) { N = I.lights[Q]; N.ambient.set(T); N.ambientHex = N.ambient.format() } }; var R = function (T) { for (Q = 0, l = I.lights.length; Q < l; Q++) { N = I.lights[Q]; N.diffuse.set(T); N.diffuseHex = N.diffuse.format() } }; return { set: function () { P(S[0]); R(S[1]) } } } function v() { window.addEventListener("resize", j) } function A(N) { CAV.Vector3.set(k, N.x, D.height - N.y); CAV.Vector3.subtract(k, L) } function j(N) { K(z.offsetWidth, z.offsetHeight); M() } C(); }) } else { alert('调用cav.js失败'); }});</script></body></html> 其中的cav.js下载地址:链接:https://share.weiyun.com/KDUzFY4R 密码:b5gvk3就这个cav.js,以前是腾讯官方的地址,即http://im-img.qq.com/pcqq/js/200/cav.js?_=1428576021379 但现在已经失效了,百度搜索,到处是积分下载!拿着腾讯的东西赚积分!!! QQ9.0的登录界面梦幻的动画,实际为视频!QQ9.5登录界面的动态素材如下您的浏览器不支持HTML5的 video 标签,无法为您播放!

成功,从《全力以赴》开始_励志演讲

梦想不会自动实现的,厌倦了平庸的话,就全力以赴吧!“在任何时候都能牺牲自己,成为自己,成为未来。”这是埃克里·托马斯的励志演讲短片,全程激情昂扬,为忙碌迷茫的人们,注射一剂强心剂如果无法播放,复制下面的链接在浏览器中打开即可https://ks-xpc18.xpccdn.com/4a3ce671-a5ed-4287-a40e-1d88f3cf574a.mp4 var oCss = document.createElement( "link" ); oCss.rel = "stylesheet"; oCss.href = "//cdn.bootcdn.net/ajax/libs/dplayer/1.9.1/DPlayer.min.css"; document.getElementsByTagName('head').item(0).appendChild(oCss); function dynamicLoad() { var _doc=document.getElementsByTagName('head')[0]; var script=document.createElement('script'); script.setAttribute('type','text/javascript'); script.setAttribute('src','//cdn.bootcdn.net/ajax/libs/dplayer/1.9.1/DPlayer.min.js'); _doc.appendChild(script); script.onload=script.onreadystatechange=function(){ if(!this.readyState||this.readyState=='loaded'||this.readyState=='complete'){ var dplayer=new DPlayer({ element: document.getElementById('dplayer'), preload: 'auto', autoplay: false, theme: '#FADFA3', video:{ quality: [{ name: '标准', url: 'https://ks-xpc18.xpccdn.com/4a3ce671-a5ed-4287-a40e-1d88f3cf574a.mp4' }], defaultQuality: 0, pic: '', type: 'auto' } }); } script.onload=script.onreadystatechange=null; } } dynamicLoad(); 视频地址

aardio中electron怎么实现窗体透明背景?

electron中的实现方法在electron中实现窗体背景透明,只需在BrowserWindow时指定参数123456789101112mainWindow = new BrowserWindow({ height: 960, width: 1820, transparent: true, resizable: false, frame: false, webPreferences: { devTools: false, nodeIntegration: true, enablemotemodule: true }}) 然后设置网页的body背景色body{background:#ffffff00}和mainWindow.setIgnoreMouseEvents(true)并且需要开启aero主题! aardio中实现aardio中作者在electron.app的288行中,指定了backgroundColor=’#ffffff’;如果只按照electron中设置窗体背景透明是无效的(这个问题一度让我觉得aardio中的electron无法实现窗体背景透明,后来看了electron.app才发现这个设置),需要同时设置backgroundColor,在electon设置如下参数,就可以在aardio调用electron,而实现窗体背景透明,这样aardio就可以愉快地使用electron!毕竟很多html5的页面只有electron才正常显示!1234567891011121314151617181920212223242526theApp.start( //electron打开的第一个页面,必须指定应用程序目录下的aardio代码文件 indexUrl ="/res/main.html"; browserWindow = { title="electron程序标题"; transparent=true;//设置背景透明 resizable=false;//禁止改变大小 frame=false;//设置无边框窗口 backgroundColor=0;//设置背景颜色透明 icon="/wbc.ico";//指定图标 webPreferences = { //devTools = false;//禁止调试窗口 nodeIntegration=true;//允许使用nodejs enablemotemodule=true; webviewTag=true } } /* 可选用args字段指定Chrome命令行参数, 必须在main.js中创建窗口以前就导入aardio模块才会生效 */ args ={ icon="./wbc.ico" }); 最新版aardio,作者已经改进了,不用设置backgroundColor,直接设置transparent为true就可以设置背景透明了! 同时作者倡导的import electron.runtime;如果运行程序时没有electron,自动下载,但写的程序,使用者根本不想等待下载,所以正常应该在创建electron时事先指定下好的electron,打包后让使用者只下载一次。如把electron下载好后,放在程序目录,创建electron就这样 1var theApp = electron.app(,".\electron\electron.exe"); 当然你可以把electron.exe改成其他名字,如electron.dll,上面也相应的改动就行! 另一个问题,electron必须使用aardio提供的,应该改动过,不然aardio和electron无法进行交互!下面是使用aardio中的electron实现的赛博朋克的网页做为主界面的效果

dcef4允许flash直接运行 cef3 84.4.1 Chromium 84.0.4147.105(直接启用不用点击)

问题出现chrome69版本开始禁用FLASH,cef3 84.4.1 Chromium 84.0.4147.105 如果正常开启FLASH,并且不用点击一点运行插件,就象之前版本一样呢?CEF4Delphi是在Delphi 10.2 Tokyo上开发和测试的,已经在Delphi 7,Delphi XE和Delphi 10中测试过了。有关CEF4Delphi的更多信息,请访问: https://www.briskbard.com/index.php?lang=en&pageid=cef论坛:https://www.briskbard.com/forum DELPHI代码实现 找到flash的dll文件 如在360浏览器中拷出flash文件PepperFlash NativeFlash放在程序目录 添加flash文件地址 123456789101112131415161718procedure CreateGlobalCEFApp;begin GlobalCEFApp := TCefApplication.Create; GlobalCEFApp.LogFile := 'debug.log'; GlobalCEFApp.LogSeverity := LOGSEVERITY_DISABLE;// LOGSEVERITY_INFO; 禁止日志文件 GlobalCEFApp.cache := 'User Data'; //设置缓存目录 GlobalCEFApp.UserDataPath := 'User Data'; GlobalCEFApp.LocalesRequired := 'zh-CN'; //设置语言 GlobalCEFApp.Locale := 'zh-CN'; GlobalCEFApp.UserAgent := 'Mozilla/5.0 (Linux; U; Android 4.0.4; en-gb; GT-I9300 Build/IMM76D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30'; //设置全局agent为手机 GlobalCEFApp.FlashEnabled := true; //允许系统falsh GlobalCEFApp.AddCustomCommandLine('--ppapi-flash-path', 'PepperFlash\pepflashplayer.dll'); //指定flash GlobalCEFApp.AddCustomCommandLine('enable-npapi'); GlobalCEFApp.AddCustomCommandLine('load-plugin', 'NativeFlash\NPSWF32.dll'); GlobalCEFApp.AddCustomCommandLine('ssl-version-min','ssl3'); //指定ssl GlobalCEFApp.AddCustomCommandLine('--allow-running-insecure-content'); //允许https网站调用http的js GlobalCEFApp.EnablePrintPreview := True; //允许打印预览end; chromium启动时添加如下代码 123chromium1.AlwaysAuthorizePlugins := true;chromium1.AllowOutdatedPlugins := true;chromium1.RunAllFlashInAllowMode := true; 附加说明其中flash路径也可以使用dcef4的参数CustomFlashPath, 1GlobalCEFApp.CustomFlashPath := ExtractFilePath(Application.ExeName);

CefSharp.84.4.1_支持Mp4包括X86和64

CefSharp84.4.1支持MP4,包括32位和64位_dcef4 84.4.1 cefsharp 支持mp3,mp4,H.264播放视频 版本:84.4.10 包含x64与x86 cef.redist.x64.84.4.1 cef.redist.x86.84.4.1 链接: 链接: https://pan.baidu.com/s/15lndNobZJ3mER2KVHgMTiA 提取码: ygga 使用方法 首先nuget安装cefsharp 84.4.10 安装完成后使用下载得到的文件中的【cef.redist.x64.84.4.1】、【cef.redist.x86.84.4.1】两个文件夹 替换【packages】原本的文件即可 测试站点http://html5test.com/ 百度网盘那蜗牛速度,下这200多M需要一个小时,现提供一个微云下载地址 链接:https://share.weiyun.com/Ue1izExT 密码:ecf6zi 就这东西,到处要积分下载!!!! 对应cef 84.4.1的dcef3开源地址: https://github.com/salvadordf/CEF4Delphi/tree/84.0.4147.105