用C#定义IDocHostUIHandler.GetOptionKeypath

vollkorn 2016-01-29 12:14:04
C# 新手,想通过WebBrowser 给IE做个壳。
尝试通过 IDocHostUIHandler.GetOptionKeypath() 覆盖注册表设定的位置。

HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\CurrentVersion\\InternetSettings
变为
HKEY_CURRENT_USER\\SOFTWARE\\MyApp
但是没有作用, 浏览器还是从 IE的注册表里读设置。 麻烦大家给看看

[return: MarshalAs(UnmanagedType.I4)]
[PreserveSig]
int GetOptionKeyPath(
[Out]
IntPtr pbstrKey,
[In, MarshalAs(UnmanagedType.U4)]
int dw);

int NativeMethods.IDocHostUIHandler.GetOptionKeyPath(IntPtr pbstrKey, int dw)
{
Debug.Print("IDocHostUIHandler.GetOptionKeyPath ");
string keypath = "Software\\MyApp" + Char.MinValue; //null terminator +'\0';
char[] arr = keypath.ToCharArray();
pbstrKey = NativeMethods.CoTaskMemAlloc(new IntPtr(keypath.Length * sizeof(char));
for (int ctr = 0; ctr < keypath.Length; ctr++)
{
IntPtr newptr = IntPtr.Add(pbstrKey, ctr * sizeof(char));
Marshal.WriteInt16(newptr, arr[ctr]);
//Console.Write("{0} ", (char)Marshal.ReadIntPtr(newptr));
}
return 0; //S_OK
}
...全文
107 1 打赏 收藏 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
vollkorn 2016-01-29
  • 打赏
  • 举报
回复
没有人知道吗, 自己顶一下。 试了好久都不行。 目前只找到了C++ 的例子
HRESULT CBrowserHost::GetOptionKeyPath(LPOLESTR *pchKey, DWORD dwReserved)
{
    HRESULT hr;
    WCHAR* szKey = L"Software\\MyCompany\\MyApp";
	
    //  cbLength is the length of szKey in bytes.
    size_t cbLength;
    hr = StringCbLengthW(szKey, 1280, &cbLength);
    //  TODO: Add error handling code here.
    
    if (pchKey)
    {
        *pchKey = (LPOLESTR)CoTaskMemAlloc(cbLength + sizeof(WCHAR));
        if (*pchKey)
            hr = StringCbCopyW(*pchKey, cbLength + sizeof(WCHAR), szKey);
    }
    else
        hr = E_INVALIDARG;

    return hr;
}
内容概要:本文围绕通过短时倒谱(Cepstrogram)计算进行时-倒频分析的研究,提出了一种基于Matlab的信号处理方法,旨在从复杂信号中提取时变的倒频域特征,尤其适用于具有非线性反馈的LTI系统识别。文中系统阐述了短时倒谱的理论基础、计算流程与实现机制,并结合Simulink与Matlab代码实现了多个典型应用案例,涵盖非线性系统辨识、路径损耗建模、信号去噪与增强等,充分展示了该方法在系统建模与信号分析中的强大能力。研究不仅提供了完整的算法实现方案,还深入探讨了其在科研与工程实践中的广泛应用前景。; 适合人群:具备扎实的信号处理理论基础与Matlab编程能力,从事自动化、通信工程、电子工程、控制科学等领域的高校研究生、科研人员及工程技术人员。; 使用场景及目标:①实现对具有非线性反馈的LTI系统的精确建模与参数辨识,提升系统识别的准确性与鲁棒性;②在强噪声背景下进行有效的信号特征提取与时-倒频域分析,恢复信号的有效成分;③作为高级信号处理的教学与科研平台,帮助深入理解倒谱分析的物理意义及其在现代工程中的实际应用。; 阅读建议:建议读者在学习过程中紧密结合文中提供的Matlab代码与Simulink模型进行动手实践,通过调整参数、修改输入信号等方式观察分析结果的变化,以加深对算法机理的理解;同时可访问作者提供的网盘资源与完整代码包,系统性地掌握相关技术的优化与拓展方法。

111,128

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