编程

使用阿里云函数计算C#.NET Core版制作一个腾讯Bugly日报转发到钉钉机器人的接口

探索

使用阿里云函数计算C#.NET Core版制作一个腾讯Bugly日报转发到钉钉机器人的接口

目录 * 0. 准备工作 * 1. 创建项目,添加依赖 * 2. 编写业务代码 * 3. 编译与部署 一个简单的小POST转发还要编译一套程序然后部署并且运维?太复杂了!能不能只写一个文件就实现这样的功能呢?只要有Serverless的函数计算功能即可。这里使用阿里云函数计算功能(小量免费哦),其他平台同理。 0. 准备工作 你需要有C#编程基础才能愉快的阅读本文章。如果你只使用过WinForm、WPF、ASP.NET等传统.NET技术,请不要错过.NET Core这个全新的跨平台产品~(疯狂安利) 请准备好.NET Core SDK以及一个文本编辑器,推荐使用VS Code。 请阅读腾讯Bugly和钉钉机器人相关文档。 推荐也阅读一下阿里云官方文档函数计算 > 构建函数 > 编程语言 > C# > C# 函数入口,本文根据需求使用的是HTTP 触发器,但是这文档写的确实很乱,

By SkiTiSu

探索

C#只用一行将方法封装为基于Task的完全异步方法

好吧,我不愤青了,我最近只是觉得碰到的问题全都能谷歌到,我再写一遍好像没什么意义……但是中文的有关新技术的资料还是很少吧。 这次写一个异步开发中碰到的问题,一个原有的方法我想快速转变为异步的,但是里面调用的很多方法还没有实现async,或者不支持async的部分仍然需要耗费较长时间导致UI卡顿,一个快速的方法就是使用.NET 4.5新增的Task.Run()将方法封装为纯异步执行的,上代码(来自我的BiliRanking项目): public static Task<BiliInterfaceInfo> GetInfoTaskAsync(string s) => Task.Run(() =>; GetInfo(s)); GetInfo就是我原本的方法,其中BiliInterfaceInfo是GetInfo返回的值,Task<TResult>是专门给异步返回准备的一个类。如果读者是初次接触lambda表达式,可能会对里面的“=>”感到束手无措,没关系,我们不使用lambda表达式写一下这行代码: public static Task<BiliInterfaceIn

By SkiTiSu

探索

Mission Planner编译指南(适用于>1.3.36的源码)

1. 下载原料 下载Visual Studio并安装:http://www.visualstudio.com/downloads/download-visual-studio-vs 如果会使用Git,推荐安装Github Desktop:https://desktop.github.com/ 下载Python并安装(推荐安装3.5版本):https://www.python.org/downloads/   2. 克隆代码 本项目的Github项目主页是:https://github.com/ArduPilot/MissionPlanner · 只希望编译一次 点击Download ZIP,并解压代码在没有中文的目录中 · 使用常规方法  点击克隆图标,选择Github Desktop(推荐)或Visual Studio   3. 确认环境 · Python

By SkiTiSu

探索

C#实现在控制台的密码输入(含星号和退格功能)

