Ctrl + Shift+ N:清除选定文本区域的格式。
Ctrl + Alt + D:停靠 OneNote 窗口,可以让你可以边做笔记边干其它事,如看视频或浏览网页。
Ctrl + Alt+ L:锁定所有受密码保护的 OneNote 分区。
Ctrl+#:应用或清除各种标记。
Ctrl + Tab:在笔记本中按顺序切换分区。
Ctrl + Page Up:在分区中切换到「上一页」。
Ctrl + Page Down:在分区中切换到「下一页」。
Shift+ F10:打开当前笔记、标签或对象的上下文菜单。
Shift + F7:在词库中检查所选语言。
F11:切换全屏模式。
Alt + =:开始输入数学公式。
- 格式转换(音频或视频方法相同):
ffmpeg.exe -i 源文件路径 目的文件路径
- 音频或视频播放:
ffplay.exe -i 想播放的文件
- 看视频参数:
ffprobe.exe -i 想查看的文件
ffprobe.exe -print_format json -show_streams -i 文件
Video DownloadHelper 不能直接下载 HLS 流(也许是故意的,否则就不能推广其合作应用了)。但我们可以用 Video DownloadHelper 方便地取得 HLS 流的地址,然后用 ffmpeg 完成下载和转换:
ffmpeg -i "hxxps://xxxxxxxx" c.mp4
ffmpeg 提示输入错误,Invalid data found when processing input。
把这个 HLS 链接丢给一些播放器也不能播放。看了一下 m3u8 的内容,用了加密。于是我就把里面的密钥下载了,又下载了里面一个 ts 文件,然后尝试自己解密。果然失败了,密钥不对。再一看,密钥是 256 位,但 HLS 加密是 AES 128。
分析了一下播放的网页,发现没用 HLS.js 之类常规播放代码,而是自己搞了一个类似的。他们的 m3u8 里引用的密钥本身也被加密了。JS 代码会先对加密的密钥解密,得到真实密钥。虽然他们把 JS 混淆了,但再怎么混淆 AES 代码的特征还是非常明显的。定位了 AES 代码,就容易找到合适的地方加一句 console.log,然后密钥就出来了。
把 m3u8 下载回来,修改其中的密钥,指向本地创建的真实密钥文件。然后用加上 -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto 参数的 ffmpeg 就能正常下载视频了。
code --install-extension xxx
beautify, C/C++, Doxygen Documentation Generator, python,highlight-words,highlight-icemode,xml tools, auto close/rename tag, johnstoncode.svn-scm,GitHub Plus Theme,Noctis,Remote - SSH,java, project manager
ctrl+shift+P打开Command Palette,运行C/Cpp: Edit configurations...生成c_cpp_properties.json: "compileCommands": "${workspaceFolder}/compile_commands.json"
- CMake SET( CMAKE_EXPORT_COMPILE_COMMANDS 1 ) cmake工程生成 compile_commands.json 文件比较简单,定义 CMAKE_EXPORT_COMPILE_COMMANDS 即可。
- Makefile bear生成compile_commands.json github下载现成bear可执行文件
export LD_LIBRARY_PATH=/usr/Bear-2.4.4/libear:$LD_LIBRARY_PATH
export PATH=/usr/Bear-2.3.11/bear:$PATH
export LD_PRELOAD=/usr/Bear-2.3.11/libear/libear.so:$LD_PRELOAD
bear 使用问题 from LD_PRELOAD cannot be preloaded bear --libear /usr/Bear-2.3.11/libear/libear.so make
[[keybindings.json]]
官方快捷键文档:https://code.visualstudio.com/shortcuts/keyboard-shortcuts-windows.pdf
Ctrl + K ctrl+S 进入快捷键修改
1. 选中当前词
{
"key": "ctrl+d",
"command": "editor.action.addSelectionToNextFindMatch",
"when": "editorFocus"
}
2. 工作区搜索上一个
{
"key": "alt+1",
"command": "search.action.focusPreviousSearchResult",
"when": "hasSearchResult || inSearchEditor"
}
3. 工作区搜索下一个
{
"key": "alt+2",
"command": "search.action.focusNextSearchResult",
"when": "hasSearchResult || inSearchEditor"
}
4. 聚焦到搜索视图(工作区)
{
"key": "ctrl+alt+f",
"command": "workbench.view.search.focus"
}
5. 复制当前行 ctrl c
6. 裁剪当前行 ctrl x
7. 查找所有引用
{
"key": "alt+r",
"command": "references-view.findReferences",
"when": "editorHasReferenceProvider"
}
8. 上一引用
{
"key": "alt+f1",
"command": "references-view.prev",
"when": "reference-list.hasResult && references-view.canNavigate"
}
9. 下一引用
{
"key": "alt+f2",
"command": "references-view.next",
"when": "reference-list.hasResult && references-view.canNavigate"
}
10. 查找上一个
{
"key": "alt+3",
"command": "editor.action.previousMatchFindAction",
"when": "editorFocus"
}
11. 查找下一个
{
"key": "alt+4",
"command": "editor.action.nextMatchFindAction",
"when": "editorFocus"
}
12. 资源管理器焦点在 文件夹视图
{
"key": "alt+e",
"command": "workbench.explorer.fileView.focus"
}
13. 跳转到 symbol(搜索变量或者函数),也可以 Ctrl+Shift+O 直接进入
14. 根据分类跳转 symbol,查找属性或函数,也可以 Ctrl+Shift+O 后输入" : "进入
15. 根据名字查找 symbol,也可以 Ctrl+T
16. 在 Ctrl+P 窗口下还可以:
直接输入文件名,跳转到文件
? 列出当前可执行的动作
! 显示 Errors或 Warnings,也可以 Ctrl+Shift+M
: 跳转到行数,也可以 Ctrl+G 直接进入
@ 跳转到 symbol(搜索变量或者函数),也可以 Ctrl+Shift+O 直接进入
@ 根据分类跳转 symbol,查找属性或函数,也可以 Ctrl+Shift+O 后输入:进入
# 根据名字查找 symbol,也可以 Ctrl+T
17. vscode垂直选中列选中
VSCode列选择快捷键:Alt+Shift+左键
18. 转到括号 ctrl+shift+\
19. 窗口侧边栏:ctrl+b
20. 侧面板:alt+0
文件 .clang-format [[clang-format]]
头文件:C/C++ 常规:附件包含目录需要添加$(SolutionDir)\include 库:C/C++ 常规:附件包含目录需要添加$(SolutionDir)\lib
为了解决vs2015使用fopen、fprintf等函数报错的问题,寻找了解决办法,如下:右键工程名-->属性-->C/C++-->预处理器-->预处理器定义,编辑右边输入框加入:_CRT_SECURE_NO_WARNINGS 来自 https://blog.csdn.net/weixin_41695564/article/details/80613157
VS添加Command Prompt
进入工具-外部工具
Title: Visual Studio 2010 Command Prompt
Command: cmd.exe
Arguments: %comspec% /k "D:\Programs\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" x86
初始目录:$(ProjectDir)
__declspec是Microsoft VC中专用的关键字,它配合着一些属性可以对标准C/C++进行扩充。__declspec关键字应该出现在声明的前面。
__declspec(dllexport)用于Windows中的动态库中,声明导出函数、类、对象等供外面调用,省略给出.def文件。即将函数、类等声明为导出函数,供其它程序调用,作为动态库的对外接口函数、类等。
.def文件(模块定义文件)是包含一个或多个描述各种DLL属性的Module语句的文本文件。.def文件或__declspec(dllexport)都是将公共符号导入到应用程序或从DLL导出函数。如果不提供__declspec(dllexport)导出DLL函数,则DLL需要提供.def文件。
原文链接:https://blog.csdn.net/fengbingchun/article/details/78825004
c++动态库生成与调用
来自 <https://blog.csdn.net/kinggreat24/article/details/51130132>
VS2015中引用动态链接库dll目录的配置方法
法1:配置属性->调试->环境:输入path=包含dll文件的文件夹路径,
【注意】path(空格)=路径、path=(空格)路径、path(空格)=(空格)路径等写法都会导致dll引用失败。
法2:将dll文件拷贝到生成的.exe所在的文件夹中
sourceInsight常用快捷 select word 选中单词; scroll jump to definination jump to caller Look up reference Go to Perivious/Next link Go back/forward 推荐插件:Macro宏:quicker.em
- 解析远端电脑主机名命令:
nbtstat -a xxx.xxx.xxx.xxx
- 删除文件夹:
rd /s /q d:\test
- 批量重命名
ren *.wav *.g711
- 显示当前文件夹文件名:
dir /b
- 移动:
move *.jpg ../test
- 删除:
Del *.jpg
- 拷贝: `copy test.jpg test1.jpg
- 注释:
:注释内容(注释文本不能与已有标签重名)
, `%注释内容%(可以用作行间注释,不能出现重定向符号和管道符号)
- 选择菜单项 File->New->Project,弹出“New Project”对话框。
- 左侧面板中 Installed Templated 的 Visual C++下选择 MFC,中间窗口中选择 MFC Application, 然后在下面的 Name 编辑框中键入工程名称,本例取名“Addition”,在 Location 编辑框中设置工程 的保存路径。点“OK”。
- 点“Next”到“Application Type”对话框,在 Application type 下选择 Dialog based,选择static静态库,其 他使用默认设置,点“Finish”。
USES_CONVERSION;
//Cstring 转char *
char *str= T2A(m_CString);
//char * 转CString
USES_CONVERSION;
m_CString = A2W(szStr);
CFont m_EditFont;
m_EditFont.CreatePointFont(40, _T("Calibri"));
m_StaticData.SetFont(&m_EditFont);
m_StaticData.SetFont(&m_EditFont);
AfxMessageBox和MessageBox区别 如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。 但是在WIN32 SDK的情况下只能使用MESSAGEBOX。 MessageBox()是Win32API函数.后者是mfc中的全局函数.在MFC中能用MessageBox()的地方都能用AfxMessageBox(). afxmessagebox更多的时候是用于调试AfxMessageBox 比 MessageBox 方便! MessageBox 比 AfxMessageBox 灵活(如指定对话框标题等)! MessageBox 是 Win32 API ,可以直接使用;AfxMessageBox是MFC的API,需要MFC支持。如果用MFC的话,请尽量使用afxmessagebox,因为这个全局的对话框最安全,也最方便。但是在WIN32 SDK的情况下只能使用MESSAGEBOX。Afx开头的都是全局函数,也就是说AfxMessageBox可以用于任何程序;而MessageBox只能用在CWnd及其派生类中。MessageBox可以任意设置标题,而AfxMessageBox不能。
IntelliSense报错: 未定义标识符 "snprintf"
#if _MSC_VER
#define snprintf _snprintf
#endif
pip install xxx
easy_install xxx
- 如果报SSL错误,需要
pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org xxx
pip install -i https://mirrors.aliyun.com/pypi/simple/ pyinstaller
python -m pip install --user pyinstaller -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com
- 打开cmd,到达安装目录,
python setup.py build python setup.py install
- 常用库:zipfile、bs4、docx、openpyxl、ixml、json、os、sys、tkinter
pyinstaller -F test.py
'{} = {};\n'.format(a, b) #其中{}表示a和b,{需要的话需要进行{{转义
# 这种方式是一定有问题的:
d = {'a':1, 'b':2, 'c':3}
for key in d:
d.pop(key)
#会报这个错误:RuntimeError: dictionary changed size during iteration
# 这种方式Python2可行,Python3还是报上面这个错误。
d = {'a':1, 'b':2, 'c':3}
for key in d.keys():
d.pop(key)
# Python3报错的原因是keys()函数返回的是dict_keys而不是list。Python3的可行方式如下:
d = {'a':1, 'b':2, 'c':3}
for key in list(d):
d.pop(key)
- 抓包前过滤:
host !239.255.255.250 and host !10.1.111.29 and not broadcast and not multicast
- 过滤规则:
ip.addr == 10.6.120.103 && ip.addr == 10.6.120.48 && tcp
- 查看tcp stream: 右键然后点击"Follow TCP Stream",
- 搜索命令码: 如
0x124578 tcp[32:4] == 00:12:45:78
VLC录像功能:Media - Open Network Stream - input source URL - Select stream(default is play) - Next - 勾选Display Locally - Add(File) - Browser(input file name to save) - Next - 不勾选Active Transcoding - Next - 不勾选Stream all elementary streams - streams 结束点击暂停,关闭即可。
javascript:document.body.contentEditable=true
Chrome插件: Enable Copy
ppt: iSlide
xmind
sudo npm install -g asar
asar extract /Applications/Xmind.app/Contents/Resources/app.asar ./app.asar.pk
vscode打开app.asar.pk目录,ACTIVATION_STATUS.TRIAL 批量 替换为 ACTIVATION_STATUS.VALID
替换后重新打包回去:asar pack app.asar.pk app.asar
将修改后的app.asar拷贝到,/Applications/Xmind.app/Contents/Resources/app.asar