⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 read.cgi-read=9862.htm

📁 mfc资料集合5
💻 HTM
字号:
<HTML><HEAD><TITLE>RegSaveKey()/RegLoadKey()</TITLE>
</HEAD><BODY background="../fancyhome/back.gif" tppabs="http://www.codeguru.com/fancyhome/back.gif" bgcolor="#FFFFFF">
 <table WIDTH="100%"> <tr WIDTH="100%"> <td><table>
		<tr><td><img src="../mfc_sourcebook.jpg" tppabs="http://www.codeguru.com/mfc_sourcebook.jpg" 
		ALT="MFC Programmer's SourceBook" WIDTH="256" 
		HEIGHT="88"><td></tr>
		<tr><td valign="bottom"><font SIZE="+1" 
		color="#a0a0ff"><b>Discussion Board</b></font></td></tr>
		</table></td> <td width="40"></td>
		<td  align="right" valign="top"><A HREF="http://209.66.99.126/cgi/ads.cgi?advert=myad2"><IMG SRC="../../209.66.99.126/advertise2.gif" tppabs="http://209.66.99.126/advertise2.gif" ALT="" BORDER=2></A><td> </tr> </table> <hr><P ALIGN=CENTER>[ <A HREF="#Responses">Read Responses</A> | <A HREF="#PostResponse">Post a New Response</A> | <A HREF="index.cgi.htm" tppabs="http://www.codeguru.com/mfc_bbs/index.cgi">Return to the Index</A> ]
