如何以厘米或英寸为单位显示显示尺寸?
此代码并不总是正常工作:
HDC hdc = CreateDC(_T("DISPLAY"),dd.DeviceName,NULL,NULL);
int width = GetDeviceCaps(hdc, HORZSIZE);
int height = GetDeviceCaps(hdc, VERTSIZE);
ReleaseDC(0, hdc)
Run Code Online (Sandbox Code Playgroud)
特别适用于多显示器配置.
更新:我需要获得普通显示器的大小,它具有恒定的物理尺寸.
似乎这些代码片段的行为应该相同:
if (Monitor.TryEnter(lockObject))
{
try
{
DoSomething();
}
finally
{
Monitor.Exit(lockObject);
}
}
Run Code Online (Sandbox Code Playgroud)
bool lockAcquired;
try
{
Monitor.TryEnter(lockObject, ref lockAcquired);
if (lockAcquired)
{
DoSomething();
}
}
finally
{
if (lockAcquired)
{
Monitor.Exit(lockObject);
}
}
Run Code Online (Sandbox Code Playgroud)
我从MSDN文档中看到有关带ref bool参数的重载:
如果因为抛出异常而未执行锁定,则在此方法结束后,为lockTaken参数指定的变量为false.这允许程序在所有情况下确定是否有必要释放锁.
但文档还指出,仅使用object参数的重载不会引发除例外之外的任何异常ArgumentNullException.因此,它好像如果一个例外是在代码片段抛出1以上,它只能是因为lockObjectIS null,在这种情况下没有作出锁定(并TryEnter会一直返回false)反正,所以Monitor.Exit就没有必要了电话.
很明显,他们不会毫无理由地引入这种过载.那么该Monitor.TryEnter(object, ref bool)方法的目的是什么?
如何不断检查变量值.例如:
if(variable == 'value'){
dosomething();
}
Run Code Online (Sandbox Code Playgroud)
如果我经常循环它或其他东西,这将有效,但是一旦变量设置为该值,是否有一种有效的触发方法?
我一直在寻找从我的程序中调整Windows平台上的屏幕.我知道有一个允许这样的SetMonitorBrightness API,但对我来说问题是能够在Windows XP上调暗屏幕(该API不支持)以及桌面计算机上的调暗屏幕也会很好.
所以我做了一些研究,发现这个实用程序似乎在没有问题的情况下使我的屏幕在Windows XP桌面上变暗.我试图联系作者,了解他们如何实现调光器,但我没有收到他们的回复.
所以我很想知道这个网站上的开发人员,当你不支持SetMonitorBrightness API时,你认为他们如何设法调暗屏幕?
PS.我是一名新手开发者,我自己也在尝试为我们的小企业编写节能计划.它是一个非营利组织,我们没有资金聘请Windows开发人员为我们这样做.我们的大多数计算机都是Windows XP桌面,因此您可以看到我无法使用SetMonitorBrightness API,因为它在Web上被广泛记录.
提前致谢.
我想在执行zipManager.makeZip()时显示ajaxStatus ...直到下载开始.如果ajax = false,则文件下载有效,但不显示ajaxStatus.如果ajax = true,则显示ajaxStatus但下载不起作用!
知道如何让ajaxStatus和fileDownload一起工作.
提前致谢
KEM
<h:form id="form">
<p:commandLink id="download" value="Download"
onstart="showStatus()" oncomplete="hideStatus()"
actionListener="#{zipManager.makeZip()}">
<p:fileDownload value="#{zipManager.zip}"/>
</p:commandLink>
</h:form>
<p:ajaxStatus id="status" widgetVar="st" style="position:fixed;right:50%;bottom:50%">
<f:facet name="start">
<p:graphicImage value="images/wait.gif" />
</f:facet>
</p:ajaxStatus>
Run Code Online (Sandbox Code Playgroud) 我们目前正在开发主要应用程序的新版本.我真正想要做的一件事就是为多台显示器提供支持.我们的目标用户越来越多地将第二个屏幕添加到他们的桌面,我认为我们的产品可以利用这些额外空间来提高用户性能.
我们的应用程序是一个金融包,支持租赁和车队公司 - 一个非常专业的市场.话虽这么说,我相信很多拥有多台显示器的人都有他们认为可以改进的软件,如果它能更好地支持这些额外的屏幕.
我正在寻找关于您使用当前软件的那些琐事的一些意见,以及您认为如何改进它们以支持多显示器设置.我的目标是回顾这些并决定如何实现它们,并希望为我的用户提供更好的环境.
非常感谢您的帮助.谢谢.
我正在使用WMI Win32_MonitorDesktop获取系统上的所有监视器信息.
但是它只返回一个.我在几台计算机上试过它,它们肯定有多个显示器,连接和工作.
ManagementObjectSearcher monitorObjectSearch = new ManagementObjectSearcher("SELECT * FROM Win32_DesktopMonitor");
foreach (ManagementObject monitor in monitorObjectSearch.Get())
{
Debug.WriteLine(monitor["Description"]);
}
Run Code Online (Sandbox Code Playgroud)
有谁知道为什么我只返回1台显示器?
另外,如果我将monitorObjectSearch.Get()的返回值赋给变量,我无法在立即窗口中计算Count属性,因为该函数总是超时.
看看这个API文档页面 ......
任何人都可以向我解释MONITORINFO结构的rcMonitor和rcWork组件之间的区别吗?虽然我很高兴看到一个窗口有你无法使用的区域(例如标题),但我真的不知道这对监视器有何影响......
感谢所有的贡献......
马丁
是否有Windows API来检测笔记本电脑盖是否关闭(=集成的笔记本电脑屏幕是否关闭)?
已经提出了"相同"的问题:
获取当前的笔记本电脑盖状态
虽然(自我)接受的答案依赖于移除集成屏幕"设备",但盖子关闭时.但这并不是所有笔记本电脑都会发生的.有些屏幕保持屏幕"可用"(即使实际上没有显示任何内容),即使盖子关闭也是如此.这意味着Windows桌面仍然会在关闭的屏幕上延伸(如果"多个显示"设置设置为"扩展这些显示").
我还没有确定,是否可以配置此行为或是否特定于驱动程序:
从Windows桌面删除已关闭的笔记本电脑屏幕
但即使在这样的系统上,操作系统也知道盖子关闭,因为它可以关闭/睡眠机器.并播放通知(WM_POWERBROADCAST):
检测笔记本电脑盖关闭和打开
背景:我有一个应用程序从同一个显示器开始,最后一次关闭.如果在集成的笔记本电脑屏幕上关闭并且下次启动应用程序时关闭盖子(因为用户现在正在使用外部显示器),我的应用程序将从现在不可见的集成笔记本电脑屏幕开始.
因此,我想检测盖子是否关闭,并将应用程序强制到外部显示器上.
所以我正在寻找一种方法来检测,如果盖子关闭.或者为了检测某个特定屏幕关闭的方式(什么是更清洁的解决方案).