Windows 7下使用注册表扩展Shell
来源:互联网 发布:网络兼职打字录入员 编辑:程序博客网 时间:2024/05/06 17:56
由于日常工作中经常需要对文件路径进行拷贝,虽然文件属性页的安全选项卡中提供了完整的路径名,但毕竟需要执行两步的操作,很是不方便。通过简单的摸索,由于需要操作系统的剪切板,因此放弃了使用脚本的办法,直接编写windows程序进行拷贝。未使用资源管理器的扩展编程,因为那种做法需要使用到COM编程,而且组件本身对注册表的污染很是令人反感。
拷贝路径的Windows程序如下
#include "stdafx.h"#include "cpyfp.h"#include <Shellapi.h>int APIENTRY wWinMain(_In_ HINSTANCE hInstance,_In_opt_ HINSTANCE hPrevInstance,_In_ LPWSTR lpCmdLine,_In_ int nCmdShow) {LPWSTR *szArglist;int nArgs;szArglist = CommandLineToArgvW(GetCommandLine(), &nArgs);if (szArglist == NULL) {return -1;}if (nArgs <= 1) {LocalFree(szArglist);return -1;}if (OpenClipboard(GetDesktopWindow()) && EmptyClipboard()) {size_t cbData = (wcslen(szArglist[1]) + 1) * sizeof(wchar_t);HGLOBAL hMem = GlobalAlloc(GMEM_MOVEABLE, cbData);if (hMem == NULL) {LocalFree(szArglist);CloseClipboard();return -1;}LPTSTR lpDest = (LPTSTR)GlobalLock(hMem);ZeroMemory(lpDest, cbData);memcpy_s(lpDest, cbData, szArglist[1], wcslen(szArglist[1]) * sizeof(wchar_t));GlobalUnlock(hMem);if (SetClipboardData(CF_UNICODETEXT, hMem) == NULL) {LocalFree(szArglist);CloseClipboard();return -1;}CloseClipboard();}LocalFree(szArglist);return 0;}
注册表的设置如下
Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\*\shell\CopyFilePath]"Icon"="C:\\Windows\\System32\\cpyfp.exe"@="Copy full path"[HKEY_CLASSES_ROOT\*\shell\CopyFilePath\Command]@="\"C:\\Windows\\System32\\cpyfp.exe\" \"%1\""
0 0
- Windows 7下使用注册表扩展Shell
- windows shell 修改注册表
- 如何使用Shell脚本读取和修改Windows注册表
- Windows 下的注册表
- windows注册表API使用
- Windows下OpenGL扩展版本的使用
- Windows下使用NIF扩展Erlang方法
- PHP Windows下使用Memcached扩展
- 在windows系统下使用shell
- Windows下注册表的优化
- Linux下读取windows注册表
- windows下删除svn注册表。
- windows下注册表脚本编写
- windows下adb shell的使用,adb shell的概念
- Windows Shell编程-第十五章.SHELL扩展
- Windows Embedded Compact 7中的文件系统和注册表管理(下)
- 在Windows 7下删除注册表项时,权限不足
- 使用Java操作Windows注册表
- 51nod 1001 数组中和等于K的数对(二分)
- redhat-linux 学习7 : tomcat发布war包
- 打包前的配置
- poj - 1061 青蛙的约会【扩展欧几里】
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
- Windows 7下使用注册表扩展Shell
- Faster R-CNN 论文笔记
- mysql 排序 排名
- 创建画布并画一个圆
- HashMap原理
- 关于在tcp或udp上搭载私有协议
- slam资料整理
- Android中三种简便的拉动刷新方式
- css 动画