【原创】批处理整理磁盘碎片

哈哈,懒人总有懒招嘛!

@echo off
for %%d in (c: d: e: f: g:) do echo 正在整理%%d的磁盘碎片... && echo 整理%%d>>%cd%defrag_log.txt && defrag %%d /f /v >>%cd%defrag_log.txt
echo 正在关闭计算机...
shutdown -s -f -t 60
发表在 工具收集 | 标签为 , , | 【原创】批处理整理磁盘碎片已关闭评论

【原创】加载Ghost启动项

Ghost用着很不错,又不想用一键Ghost什么的,就自己做了个Ghost启动项的东西。
安装到C盘根目录就行了。开机的时候会多出来一个“Ghost11”的东西,选择它按回车就进去了。很简单,就是一个Ghost11程序,支持鼠标。

注意:本程序会覆盖C盘的“boot.ini”文件,如果你在之前添加了其它东西,那得先做好备份,然后手动修改下,即在最后一行加上“C:\Avldr.bin=Ghost11”。

附件:加载Ghost启动项

发表在 工具收集 | 标签为 , , | 【原创】加载Ghost启动项已关闭评论

【原创】Enabled激活灰色菜单及按钮

出于好奇,自己用VC弄了一个简单的工具,有的时候还真挺有用的。
这个连灰色的菜单也可以激活的。

核心代码

bool bstart=false;
 
void CEnabledDlg::OnEnable() 
{
 
	if (bstart)
	{
		KillTimer(1);
		SetDlgItemText(IDC_ENABLE,"激活[开启]");
	}
	else
	{
		SetTimer(1, 500, NULL);
		SetDlgItemText(IDC_ENABLE,"激活[关闭]");
	}
	bstart=!bstart;
}
 
BOOL CALLBACK EnumChildProc(HWND hwnd, LPARAM lParam)
{
	if (::IsWindowEnabled(hwnd)==false)
		::EnableWindow(hwnd,true);
 
	return true;
}
 
BOOL CEnabledDlg::DestroyWindow() 
{
	KillTimer(1);
	return CDialog::DestroyWindow();
}
 
void EnMenu(HMENU hMenu)
{
	int i,subs;
	subs = ::GetMenuItemCount(hMenu);
	for (i=0; i<subs ; i++)
	{
		::EnableMenuItem(hMenu, i, MF_ENABLED | MF_BYPOSITION);
		HMENU hMenu2 = ::GetSubMenu(hMenu, i);
		int subs2 = ::GetMenuItemCount(hMenu2);
		if (subs2>0)
		{
			EnMenu(hMenu2);
		}
	}
}
 
void CEnabledDlg::OnTimer(UINT nIDEvent) 
{
	HWND hwnd = ::GetForegroundWindow();
	::EnumChildWindows(hwnd,EnumChildProc,0);
	HMENU  hMenu;
	hMenu =::GetMenu(hwnd);
	EnMenu(hMenu);
	CDialog::OnTimer(nIDEvent);
}
</subs>

附件:Enabled

发表在 工具收集 | 标签为 , , , , | 【原创】Enabled激活灰色菜单及按钮已关闭评论

Virtual-Key Codes

引自微软MSDN,http://msdn.microsoft.com/ZH-cn/library/ms645540
继续阅读

发表在 技术相关 | 标签为 , , | Virtual-Key Codes已关闭评论

【实验】VBS调用系统API

VBS真的很强大。
准备:下载附件,执行dynwrap.bat注册。

说明:
如Beep的API声明为

Public Declare Function Beep Lib “kernel32” Alias “Beep” (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long

则使用方法如下

'创建对象
Set Wrap = CreateObject("DynamicWrapper")
'注册API
Wrap.Register "KERNEL32.DLL", "Beep", "i=ll", "f=s", "r=l"
'调用API
Wrap.Beep(500, 100)

其中注册API中, “i=ll”是API的参数类型, “f=s”是调用方式, “r=l”是返回类型
这些可以参考下面的说明。
继续阅读

发表在 技术相关 | 标签为 , , | 一条评论