Articles of Windows

EnumDisplayDevices与WMI Win32_DesktopMonitor,如何检测活动监视器?

对于我当前的C ++项目,我需要为大量计算机上连接并激活的每个监视器检测唯一的string。 研究指出了2个select 使用WMI并查询所有活动监视器的Win32_DesktopMonitor。 使用PNPDeviceID来唯一标识显示器。 使用EnumDisplayDevices API,并挖掘获取设备ID。 我有兴趣使用设备ID进行独特的模型识别,因为使用默认即插即用驱动程序的监视器将报告一个通用string作为监视器名称“默认即插即用监视器” 我一直在遇到与WMI方法有关的问题,它似乎只在我的Vista机器上返回1个显示器,看着doco,结果表明它在非WDDM设备上无法正常工作。 EnumDisplayDevices在从后台服务(尤其是Vista)运行时似乎有点麻烦,如果它在会话0中,它将不返回任何信息。 有没有其他人不得不做类似的事情(find所有连接的主动显示器独特的模型string?) 哪种方法效果最好?

为什么不从入口函数调用FreeLibrary?

我正在写一个DLL需要多次dynamic调用一个单独的DLL。 我想保持被调用者加载,然后卸载它,当我的DLL被卸载。 但根据微软的说法,这是一个坏主意 。 入口点函数只应执行简单的初始化任务,不应该调用任何其他的DLL加载或终止函数。 例如,在入口点函数中,您不应该直接或间接调用LoadLibrary函数或LoadLibraryEx函数。 此外,当进程正在终止时,您不应该调用FreeLibrary函数。 这是有问题的代码。 有人可以解释为什么我不应该从DLL的入口点调用LoadLibrary和FreeLibrary? BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch (ul_reason_for_call) { case DLL_PROCESS_DETACH : if (hLogLib != NULL) FreeLibrary(hLogLib); break; } return TRUE; }

add_library不能在cmake中添加csharp源文件?

我正在试图从.cs文件集中构buildcsharp dll。 我使用add_library()函数来添加源文件(.cs文件)。但它给出警告,如“add_library for library libname without any source files”。请提供一个解决scheme使其工作。 提前致谢。 CMakeLists.txt是: cmake_minimum_required(VERSION 2.8) project(MyAddIn) AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ MyAddIn_SOURCES) SET_SOURCE_FILES_PROPERTIES(${MyAddIn_SOURCES} PROPERTIES LANGUAGE CSharp) ADD_LIBRARY(AddInTrg SHARED ${MyAddIn_SOURCES}) SET_TARGET_PROPERTIES(AddInTrg PROPERTIES LINKER_LANGUAGE CSharp RUNTIME_OUTPUT_DIRECTORY bin RUNTIME_OUTPUT_DIRECTORY_DEBUG bin RUNTIME_OUTPUT_NAME MyAddIn_Bin ARCHIVE_OUTPUT_DIRECTORY lib ARCHIVE_OUTPUT_DIRECTORY_DEBUG lib OUTPUT_NAME MyAddIn_Bin) add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/MyAddIn_Bin.dll WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In COMMAND C:/WINDOWS/Microsoft.NET/Framework/v3.5/csc.exe ARGS -target:library -out ${CMAKE_CURRENT_BINARY_DIR}/bin/MyAddIn_Bin.dll "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ThisAddIn.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.xml" COMMENT "– […]

将Java文件:// URL转换为File(…)path,与平台无关,包括UNCpath

我正在开发一个平台独立应用程序。 我收到一个文件的URL *。 在Windows上这些是: file:///Z:/folder%20to%20file/file.txt file://host/folder%20to%20file/file.txt (一个UNCpath) 我正在使用new File(URI(urlOfDocument).getPath())与第一个和Unix,Linux,OS X,但不适用于UNCpath。 什么是标准的方式来转换文件:URL到文件(..)path,与Java 6兼容? …… *注意:我从OpenOffice / LibreOffice(XModel.getURL())接收这些URL。

heroku在windows上拉postgresql

我试图通过使用一个heroku数据库到我的本地Windows计算机 heroku pg:pull HEROKU_POSTGRESQL_DATABASE mydatabase –app myapp 但是,当我运行这个命令,我得到以下错误: “env”不被识别为内部或外部命令,可操作程序或batch file。 ! 本地psql命令找不到! 有关安装psql的帮助,请参阅PostgreSQL-local-setup 我有我的pathpsql,我可以成功地从我的命令行调用psql。 我甚至可以调用heroku pg:info –app myapp ,并显示我的数据库的存在。 有什么build议么?

我怎么知道一个目录真的是一个回收站?

我需要一个函数,给定一个path,告诉我它是否是一个回收站文件夹。 我试着用CSIDL_BITBUCKET使用像SHGetSpecialFolderPath函数,但是这不起作用,因为回收站是一个虚拟文件夹,它是所有驱动器的回收站的联合。 这个问题是要logging在http://blogs.msdn.com/oldnewthing/archive/2008/09/18/8956382.aspx发布的回复

我怎样才能使用VBA执行一个shell命令?

我想要使​​用Visual Basic for Applications执行如下的shell命令。 C:\Temp\gc.exe 1 我该怎么做?

Vim在Mingw上怪异的performance

在MinGW 4.6.2上我的Vim行为很奇怪,例如,在插入模式下按Backspace删除字符,但是我必须在删除的字符消失之前用箭头键移动光标,这也使我不能进入插入模式。 另外一个例子,按Del删除字符有时会产生奇怪的字符,比如将小写字母改为大写字母,或者破坏我input的下一个字符,例如按'S'会初始化'$'。 我使用Vim错误或什么? 我对Vim不是很陌生,所以我不确定这是否是默认行为,但是我所理解的典型的Vim行为就像Git Bash中的Vim,Backspace和Del在NotePad中的工作方式一样。

Emacs 23.1.50.1在Windows XP上以6-8秒的速度挂起

我有EmacsW32 23.1.50.1 emacs在我的Windows XP机器上工作。 它随机挂起5到8秒,相当令人沮丧。 任何一个有解决scheme? 我甚至尝试从gnu ftp站点使用emacs win32二进制文件(23.1),这也挂了几秒钟。 这里有一些值得注意的processmonitor日志 10:56:59.9888359下午CreateFile C:\ usr \ spool \ mail \ PATH NOT FOUND所需访问:读取数据/列表目录,同步,处置:打开,选项:目录,同步IO非警报,属性:n / a, ShareMode:读取,写入,分配大小:n / a 10:57:55.5073038 PM QueryAllInformationFile C:\ emacs.emacs.d \ auto-save-list BUFFER OVERFLOW创build时间:8/27/2009 12:51:26 PM,LastAccessTime:1/5/2010 10:54:40 PM ,LastWriteTime:1/5/2010 10:08:15 PM,ChangeTime:1/5/2010 10:08:15 PM,FileAttributes:D,AllocationSize:0,EndOfFile:0,NumberOfLinks:1,DeletePending:False,Directory :True,IndexNumber:0x1000000001f702,EaSize:0,Access:读取属性,同步,位置:0,模式:同步IO非警报,校准要求:Word

在标准C ++或C#上使用C ++ / CLI有什么好处吗?

我没有看到任何真正的优势,除了你有一个C + +语法的事实,并与它,像指针和析构函数。