2011-04-07 94 views
1

我试图在Windows 7 64位上注册redmon monitor。这里是我使用的代码示例:如何使用AddMonitor()在Windows 7 64位下添加redmonnt.dll

MONITOR_INFO_2 info; 
info.pName = "RedmonMonitor"; 
info.pEnvironment = "Windows x64"; 
info.pDLLName = "redmonnt.dll"; 
SetPrivilege("SeLoadDriverPrivilege",TRUE); 
AddMonitor(NULL, 2, (LPBYTE)&info); 

它在指定“Windows NT x86”环境的WinXP上完美工作。在Windows 7上,AddMonitor()返回FALSE,GetLastError()返回0.

在调用redmonnt.dll时已经复制到“C:\ Windows \ system32”(也会自动出现在“C:\ Windows \ Syswow64" 资料)。

此外,我试用Wow64DisableWow64FsRedirection()作为建议here,没有帮助。

我尝试了“Windows NT x86”和“Windows x64”环境值。

使用想法here关于试图以管理员身份启动程序的权限没有帮助。

redmonnt.dll取自官方网站的redmon17软件包。 SetPrivilege()取自msdn的例子,做了小的修改。

对于如何使这项工作有任何想法,将不胜感激。 谢谢。

+0

错误的pinvoke声明,可能。 – 2011-04-07 17:45:47

回答

0

您使用的是哪个版本的redmonnt.dll?它是64-bit DLL还是来自the official site的32位版本?该DLL将由64位操作系统上的64位应用程序spoolsv.exe加载。所以你必须使用64位版本的DLL。

+0

谢谢!它帮助! – 2011-04-11 14:18:17