您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GetThreadDesktop函数代码示例

51自学网 2021-06-01 21:16:19
  C++
这篇教程C++ GetThreadDesktop函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GetThreadDesktop函数的典型用法代码示例。如果您正苦于以下问题:C++ GetThreadDesktop函数的具体用法?C++ GetThreadDesktop怎么用?C++ GetThreadDesktop使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GetThreadDesktop函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: SimulateCtrlAltDelThreadFn

void *SimulateCtrlAltDelThreadFn(void *context){	HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());	HDESK winlogon_desk = 0;	// Switch into the Winlogon desktop	if (!vncService::SelectDesktop("Winlogon", &winlogon_desk))	{		vnclog.Print(LL_INTERR, VNCLOG("failed to select logon desktop/n"));		vncTimedMsgBox::Do(									sz_ID_CADERROR,									sz_ID_ULTRAVNC_WARNING,									MB_ICONINFORMATION | MB_OK									);		return FALSE;	}    // 9 April 2008 jdp    // turn off capslock if on    ClearKeyState(VK_CAPITAL);	vnclog.Print(LL_ALL, VNCLOG("generating ctrl-alt-del/n"));	// Fake a hotkey event to any windows we find there.... :(	// Winlogon uses hotkeys to trap Ctrl-Alt-Del...	PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));	// Switch back to our original desktop	if (old_desktop != NULL)	{			vncService::SelectHDESK(old_desktop);		CloseDesktop(winlogon_desk);	}	return NULL;}
开发者ID:FrantisekKlika,项目名称:UltraVncAsDll,代码行数:34,


示例2: GetThreadDesktop

