生活的天平本不平衡,只有通过努力改变其偏向。

某强大的资源管理器免击Patch代码

2009-11-13

此方虽然土了一点,由于不修改Bin,应该可以达以新版本的兼容,呵呵。

比较佩服此软件作者的开发精神,真的十年如一日。

您可以转载,但请注明出处(www.vcfans.com),谢谢。

直接上代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#include "stdafx.h"
#include <STDIO.H>
#define LOOPTIMES	5000
 
HWND LoopCheckHandle( HWND hParent, char * szTitle, int nType )
{
	HWND hRet=NULL;
	int nLoopTimes = LOOPTIMES;
	if(  NULL == szTitle ) return (HWND) NULL;
	while( nLoopTimes-- )
	{
		if( nType == 0 )
		{//title
			hRet = FindWindowEx(hParent, NULL, szTitle, NULL);
		}
		else
		{//class
			hRet = FindWindowEx(hParent, NULL, NULL, szTitle);
		}
		if(hRet) break;
		Sleep(10);
	}
	return hRet;
}
 
bool SimlateMouseHit( HWND hParent )
{
	if( !hParent )	return false;
 
	HWND hTNotebook = LoopCheckHandle(hParent, "TNotebook", 0);
 
	if( hTNotebook )
	{
		HWND hNag = LoopCheckHandle(hTNotebook,"NagPage",1);		
		if( hNag )
		{
			HWND hTPanel=LoopCheckHandle(hNag, "TPanel", 0);
			if( hTPanel )
			{
				HWND hRandom=LoopCheckHandle(hTPanel, "TPanel", 0);;
 
				if( hRandom )
				{
					char szTitle[10]={0};
					char szBuf[2]={0};
					szTitle[0]='&';
					GetWindowText(hRandom, szBuf, 2 );
					strcat(szTitle,szBuf);
 
					HWND hBtn= LoopCheckHandle(hTPanel,szTitle,1);
					if( hBtn )
					{
						SendMessage(hBtn, WM_LBUTTONDOWN, 0, 0);
						SendMessage(hBtn, WM_LBUTTONUP, 0, 0);
						return true;
					}
				}
			}
		}
	}
	return false;
}
 
int APIENTRY WinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR     lpCmdLine,
                     int       nCmdShow)
{
 
	STARTUPINFO si;
	memset(&si, 0, sizeof(STARTUPINFO));
	si.cb = sizeof(STARTUPINFO);
	si.dwFlags = STARTF_USESHOWWINDOW;
	si.wShowWindow = SW_SHOW;
	PROCESS_INFORMATION pi; 
	char szFilePath[MAX_PATH]={0},szTcPath[MAX_PATH]={0};
	int i = LOOPTIMES;
	GetModuleFileName(NULL, szFilePath, MAX_PATH );
	char *p = szFilePath + strlen(szFilePath)-1;
	while(*p--)
	{
		if( *p == '\\' ) break;
	}
	szFilePath[p-szFilePath+1]=0;
	sprintf(szTcPath,"%sTOTALCMD.EXE",szFilePath);
 
 
	CreateProcess(NULL,szTcPath, NULL, NULL, FALSE, NULL,NULL,NULL, &si, &pi);
 
	if( GetLastError() == 0 )
	{
		HWND hReg = LoopCheckHandle(NULL, "TNASTYNAGSCREEN", 0);
		if( hReg )
		{//find it
			SimlateMouseHit(hReg);
		}	
		CloseHandle(pi.hProcess);
		CloseHandle(pi.hThread);
	}
	else
	{
		MessageBox(NULL, "请确保此Patch和TotalCommand在同一个目录中.","错误", MB_ICONERROR);
	}
	return 0;
}
作者:lonkil | 分类目录:本站原创编程开发 | 标签:

5 条评论

  1. lonkil 说道:

    哈哈,懒人推到了社会的发展。

  2. Cooldog 说道:

    原来你也用了WP-CodeBox插件,嘿嘿~~

  3. Koma 说道:

    大佬你也太”懒”了吧…..

  4. lonkil 说道:

    To cooldog:

    我不想使用PJ版,又懒得点击那个启动窗口,呵呵。

  5. Cooldog 说道:

    TotalCMD… 我也在用。。。不过模拟点击按钮是啥意思?没搞懂~

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>