按照我的一贯风格,废话不说,直接上代码 /* 本段代码使用“天书我勒个去我还是相信中国开源的V0.9”协议发布 * 如果您需在发布(包含商业与非商业)的软件中使用本代码,只需告知作者四季天书并在软件的关于里加上天书的名字即可 * 因为我还是相信中国开源的。。。 */ static string EnterPasswd() { while (true) { Console.Write("请输入密码>"); string key = string.Empty; while (true) { ConsoleKeyInfo keyinfo = Console.ReadKey(true); if (keyinfo.Key == ConsoleKey.Enter) //按下回车,结束 break; else if (keyinfo.Key == ConsoleKey.Backspace &&

By SkiTiSu

四季天书工作室

TS-OKD TS-OneKeyDNS 天书一键DNS V1.0beta

天书第一个漂亮的软件做好了T T还有3D翻转哦T T 主要功能当然是一键修改DNS以及还原,以后还会增加更多功能的 怎!么!可!能!这!么!简!单! (咦?那个默认填上去的DNS,难道可以...) 最新更新:那个默认填上去的DNS的神奇功效已经。。。已经。。。之所以更改后还能用是因为TS-OKD自动帮你加入了114DNS作为备选T T ===下载地址========================= 360云盘:http://yunpan.cn/QahuBhnUDBVZ3 (提取码:da92) 百度云网盘:http://pan.baidu.com/s/1kTE9wtp 我反正点不出bug了,如果发现有bug欢迎在本篇博文下评论给我~ ===开发日志========================= 20130829 V1.0beta:发布第一版 软件的内核我在TSLib里已经完成了(所以解压出来如果要移动的话别忘了带上TSLib.dll~),TSAdapter类的雏形就是下面这个V0.1版本,所以这次就是倒腾这个UI。

By SkiTiSu

探索

C#获取串口的串口号/名称/描述/制造商

越来越多的人用C#做上位机,但是大多数人上位机串口选择中只能选到串口号,无法看到描述(也就是设备管理器中看到的名称),下面跟着天书一起让自己的上位机高大上起来! 相信很多人在搜索资料的时候看到了调用setupapi.dll来获取,.NET很多功能就是封装的API函数,再在程序里整个API函数岂不成C艹了,让我们用点高端的WMI! 首先在头部加上引用(如果提示没有的话,先在解决方案资源管理器→项目名→引用中勾选) using System.Management; 习惯性的做个类: /// <summary> /// 天书串口类型 /// </summary> public class TSSerialPort { /// <summary> /// 串口号 /// </summary> public string Name { get; protected set; } /// <summary> /// 描述 /// </summary>

By SkiTiSu

探索

Atmel Studio 6.2 下载与切换到中文

【软件下载】 Ateml Studio 6.2 with .NET 下载地址:http://127.0.0.1:18080/legacy-assets/7be4826f82a627aee27d51f838a2cc88cce256dc7634cc1f273237ef9674b6f2-AStudio6_2_1153net.exe 【切换语言】 由于Atmel Studio 6.2基于Visual Studio 2010 Shell,其原VS部分的语言由VS包提供,如果你已经安装了Visual Studio 2010 中文版,你可以在Tools>Options>Enviroment>International Settings>Language中找到中文(简体)。 如果你使用的是VS其他版本或未安装VS,你需要下载Visual Studio 2010 Shell中文版,

By SkiTiSu

探索

解决C#获取的HTTP Headers的中文为乱码(获取下载地址的真实文件名)

由于MySQL数据库默认使用iso-8859-1编码方式,所以获取的Headers通常是使用iso-8859-1进行编码的,但由于Linux服务器通常使用UTF-8编码中文,我们只要对获得的string进行两次重编码即可,具体C#代码如下: HttpWebRequest Myrq = (HttpWebRequest)HttpWebRequest.Create(URL); //URL为网址 HttpWebResponse myrp = (HttpWebResponse)Myrq.GetResponse(); WebHeaderCollection whc = myrp.Headers; Encoding e1 = Encoding.GetEncoding("iso-8859-1"); Encoding e2 = Encoding.Default; string s = whc[1]; //这里获取第二个属性来举例 byte[] ss = e1.GetBytes(s)

By SkiTiSu

探索

TSAdapter类 - 通过C#获取/设置网络适配器的名称、状态、IP、DNS、网关、接口等信息

终于完工了!奋战一个星期的晚上的成果。。。以后可能会继续完善吧。话不多说,直接上代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using System.Net.NetworkInformation; using System.Management; namespace TSLib.Net { /// <summary> /// TSLib定义的网络适配器类 /// </summary> public class TSAdapter { private string name; private string description; private string serviceName; private

By SkiTiSu

探索

C#获取所有适配器的名称、描述、状态、接口等

以下功能已全面整合在TSAdapter类 – 通过C#获取/设置名称、状态、IP、DNS、网关、接口等信息,本文不再更新! 废话不多说,先引用需要用到的类 using System.Management; using System.Net.NetworkInformation; using System.Net; 大多数来这儿的人是想找获取接口的方法的吧。。。直接贴在这里了: NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces(); foreach (NetworkInterface adapter in adapters) { //。。。 IPInterfaceProperties adapterProperties = adapter.GetIPProperties(); IPv4InterfaceProperties p = adapterProperties.GetIPv4Properties(); if (p != null)

By SkiTiSu

探索

C#通过WMI修改IP、DNS等设置

以下功能已全面整合在TSAdapter类 – 通过C#获取/设置名称、状态、IP、DNS、网关、接口等信息 这篇文章整理了网上的资料,使用C#通过WMI修改IP、DNS等设置,希望能帮助到大家。 在项目引用中添加System.Management,然后在代码开头加上 using System.Management; 主程序段如下: /// /// 设置所有适配器的属性 /// 如设置失败不会产生错误,请在设置后获取其当前值以检查是否成功 /// ///IP地址 ///子网掩码 ///网关地址 ///DNS服务器地址,如[0]为"back"即恢复为自动获取 public static void SetNetwork(string[] ip, string[] submask, string[] getway, string[] dns) { ManagementClass wmi = new

By SkiTiSu

探索

C#中通过事件实现窗口停靠边缘自动隐藏的功能

这次是在TS-ABU中加入的功能,网上其实有很多方法实现,但是都比较难懂,索性自己研究了一套方法,与各位分享。(目前还缺少移动到边缘再激活的功能) 网上有获取鼠标位置再判断的,也可以,但是我一开始没想到这种方法。。。我的总体思路是给所有控件都绑定事件,Let's start! 首先在窗口所在类的头部添加变量申明: bool movef;//移动方向,true时为左移,反之 Point needp1, needp2;//分别对应露出来那一点的坐标与鼠标放上去后移动到的坐标 int width = SystemInformation.WorkingArea.Width;//分辨率的宽 int height = SystemInformation.WorkingArea.Height;//分辨率的长 接着在右侧找到窗口的属性,点击上面的闪电图标,在Load、MouseEnter、MouseLeave中分别添加事件,这里以我的窗口名称FormMain为例,分别添加FormMain_Load、FormMain_MouseEnter和FormMain_MouseLe

By SkiTiSu
苏ICP备19030749号-1