青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

我的玻璃盒子

[轉載]Vista下服務與桌面互交

原文鏈接:http://www.cnblogs.com/lifeengines/archive/2008/08/26/1277054.html

     本來在Vista之前服務與桌面互交是一件很容易的事情,自從Vista把服務都挪到Session 0 中運行去而且不可以跨Session之后,問題就復雜了許多,有時候我就在想這些問題是否真的不得不解決而且似乎對于安全并未帶來多大提升的更改總是讓人 頭疼,Google了一些文檔,抄襲了不少代碼我是如下實現的

 這個函數抄自winehq網站,順便不得不說一下winehq的代碼是很值得參考的

 1 BOOL WINAPI EnablePrivilege(LPSTR lpPrivilegeName, BOOL bEnable)
 2 {
 3     TOKEN_PRIVILEGES Privileges;
 4     HANDLE hToken;
 5     BOOL bResult;
 6     if (!OpenProcessToken(GetCurrentProcess(), TOKEN_QUERY, &hToken))
 7      return FALSE;
 8 
 9     Privileges.PrivilegeCount = 1;
10     Privileges.Privileges[0].Attributes = (bEnable) ? SE_PRIVILEGE_ENABLED : 0;
11 
12     if (!LookupPrivilegeValue(NULL, lpPrivilegeName,
13                             &Privileges.Privileges[0].Luid))
14     {
15      CloseHandle(hToken);
16      return FALSE;
17     }
18 
19     bResult = AdjustTokenPrivileges(hToken, FALSE, &Privileges, 0, NULL, NULL);
20 
21     CloseHandle(hToken);
22 
23     return bResult;
24 }

 

EnablePrivilege用來提升本進程權限,因為我們的核心思路是用CreateProcessAsUser創建進程到需要互交的Session,

 

    //保證擁有權限
EnablePrivilege(SE_TCB_NAME, TRUE); 
    EnablePrivilege(SE_CHANGE_NOTIFY_NAME, TRUE);
    EnablePrivilege(SE_INCREASE_QUOTA_NAME, TRUE);
    EnablePrivilege(SE_ASSIGNPRIMARYTOKEN_NAME, TRUE);

//獲取當前進程的靈牌
        HANDLE hTokenThis = NULL;
        HANDLE hTokenDup 
= NULL;
        HANDLE hThisProcess 
= GetCurrentProcess();
        OpenProcessToken(hThisProcess, TOKEN_ALL_ACCESS, 
&hTokenThis);
//復制令牌
        DuplicateTokenEx(hTokenThis, MAXIMUM_ALLOWED,NULL, SecurityIdentification, TokenPrimary, &hTokenDup);
//枚舉所有Session,本來還有一個WTSGetActiveConsoleSessionId,不過這個函數在win2000下只有Server版本安裝WTS才可以
        PWTS_SESSION_INFO pSInfo;
        DWORD pCInfo 
= 0;
        WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE,
0,1,&pSInfo,&pCInfo);
        DWORD dwSessionId 
= 0;
        
for (int i=0;i<pCInfo;i++)
        {
            
if (pSInfo[i].State == WTSActive)
            {
                dwSessionId 
= pSInfo[i].SessionId;
                
break;
            }
        }
        
//DWORD dwSessionId = WTSGetActiveConsoleSessionId();
//替換令牌,關鍵地方,我們并不需要以Session用戶創建進程,只需要替換令牌就可以了
        SetTokenInformation(hTokenDup, TokenSessionId, &dwSessionId, sizeof(DWORD));

        STARTUPINFO si 
= {0};
        PROCESS_INFORMATION pi 
= {0};
        si.cb 
= sizeof(si);
        si.lpDesktop 
= "WinSta0\\Default";
        DWORD dwCreationFlag 
= NORMAL_PRIORITY_CLASS | CREATE_NEW_CONSOLE | CREATE_UNICODE_ENVIRONMENT;
        
