highlighter

C#更改操作系统时间

南楼画角 提交于 2020-04-11 19:20:49
using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { SystemTime MySystemTime = new SystemTime(); SetSystemDateTime.GetLocalTime(MySystemTime); MySystemTime.wYear = 2017; MySystemTime.wMonth = 2; MySystemTime.wDay = 3; MySystemTime.wHour = 12; MySystemTime.wMinute = 45; MySystemTime.wSecond = 31; MySystemTime.wMiliseconds = 678; SetSystemDateTime.SetLocalTime(MySystemTime); } } [StructLayout(LayoutKind.Sequential)] public struct SystemTime {

html2canvas

折月煮酒 提交于 2020-04-11 17:17:48
现在有很多在微信里流行的h5活动页。这些小h5大部分都是简单的交互然后得出一个abcd早就拟定好的结果,根据你的选项分几种情况,最终得到其中一个作为你测试的答案。比如这个就是最后那张结果图: 当时自己做的时候,网上搜不到一个系统完整的做法讲解。这里整理一下。 ### 实现微信h5保存网页为图片 虽然基本上活动都是有事先固定好的答案,但是每个用户生成的结果还是不一样的。尤其有的需求还有用户的昵称之类。 所以,就要动态生成web网页为图片了,然后用户长按这张图片,调取微信的长按存图功能就行了。 这里只记录 最后生成截图并保存 的做法 : 一般做法是,用户选择完毕生成结果后,要有一个事件比如click提前触发,让html2canvas赶紧画图: 具体html2canvas的使用和配置,以及bug填坑之类请看这一篇:[ JS - 基于html2canvas实现 网页截图(+下载截图) 功能 ](https://www.cnblogs.com/padding1015/p/8947062.html) 这里我直接调用基于html2canvas封装好的html2img方法: 1. html2canvas生成截图 ```js html2img({ targetEleId: oCanvas, imgType: 'png', titleStr: '描述语' },false) ```

[apue] apue_db:一个可以充当"注册表"的 key-value 数据库

こ雲淡風輕ζ 提交于 2020-04-11 17:11:08
apue 最后两章都是通过一个完整的实例来解释一些 linux 功能,第20章就是通过一个数据库实例来解释文件锁的使用, 说实话,当时没兴趣,因为满页都是源码和解析,有点看不下去。但是再拾起来硬着头皮看的时候,发现这哪里是个小 demo,明明是个五脏俱全的 key-value 数据库嘛, 而且这个数据库,提供多进程并发读写的安全性保证(通过文件锁)、提供已删除节点循环再利用的能力、提供根据用户需求调节内部 hash 表参数的能力…… 特别是它的索引与数据文件格式,采用字符串存储各种偏移量与数字,非常便于直接打开文件去做一些 “观察”,然后也能很方便地基于 SDK 构建查找、增删改数据库的工具…… 这简直就是一个 linux 上的 “注册表” 工具! 先来看看这个数据库提供的 SDK 接口: apue_db.h 1 #ifndef __APUE_DB_H__ 2 #define __APUE_DB_H__ 3 4 typedef void * DBHANDLE; 5 6 // db_store flags 7 #define DB_INSERT 1 8 #define DB_REPLACE 2 9 #define DB_STORE 3 10 11 #define IDXLEN_MIN 6 12 #define IDXLEN_MAX 1024 // single index can

玩转控件:对Dev的GridControl控件扩展

谁说我不能喝 提交于 2020-04-11 17:05:45
缘由   一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了《 玩转控件:对Dev中GridControl控件的封装和扩展 》文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求。 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子。当然客户需求存在即合理。毕竟There are a thousand Hamlets in a thousand people's eyes. 何以解忧唯有撸码   有了需求,眼球一转,就撸起袖子加油干吧。初步想法直接在《 玩转控件:对Dev中GridControl控件的封装和扩展 》的基础上,右键菜单网格设置状态里面处理吧。把处理后的结果通过配置文件方式(ini,xml...)存储起来,网格加载的时候,通过校验是否存在配置文件来加载不同客户的配置信息即可。 有了想法,就行动起来吧!气运丹田,双手摊开,扎下马步,使出"拖控件大法"一气呵成!   大致需求与实现如上图,本来还有列中文列名的,但是客户说不要~~(如有更多不同需求或更好的想法,请自行添加或者公众号私信作者一起探讨) Talk is Cheap,Show me the Code   跟用户反复沟通

玩转控件:对Dev的GridControl控件扩展

亡梦爱人 提交于 2020-04-11 17:04:50
缘由   一切实现来源于需求,目的在于不盲目造轮子,有小伙伴儿在看了《 玩转控件:对Dev中GridControl控件的封装和扩展 》文章后,私信作者说,因公司业务逻辑比较复杂,展示字段比较多,尤其网格列表控件展示数据太多时候,很多关键列信息不同用户要求展示效果不同,问我有没有好点的处理方式来满足不同客户的需求。 看到这里作者还是比较暗自窃喜的,毕竟自己造的轮子不止作者一个人在用,而且还能收获客户的实际需求来完善轮子。当然客户需求存在即合理。毕竟There are a thousand Hamlets in a thousand people's eyes. 何以解忧唯有撸码   有了需求,眼球一转,就撸起袖子加油干吧。初步想法直接在《 玩转控件:对Dev中GridControl控件的封装和扩展 》的基础上,右键菜单网格设置状态里面处理吧。把处理后的结果通过配置文件方式(ini,xml...)存储起来,网格加载的时候,通过校验是否存在配置文件来加载不同客户的配置信息即可。 有了想法,就行动起来吧!气运丹田,双手摊开,扎下马步,使出"拖控件大法"一气呵成!   大致需求与实现如上图,本来还有列中文列名的,但是客户说不要~~(如有更多不同需求或更好的想法,请自行添加或者公众号私信作者一起探讨) Talk is Cheap,Show me the Code   跟用户反复沟通

vue获取input焦点,弹框后自动获取input焦点

*爱你&永不变心* 提交于 2020-04-11 14:56:35
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <!-- 引入组件库 --> <script src="https://unpkg.com/element-ui/lib/index.js"></script> </head> <body> <div id="app"> <input type="text" id="one" value="11111"> <h2></h2> <input type="text" id="two" value="22222"> <h2></h2> <input type="text" id="three" value="33333" v-focus> <h2

[apue] apue_db:一个可以充当"注册表"的 key-value 数据库

假装没事ソ 提交于 2020-04-11 13:42:02
apue 最后两章都是通过一个完整的实例来解释一些 linux 功能,第20章就是通过一个数据库实例来解释文件锁的使用, 说实话,当时没兴趣,因为满页都是源码和解析,有点看不下去。但是再拾起来硬着头皮看的时候,发现这哪里是个小 demo,明明是个五脏俱全的 key-value 数据库嘛, 而且这个数据库,提供多进程并发读写的安全性保证(通过文件锁)、提供已删除节点循环再利用的能力、提供根据用户需求调节内部 hash 表参数的能力…… 特别是它的索引与数据文件格式,采用字符串存储各种偏移量与数字,非常便于直接打开文件去做一些 “观察”,然后也能很方便地基于 SDK 构建查找、增删改数据库的工具…… 这简直就是一个 linux 上的 “注册表” 工具! 先来看看这个数据库提供的 SDK 接口: apue_db.h 1 #ifndef __APUE_DB_H__ 2 #define __APUE_DB_H__ 3 4 typedef void * DBHANDLE; 5 6 // db_store flags 7 #define DB_INSERT 1 8 #define DB_REPLACE 2 9 #define DB_STORE 3 10 11 #define IDXLEN_MIN 6 12 #define IDXLEN_MAX 1024 // single index can

fire map

别说谁变了你拦得住时间么 提交于 2020-04-11 11:45:17
import collections class Solution(object): def minDist(self, arr, start_row, start_rol, end_row, end_col): """ :type M: List[List[int]] :rtype: int """ ans = self.bfs(arr, start_row, start_rol, end_row, end_col) row, col = len(arr), len(arr[0]) for i in range(row): for j in range(col): if arr[i][j] == 1: arr[i][j] = 0 dist = self.bfs(arr, start_row, start_rol, end_row, end_col) if ans > 0 and dist > 0: ans = min(dist, ans) else: ans = max(dist, ans) arr[i][j] = 1 return ans def bfs(self, arr, start_row, start_col, end_row, end_col): visted = set((start_row, start_col)) R, C = len(arr), len(arr

java实现排列组合(通俗易懂)

∥☆過路亽.° 提交于 2020-04-11 10:49:50
个人感觉这篇文章(原文地址见文章尾)写的排列组合问题,非常的好,而且是一步一步引出排列组合问题,我也是看了这篇文章,一步一步按照这个思路来,最后会了自己的一套排列组合 也因此在算法竞赛中,两次用到了,成功解决了问题. 第一个问题:   首先,先让我们来看第一个问题, 有1,2,3,4这4个数字.可以重复的在里面选4次,问能得到多少种结果.easy   1  1  1  1   1  1  1  2   1  1  1  3     1  1  1  4   1  1  2  1   1  1  2  2   .......   4  4  4  3   4  4  4  4   代码实现其实也很简单,大家可以看下代码,理解一下,再自己敲一下,应该可以很快敲出来 import java.util.Stack; public class Main { public static Stack<Integer> stack = new Stack<Integer>(); public static void main(String[] args) { int shu[] = {1,2,3,4}; f(shu,4,0); } /** * * @param shu 待选择的数组 * @param targ 要选择多少个次 * @param cur 当前选择的是第几次 */ private

MySQL的语法解析 bug 一例

醉酒当歌 提交于 2020-04-11 09:35:18
SELECT * FROM USER WHERE orgid IN (SELECT orgid FROM org WHERE `name` LIKE '%xxx%' ) user 表有 orgid 字段, org 表没有 orgid 字段,但是上面的查询不会报错!!! 而下面的查询会报错: 原因是,user 表中有个 orgid 字段,如果我们把 第一个查询中的 orgid 改成一个 user 表没有的字段,他就会报错了: 所以 MySQL 的语法解析器存在bug。 绕过这个问题的办法: 子查询里面需要带上 表名前置,指定是查询那个表的字段。 正确的SQL: 来源: oschina 链接: https://my.oschina.net/u/4414407/blog/3228858