<A HREF="read.cgi-read=10171.htm" tppabs="http://www.codeguru.com/mfc_bbs/read.cgi?read=10171">Next in Thread</A><P ALIGN=CENTER><BIG><BIG><BIG><STRONG>RegSaveKey()/RegLoadKey()</STRONG></BIG></BIG></BIG>
<P ALIGN=CENTER><EM>Posted by <STRONG><A HREF="mailto:ebrown@perimetertechnology.com">emb</A></STRONG> on <STRONG>4/20/98 11:47a.m.</STRONG></EM></P>
<!-- REMOTE_HOST: 151.101.0.44; REMOTE_ADDR: 151.101.0.44-->
<P>Can anyone tell me why I am getting &quot;Access Denied&quot; on the RegLoadKey()
<P>I need an easy method to copy HKEY_CURRENT_USER\\somekey key and subkeys
<BR>to LOCAL_MACHINE\\someotherplace
<P>This needs to work across platforms NT &amp;&amp; 95 
<P>Is the only way to brute force it using RegEnumEx()/RegGetValue in combination
<BR>with RegCreateKeyEx() &amp;&amp; RegSetValue()
<P>Snippet of sample code which uses RegSaveKey()/RegLoadKey()
<BR>thanks 
<P>...
<P>LONG lResult = RegOpenKeyEx(hkRoot, (const char*)sPathBuffer, 0, KEY_READ, &amp;hkUser );
<P>	if ( lResult == ERROR_SUCCESS )
<BR>	{	
<P>		DWORD dwDisposition;
<P>		static HANDLE           hToken;
<BR>		static TOKEN_PRIVILEGES tp;
<BR>		static LUID             luid;
<BR>		static LUID             luid2;
<BR> 
<BR> 
<BR>		// Enable backup privilege.
<BR> 
<BR>		OpenProcessToken( GetCurrentProcess(),
<BR>				TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &amp;hToken ) ;
<BR>		LookupPrivilegeValue( NULL, &quot;SeBackupPrivilege&quot;, &amp;luid );
<BR>		LookupPrivilegeValue( NULL, &quot;SeRestorePrivilege&quot;, &amp;luid2 );
<BR>		
<BR>		tp.PrivilegeCount           = 2;
<BR>		tp.Privileges[0].Luid       = luid;
<BR>		tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
<P>		tp.Privileges[1].Luid       = luid2;
<BR>		tp.Privileges[1].Attributes = SE_PRIVILEGE_ENABLED;
<BR>		AdjustTokenPrivileges( hToken, FALSE, &amp;tp,
<BR>				sizeof(TOKEN_PRIVILEGES), NULL, NULL );
<BR> 
<BR>   
<BR>		CString sPath;
<BR>		char szCurrDir[_MAX_PATH];
<BR>		memset((LPSTR)szCurrDir, 0, sizeof(szCurrDir));
<BR>		GetCurrentDirectory(_MAX_PATH, szCurrDir);
<BR>				
<BR>		sPath.Format(&quot;%s\\regkey.tmp&quot;,szCurrDir);
<BR>					
<BR>		//save key 
<BR>		if ((lResult = RegSaveKey(hkUser, sPath, m_pSA)) == ERROR_SUCCESS)
<BR>		{
<BR>			
<BR>			//lResult = RegOpenKeyEx(m_hkRoot_Key, (const char*)sToPathBuffer, 0,KEY_WRITE | KEY_READ, &amp;hkToUser );
<BR>			lResult= RegCreateKeyEx(m_hkRoot_Key, (const char*)sToPathBuffer, 0,NULL,
<BR>						REG_OPTION_NON_VOLATILE | REG_OPTION_BACKUP_RESTORE, KEY_ALL_ACCESS, m_pSA,
<BR>						&amp;hkToUser, &amp;dwDisposition );
<BR>			if ( lResult == ERROR_SUCCESS )
<BR>			{
<BR>				//load key
<BR>				lResult = RegLoadKey(hkToUser, sUSER_KEY, sPath);
<BR>			}
<BR>		}
<P>		//delete key saved 
<BR>		remove((LPCTSTR) sPath);
<P>		// Disable backup privilege. 
<BR>		AdjustTokenPrivileges( hToken, TRUE, &amp;tp, sizeof(TOKEN_PRIVILEGES),
<BR>			 NULL, NULL );
<P>		// close handle to process token
<BR>		CloseHandle(hToken);
<P>		if (lResult != ERROR_SUCCESS)
<BR>		{
<BR>			LPCTSTR  lpMsgBuf;
<BR>			FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,    NULL,
<BR>						   lResult,
<BR>							MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
<BR>							(LPTSTR) &amp;lpMsgBuf,    0,    NULL );// Display the string.
<BR>			MessageBox( NULL, lpMsgBuf, &quot;GetLastError&quot;, MB_OK|MB_ICONINFORMATION );
<BR>			// Free the buffer.
<BR>			LocalFree( (LPVOID)lpMsgBuf );
<BR>		}
<P>		if ( hkUser != NULL)
<BR>				RegCloseKey( hkUser );
<BR>			
<BR>		if (hkToUser != NULL)
<BR>			RegCloseKey( hkToUser );	
<BR>	}
<BR>	
<BR>
</P>
<A NAME="Responses"><HR></A><P ALIGN=CENTER><BIG><BIG><STRONG>Responses</STRONG></BIG></BIG>
<P><UL><LI><STRONG><A HREF="read.cgi-read=10171.htm" tppabs="http://www.codeguru.com/mfc_bbs/read.cgi?read=10171">Re: RegSaveKey()/RegLoadKey()</A></STRONG> : Benjamin Mayrargue -- <EM>4/23/98 3:31a.m.</EM>
<UL>
</UL>
</UL></P>
<A NAME="PostResponse"><HR></A><P ALIGN=CENTER><BIG><BIG><STRONG>Post a New Response</STRONG></BIG></BIG>
<P><FORM METHOD=POST ACTION="http://www.codeguru.com/mfc_bbs/index.cgi?post">
<INPUT TYPE=HIDDEN NAME="followup" VALUE="9862">
<P><CENTER><TABLE><TR>
<TD ALIGN=RIGHT><P><STRONG>Your Name:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="name" SIZE=40></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>E-Mail Address:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="email" SIZE=40></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Subject:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="subject" SIZE=40 VALUE="Re: RegSaveKey()/RegLoadKey()"></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><P><STRONG>Message:</STRONG><BR><TEXTAREA COLS=80 ROWS=15 NAME="body" WRAP=PHYSICAL>
</TEXTAREA></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like to include a link to another page with your message,<BR>please provide both the URL address and the title of the page:</SMALL></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Link URL:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="url" SIZE=40 VALUE="http://"></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Link Title:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="url_title" SIZE=40></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like to include an image (picture) with your message,<BR>please provide the URL address of the image file:</SMALL></TD></TR><TR>
<TD ALIGN=RIGHT><P><STRONG>Optional Image URL:</STRONG></TD><TD><INPUT TYPE=TEXT NAME="imageurl" SIZE=40 VALUE="http://"></TD></TR><TR>
<TD COLSPAN=2 ALIGN=CENTER><HR WIDTH=50%><P><SMALL>If you'd like e-mail notification of responses, please check this box:</SMALL> <INPUT TYPE=CHECKBOX NAME="wantnotice" CHECKED VALUE="yes"></TD></TR><TR>
<TH COLSPAN=2><HR WIDTH=50%><P><INPUT TYPE=SUBMIT NAME="Preview" VALUE="Preview Message"> <INPUT TYPE=SUBMIT NAME="Post" VALUE="Post Message"></TH></TR></TABLE></CENTER></P></FORM>
<HR><P ALIGN=CENTER><SMALL>The MFC Discussion Board is maintained with <STRONG><A HREF="http://awsd.com/scripts/webbbs/">WebBBS 2.24</A></STRONG>.</SMALL></P>
</BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -