【发布时间】:2011-09-16 17:05:08
【问题描述】:
我试图阻止用户将我的 .NET 应用程序固定到任务栏。我在Old New Thing 上找到了一些代码,就是这样做的。但是,它是用 C++ 编写的。
#include <shellapi.h>
#include <propsys.h>
#include <propkey.h>
HRESULT MarkWindowAsUnpinnable(HWND hwnd)
{
IPropertyStore *pps;
HRESULT hr = SHGetPropertyStoreForWindow(hwnd, IID_PPV_ARGS(&pps));
if (SUCCEEDED(hr)) {
PROPVARIANT var;
var.vt = VT_BOOL;
var.boolVal = VARIANT_TRUE;
hr = pps->SetValue(PKEY_AppUserModel_PreventPinning, var);
pps->Release();
}
return hr;
}
BOOL
OnCreate(HWND hwnd, LPCREATESTRUCT lpcs)
{
MarkWindowAsUnpinnable(hwnd);
return TRUE;
}
我把它转换成 c# 的运气很差。有人可以帮忙吗?
【问题讨论】:
-
你有这方面的 C# 代码吗?我只是在引用 Windows API 代码包,所以我认为我只需要你的主要形式的代码吗?提前致谢。
标签: c# .net c++ windows-7 pinning