char    pPath[MAX_PATH*2];
        GetModuleFileName(NULL,pPath,
sizeof(pPath));
        strcat(pPath,
" -work");
        LPVOID pEnv;
        CreateEnvironmentBlock(
&pEnv,hTokenDup,FALSE);
        
if (!CreateProcessAsUser(hTokenDup,NULL,pPath,NULL,NULL,FALSE,dwCreationFlag,pEnv,NULL,&si,&pi))
        {
// 
//             int p = GetLastError();
//             p = 0;
        }
        WaitForSingleObject(pi.hProcess,INFINITE);
        CloseHandle(hTokenDup);
        CloseHandle(hTokenThis);

這樣我們的程序就可以和桌面互交了,這只是核心,其余牽涉多用戶切換這些還需要另外考慮

posted on 2009-01-06 16:59 深藍色系統 閱讀(1002) 評論(0)  編輯 收藏 引用 所屬分類: Windows開發

導航

<2009年11月>
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

統計

常用鏈接

留言簿(75)

隨筆分類

隨筆檔案

文章分類

文章檔案

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美国产日韩a欧美在线观看| 欧美丰满少妇xxxbbb| 欧美视频中文字幕| 欧美一区二区免费视频| 久久av一区二区三区漫画| 亚洲国产精品视频一区| 校园春色综合网| 国产日韩欧美综合| 免费不卡在线观看av| 国产欧美在线播放| 亚洲欧美日韩中文视频| 亚洲天堂网站在线观看视频| 欧美精品情趣视频| 亚洲成色www久久网站| 国产亚洲综合性久久久影院| 国产精品久久久久久久久免费樱桃 | 欧美在线播放一区| 亚洲欧美精品在线| 亚洲韩国青草视频| 午夜精彩视频在线观看不卡| 亚洲开发第一视频在线播放| 午夜精品久久久| 一区二区三区欧美视频| 久久亚洲精品一区二区| 性欧美18~19sex高清播放| 欧美国产乱视频| 另类亚洲自拍| 国产一区二区三区高清播放| 一本大道久久a久久精二百| 亚洲国产欧美一区二区三区丁香婷| 亚洲在线电影| 亚洲欧美日韩一区二区三区在线观看 | 久久久www成人免费精品| 一区二区三区 在线观看视| 久久亚洲精品欧美| 久久久亚洲高清| 国产欧美日韩在线观看| 亚洲日本成人在线观看| 亚洲精品在线免费| 欧美大胆人体视频| 欧美大片第1页| 在线日韩电影| 久久综合伊人77777麻豆| 久久亚洲精品欧美| 国产一二精品视频| 在线亚洲美日韩| 亚洲影院在线| 亚洲经典自拍| 亚洲福利在线观看| 国产一区99| 国产精品男人爽免费视频1| 欧美成人影音| 老牛影视一区二区三区| 欧美麻豆久久久久久中文| 亚洲一区三区在线观看| 国产女人18毛片水18精品| 国产精品久久久久久久午夜| 亚洲欧洲综合| 亚洲激情欧美| 久久亚洲综合| 欧美激情在线观看| 亚洲美女诱惑| 欧美日韩精品一区二区| 亚洲欧洲日夜超级视频| 在线视频欧美一区| 欧美色一级片| 性一交一乱一区二区洋洋av| 久久久久免费视频| 在线成人国产| 蜜桃伊人久久| 亚洲精品乱码久久久久久蜜桃91| 亚洲美女精品成人在线视频| 欧美午夜视频网站| 欧美亚洲免费电影| 欧美91大片| 亚洲视频你懂的| 国产精品一区久久| 久久久久久97三级| 亚洲精品日产精品乱码不卡| 午夜欧美电影在线观看| 国内精品久久久久久久影视蜜臀 | 亚洲成人在线视频网站| 欧美国产高潮xxxx1819| 亚洲视频你懂的| 久久婷婷人人澡人人喊人人爽| 亚洲激情黄色| 国产精品人成在线观看免费 | 久久先锋资源| 99热免费精品| 国产乱码精品一区二区三区不卡| 久久久久久伊人| 在线一区欧美| 亚洲在线视频网站| 亚洲深夜福利| 国产欧美一区二区精品性| 99精品福利视频| 久久亚洲精选| 羞羞答答国产精品www一本| 久久人人看视频| 欧美日韩一区在线| 亚洲黄色尤物视频| 美女被久久久| 美女日韩欧美| 亚洲第一区中文99精品| 国产精品v欧美精品v日韩精品| 午夜亚洲伦理| 亚洲精品一区二区三区蜜桃久| 久久久久久亚洲精品杨幂换脸| 一本一道久久综合狠狠老精东影业 | 国产农村妇女精品一区二区| 欧美国产三区| 久久久噜噜噜久久中文字幕色伊伊| 性色一区二区三区| 亚洲国产岛国毛片在线| 国产日韩欧美综合| 国产精品国产福利国产秒拍| 欧美日本高清视频| 亚洲男女自偷自拍| 亚洲国产日韩欧美一区二区三区| 欧美在线观看日本一区| 一区二区三区免费观看| 激情综合自拍| 国产丝袜美腿一区二区三区| 欧美性大战久久久久久久蜜臀 | 欧美大片免费| 麻豆91精品91久久久的内涵| 久久久久综合网| 欧美在线亚洲| 亚洲欧美日韩一区| 亚洲欧美日韩一区在线观看| 亚洲网友自拍| 亚洲一区免费网站| 亚洲小说春色综合另类电影| 日韩网站免费观看| 日韩西西人体444www| 亚洲精品国产精品国自产观看浪潮| 在线精品福利| 亚洲黄色在线视频| 亚洲日本va在线观看| 亚洲高清视频一区| 亚洲国产成人av好男人在线观看| 一区二区三区在线视频观看| 狠狠色狠色综合曰曰| 国内精品伊人久久久久av一坑| 黄色成人在线| 亚洲欧洲在线视频| 欧美午夜精品久久久| 久久综合影视| 亚洲国产成人精品女人久久久 | 久久人人爽爽爽人久久久| 亚洲美女色禁图| 另类图片国产| 亚洲美女在线一区| 国产一区在线观看视频| 欧美精品一区二| 欧美日本高清| 国产精品久久久久久久久久三级| 国产精品久久久久久av下载红粉 | 欧美在线精品免播放器视频| 欧美在线观看一区二区三区| 久久久久久尹人网香蕉| 欧美va天堂| 亚洲精品综合久久中文字幕| 一本色道久久| 欧美在线高清视频| 欧美成人一区二区| 国产精品久久久一区二区三区| 国产一区二区三区无遮挡| 亚洲国产精品传媒在线观看 | 欧美黄在线观看| 国产精品久久久久毛片大屁完整版 | 久久久久国产精品一区三寸 | 午夜精品久久久久久久99热浪潮 | 国产精品亚洲а∨天堂免在线| 国产亚洲一区精品| 亚洲国产一二三| 亚洲欧美中日韩| 欧美成人精品三级在线观看| 日韩午夜激情| 久久人人97超碰人人澡爱香蕉 | 亚洲精品资源| 久久精品国产精品亚洲精品| 欧美激情一区二区三区成人| 国产午夜一区二区三区| 亚洲欧洲综合| 久久激五月天综合精品| 亚洲精品日产精品乱码不卡| 久久精品99国产精品酒店日本| 欧美日韩成人一区| 黄页网站一区| 午夜国产精品视频免费体验区| 麻豆精品在线播放| 亚洲一二三级电影| 欧美大片在线观看一区| 国产视频一区免费看| 中文在线资源观看网站视频免费不卡| 麻豆精品在线播放| 欧美一区免费视频| 欧美色精品在线视频| 亚洲精品九九|