BOOLvncService::SelectHDESK(HDESK new_desktop){	// Are we running on NT?	if (IsWinNT())	{		HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());		DWORD dummy;		char new_name[256];		if (!GetUserObjectInformation(new_desktop, UOI_NAME, &new_name, 256, &dummy)) {			vnclog.Print(LL_INTERR, VNCLOG("!GetUserObjectInformation /n"));			return FALSE;		}		vnclog.Print(LL_INTERR, VNCLOG("SelectHDESK to %s (%x) from %x/n"), new_name, new_desktop, old_desktop);		// Switch the desktop		if(!SetThreadDesktop(new_desktop)) {			vnclog.Print(LL_INTERR, VNCLOG("SelectHDESK:!SetThreadDesktop /n"));			return FALSE;		}		return TRUE;	}	return TRUE;}
开发者ID:FrantisekKlika,项目名称:UltraVncAsDll,代码行数:29,


示例3: GetThreadDesktop

BOOLvncService::SelectHDESK(HDESK new_desktop){	// Are we running on NT?	if (IsWinNT())	{		HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());		DWORD dummy;		char new_name[256];		if (!GetUserObjectInformation(new_desktop, UOI_NAME, &new_name, 256, &dummy)) {			return FALSE;		}		// Switch the desktop		if(!SetThreadDesktop(new_desktop)) {			return FALSE;		}		// Switched successfully - destroy the old desktop		CloseDesktop(old_desktop);		return TRUE;	}	return TRUE;}
开发者ID:isaudits,项目名称:scripts,代码行数:32,


示例4: SwitchInputDesktop

bool SwitchInputDesktop(){    BOOL	bRet = false;    DWORD	dwLengthNeeded;    HDESK	hOldDesktop, hNewDesktop;    char	strCurrentDesktop[256], strInputDesktop[256];    hOldDesktop = GetThreadDesktop(GetCurrentThreadId());    memset(strCurrentDesktop, 0, sizeof(strCurrentDesktop));    GetUserObjectInformation(hOldDesktop, UOI_NAME, &strCurrentDesktop, sizeof(strCurrentDesktop), &dwLengthNeeded);    hNewDesktop = OpenInputDesktop(0, FALSE, MAXIMUM_ALLOWED);    memset(strInputDesktop, 0, sizeof(strInputDesktop));    GetUserObjectInformation(hNewDesktop, UOI_NAME, &strInputDesktop, sizeof(strInputDesktop), &dwLengthNeeded);    if (lstrcmpi(strInputDesktop, strCurrentDesktop) != 0)    {        SetThreadDesktop(hNewDesktop);        bRet = true;    }    CloseDesktop(hOldDesktop);    CloseDesktop(hNewDesktop);    return bRet;}
开发者ID:xinba123,项目名称:shell,代码行数:29,


示例5: InputDesktopSelected

bool InputDesktopSelected(){	DWORD dummy;	char threadname[256];	char inputname[256];	HDESK threaddesktop = GetThreadDesktop(GetCurrentThreadId());	HDESK inputdesktop = OpenInputDesktop(0, FALSE,				DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW |				DESKTOP_ENUMERATE | DESKTOP_HOOKCONTROL |				DESKTOP_WRITEOBJECTS | DESKTOP_READOBJECTS |				DESKTOP_SWITCHDESKTOP | GENERIC_WRITE);	if (inputdesktop == NULL) return FALSE;	if (!GetUserObjectInformation(threaddesktop, UOI_NAME, &threadname, 256, &dummy)) {			CloseDesktop(inputdesktop);			return FALSE;		}	if (!GetUserObjectInformation(inputdesktop, UOI_NAME, &inputname, 256, &dummy)) {			CloseDesktop(inputdesktop);			return FALSE;		}		CloseDesktop(inputdesktop);		if (strcmp(threadname, inputname) != 0)		{			//if (strcmp(inputname, "Screen-saver") == 0)			{				return SelectDesktop();			}			return FALSE;		}	return TRUE;}
开发者ID:runsoftcorp,项目名称:runremote,代码行数:34,


示例6: GetThreadDesktop

BOOLvncService::SelectHDESK(HDESK new_desktop){	// Are we running on NT?	if (IsWinNT())	{		HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());		//You do not need to call the CloseDesktop function to close the returned handle.		DWORD dummy;		char new_name[256];		if (!GetUserObjectInformation(new_desktop, UOI_NAME, &new_name, 256, &dummy)) {			return FALSE;		}		//vnclog.Print(LL_INTERR, VNCLOG("SelectHDESK to %s (%x) from %x/n"), new_name, new_desktop, old_desktop);				// Switch the desktop		if(!SetThreadDesktop(new_desktop)) 		{			return FALSE;		}		return TRUE;	}	return TRUE;}
开发者ID:uvbs,项目名称:SupportCenter,代码行数:29,


示例7: Process_Desktop

/************************************************* * Create a new Desktop and run a Process in it. * * (Win NT+).                                    * *************************************************/int DLL_EXP_IMP WINAPI Process_Desktop(char *szDesktopName, char *szPath){	HDESK	hOriginalThread;	HDESK	hOriginalInput;	HDESK	hNewDesktop;	// Save original ...	hOriginalThread = GetThreadDesktop(GetCurrentThreadId());	hOriginalInput = OpenInputDesktop(0, FALSE, DESKTOP_SWITCHDESKTOP);	// Create a new Desktop and switch to it	hNewDesktop = CreateDesktop(szDesktopName, NULL, NULL, 0, GENERIC_ALL, NULL);	SetThreadDesktop(hNewDesktop);	SwitchDesktop(hNewDesktop);	// Execute process in new desktop	StartProcess(szDesktopName, szPath);	// Restore original ...	SwitchDesktop(hOriginalInput);	SetThreadDesktop(hOriginalThread);	// Close the Desktop	CloseDesktop(hNewDesktop);	return 0;}
开发者ID:justdan96,项目名称:VNCappWrapper,代码行数:31,


示例8: SimulateCtrlAltDelThreadFn

void *SimulateCtrlAltDelThreadFn(void *context){	HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());	// Switch into the Winlogon desktop	if (!vncService::SelectDesktop("Winlogon"))	{		vnclog.Print(LL_INTERR, VNCLOG("failed to select logon desktop/n"));		return FALSE;	}	vnclog.Print(LL_ALL, VNCLOG("generating ctrl-alt-del/n"));	HWND hwndCtrlAltDel = FindWindow("SAS window class", "SAS window");	if (hwndCtrlAltDel == NULL) {		vnclog.Print(LL_INTERR, VNCLOG("/"SAS window/" not found/n"));		hwndCtrlAltDel = HWND_BROADCAST;	}	PostMessage(hwndCtrlAltDel, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));	// Switch back to our original desktop	if (old_desktop != NULL)		vncService::SelectHDESK(old_desktop);	return NULL;}
开发者ID:bk138,项目名称:CollabTool,代码行数:28,


示例9: SelectDesktop

bool SelectDesktop(){		HDESK desktop;		HDESK old_desktop;		DWORD dummy;		char new_name[256];		desktop = OpenInputDesktop(0, FALSE,				DESKTOP_CREATEMENU | DESKTOP_CREATEWINDOW |				DESKTOP_ENUMERATE | DESKTOP_HOOKCONTROL |				DESKTOP_WRITEOBJECTS | DESKTOP_READOBJECTS |				DESKTOP_SWITCHDESKTOP | GENERIC_WRITE);		if (desktop == NULL) return FALSE;		old_desktop = GetThreadDesktop(GetCurrentThreadId());		if (!GetUserObjectInformation(desktop, UOI_NAME, &new_name, 256, &dummy)) {			CloseDesktop(desktop);			return FALSE;		}		if(!SetThreadDesktop(desktop)) {			CloseDesktop(desktop);			return FALSE;		}		CloseDesktop(old_desktop);					return TRUE;}
开发者ID:runsoftcorp,项目名称:runremote,代码行数:25,


示例10: SimulateCtrlAltDelThreadFn

void SimulateCtrlAltDelThreadFn(){	HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());	// Switch into the Winlogon desktop	if (!vncService::SelectDesktop("Winlogon"))	{		//vnclog.Print(LL_INTERR, VNCLOG("failed to select logon desktop/n"));		Log.WinError(_ERROR_, "failed to select logon desktop");		if (!vncService::SelectDesktop("Default"))		{			Log.WinError(_ERROR_, "failed to select default desktop");		}	}	//vnclog.Print(LL_ALL, VNCLOG("generating ctrl-alt-del/n"));	// Fake a hotkey event to any windows we find there.... :(	// Winlogon uses hotkeys to trap Ctrl-Alt-Del...	PostMessage(HWND_BROADCAST, WM_HOTKEY, 0, MAKELONG(MOD_ALT | MOD_CONTROL, VK_DELETE));	// Switch back to our original desktop	if (old_desktop != NULL)		vncService::SelectHDESK(old_desktop);}
开发者ID:uvbs,项目名称:SupportCenter,代码行数:25,


示例11: sizeof

/* retrieve the desktop name to use if not specified on the command line */static const WCHAR *get_default_desktop_name(void){    static const WCHAR desktopW[] = {'D','e','s','k','t','o','p',0};    static const WCHAR defaultW[] = {'D','e','f','a','u','l','t',0};    static const WCHAR explorer_keyW[] = {'S','o','f','t','w','a','r','e','//','W','i','n','e','//',                                          'E','x','p','l','o','r','e','r',0};    static WCHAR buffer[MAX_PATH];    DWORD size = sizeof(buffer);    HDESK desk = GetThreadDesktop( GetCurrentThreadId() );    WCHAR *ret = NULL;    HKEY hkey;    if (desk && GetUserObjectInformationW( desk, UOI_NAME, buffer, sizeof(buffer)/sizeof(WCHAR), NULL ))    {        if (strcmpiW( buffer, defaultW )) return buffer;    }    /* @@ Wine registry key: HKCU/Software/Wine/Explorer */    if (!RegOpenKeyW( HKEY_CURRENT_USER, explorer_keyW, &hkey ))    {        if (!RegQueryValueExW( hkey, desktopW, 0, NULL, (LPBYTE)buffer, &size )) ret = buffer;        RegCloseKey( hkey );    }    return ret;}
开发者ID:bpon,项目名称:wine,代码行数:26,


示例12: Thread_Desktop

/************************************************ * Create a new Desktop and run a Thread in it. * * (Win NT+).                                   * ************************************************/int DLL_EXP_IMP WINAPI Thread_Desktop(LPTHREAD_START_ROUTINE ThreadFunc, THREAD_DATA *td){	HDESK	hOriginalThread;	HDESK	hOriginalInput;	HDESK	hNewDesktop;	// Save original ...	hOriginalThread = GetThreadDesktop(GetCurrentThreadId());	hOriginalInput = OpenInputDesktop(0, FALSE, DESKTOP_SWITCHDESKTOP);	// Create a new Desktop and switch to it	hNewDesktop = CreateDesktop(td->szDesktopName, NULL, NULL, 0, GENERIC_ALL, NULL);	SetThreadDesktop(hNewDesktop);	SwitchDesktop(hNewDesktop);	// Execute thread in new desktop	td->hDesk = hNewDesktop;	StartThread(ThreadFunc, td);	// Restore original ...	SwitchDesktop(hOriginalInput);	SetThreadDesktop(hOriginalThread);	// Close the Desktop	CloseDesktop(hNewDesktop);	return 0;}
开发者ID:justdan96,项目名称:VNCappWrapper,代码行数:32,


示例13: do_InitialDesktop_child

void do_InitialDesktop_child(int i){    HDESK hdesktop;    HWINSTA hwinsta;    WCHAR buffer[100];    DWORD size;    BOOL ret;    if(TestResults[i].ExpectedWinsta == NULL)    {        trace("Process should have failed to initialize/n");        return;    }    IsGUIThread(TRUE);    hdesktop = GetThreadDesktop(GetCurrentThreadId());    hwinsta = GetProcessWindowStation();    ret = GetUserObjectInformationW( hwinsta, UOI_NAME, buffer, sizeof(buffer), &size );    ok(ret == TRUE, "ret = %d/n", ret);    ok(wcscmp(buffer, TestResults[i].ExpectedWinsta) == 0, "Wrong winsta %S insted of %S/n", buffer, TestResults[i].ExpectedWinsta);    ret = GetUserObjectInformationW( hdesktop, UOI_NAME, buffer, sizeof(buffer), &size );    ok(ret == TRUE, "ret = %d/n", ret);    ok(wcscmp(buffer, TestResults[i].ExpectedDesktp) == 0, "Wrong desktop %S insted of %S/n", buffer, TestResults[i].ExpectedDesktp);}
开发者ID:hoangduit,项目名称:reactos,代码行数:27,


示例14: GetThreadDesktop

BOOLvncService::SelectHDESK(HDESK new_desktop){	// Are we running on NT?	if (IsWinNT())	{		HDESK old_desktop = GetThreadDesktop(GetCurrentThreadId());		DWORD dummy;		char new_name[256];		if (!GetUserObjectInformation(new_desktop, UOI_NAME, &new_name, 256, &dummy)) {			vnclog.Print(LL_INTERR, VNCLOG("GetUserObjectInformation() failed/n"));			return FALSE;		}		vnclog.Print(LL_INTINFO, VNCLOG("SelectHDESK() to %s (%x) from %x/n"),					 new_name, new_desktop, old_desktop);		// Switch the desktop		if(!SetThreadDesktop(new_desktop)) {			vnclog.Print(LL_INTERR, VNCLOG("unable to SetThreadDesktop(), error=%d/n"), GetLastError());			return FALSE;		}		// Switched successfully - destroy the old desktop		if (!CloseDesktop(old_desktop))			vnclog.Print(LL_INTERR, VNCLOG("SelectHDESK failed to close old desktop %x, error=%d/n"), old_desktop, GetLastError());		return TRUE;	}	return TRUE;}
开发者ID:bk138,项目名称:CollabTool,代码行数:34,


示例15: SetUserDesktop

int SetUserDesktop( int mode ){    static HWINSTA hwinstaSave;     static HDESK hdeskSave;     static HWINSTA hwinstaUser;     static HDESK hdeskUser; 		if(mode == 1) {		hwinstaSave = GetProcessWindowStation(); 		hdeskSave = GetThreadDesktop(GetCurrentThreadId()); 				hwinstaUser = OpenWindowStation("WinSta0", FALSE, MAXIMUM_ALLOWED); 		if (hwinstaUser == NULL) 			return 0; 		SetProcessWindowStation(hwinstaUser); 		hdeskUser = OpenDesktop("Default", 0, FALSE, MAXIMUM_ALLOWED); 		if (hdeskUser == NULL) { 			SetProcessWindowStation(hwinstaSave); 			CloseWindowStation(hwinstaUser); 			return 0; 		} 		SetThreadDesktop(hdeskUser); 	} 	else if(mode == 0) {		SetThreadDesktop(hdeskSave); 		SetProcessWindowStation(hwinstaSave); 		CloseDesktop(hdeskUser); 		CloseWindowStation(hwinstaUser); 	}	    return 0; } 
开发者ID:kilitary,项目名称:ss,代码行数:32,


示例16: TitleWindow

void TitleWindow (HWND hWnd){   TCHAR *szTitle, *szName;   UINT nBytes = 0;   //   // How long is the desktop name?   //   GetUserObjectInformation (GetThreadDesktop(GetCurrentThreadId()),                             UOI_NAME,                             (LPVOID)&nBytes, // not used since cbInfo is 0                             0,                             &nBytes);   szName = (LPTSTR)GlobalAlloc (GPTR, nBytes);   if (!szName)   {      return;   }   //   // Now get the desktop name   //   GetUserObjectInformation (GetThreadDesktop(GetCurrentThreadId()),                             UOI_NAME,                             (LPVOID)szName,                             nBytes,                             &nBytes);   //   // Now make the window title   //   szTitle = (LPTSTR)GlobalAlloc (           GPTR,           (lstrlen(szAppName)+lstrlen(TEXT(" - "))) * sizeof(TCHAR) + nBytes);   if (!szTitle)   {      GlobalFree (szName);      return;   }   wsprintf (szTitle, TEXT("%s - %s"), szAppName, szName);   SetWindowText (hWnd, szTitle);   //   // Cleanup   //   GlobalFree (szName);   GlobalFree (szTitle);}
开发者ID:mingpen,项目名称:OpenNT,代码行数:46,


示例17: sizeof

bool Opc_client_ae_DriverThread::StartProcess(char* pCommandLine, char* pWorkingDir){ 	STARTUPINFO startUpInfo = { sizeof(STARTUPINFO),NULL,"",NULL,0,0,0,0,0,0,0,STARTF_USESHOWWINDOW,0,0,NULL,0,0,0};  	nIndex = 1;		if(strlen(pCommandLine) > 4)	{		char pUserInterface[nBufferSize+1];		//printf("%s/n", pCommandLine);				strcpy(pUserInterface, "Y");		BOOL bUserInterface = (pUserInterface[0]=='y'||pUserInterface[0]=='Y'||pUserInterface[0]=='1')?TRUE:FALSE;		char CurrentDesktopName[512];		// set the correct desktop for the process to be started		if(bUserInterface)		{			//startUpInfo.wShowWindow = SW_SHOW;			startUpInfo.wShowWindow = SW_SHOWMINIMIZED;			startUpInfo.lpDesktop = NULL;		}		else		{			HDESK hCurrentDesktop = GetThreadDesktop(GetCurrentThreadId());			DWORD len;			GetUserObjectInformation(hCurrentDesktop,UOI_NAME,CurrentDesktopName,MAX_PATH,&len);			startUpInfo.wShowWindow = SW_HIDE;			startUpInfo.lpDesktop = CurrentDesktopName;		}		// create the process		DWORD dwCreateFlg  = 0;		dwCreateFlg |= CREATE_NEW_CONSOLE;		memset(pProcInfo + nIndex, 0, sizeof(PROCESS_INFORMATION));		if(CreateProcess(NULL,pCommandLine,NULL,NULL,TRUE,dwCreateFlg,NULL,strlen(pWorkingDir)==0?NULL:pWorkingDir,&startUpInfo,pProcInfo + nIndex))		{			Sleep(100);			return TRUE;		}		else		{			fprintf(stderr,"Failed to start program '%s', error code = %d/n", pCommandLine, GetLastError());			fflush(stderr);			return FALSE;		}	}	else	{		return FALSE;	}}
开发者ID:jiajw0426,项目名称:easyscada,代码行数:58,


示例18: lstrcpy

BOOL COpenDesktop::_OpenDesktop(LPCWSTR szName){	WCHAR pvInfo[128] = {0};	if(szName != NULL)	{		lstrcpy((LPSTR)pvInfo, (LPCSTR)szName);	}	else	{		HDESK hActiveDesktop;		DWORD dwLen;		hActiveDesktop = OpenInputDesktop(DF_ALLOWOTHERACCOUNTHOOK, FALSE, MAXIMUM_ALLOWED);		GetUserObjectInformation(hActiveDesktop, UOI_NAME, pvInfo, sizeof(pvInfo), &dwLen);		CloseDesktop(hActiveDesktop);	}		m_hwinstaCurrent = GetProcessWindowStation();	CheckPointer(m_hwinstaCurrent,FALSE);	    m_hdeskCurrent = GetThreadDesktop(GetCurrentThreadId());	CheckPointer(m_hdeskCurrent,FALSE);		// 
C++ GetThreadId函数代码示例
C++ GetThreadContext函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。