从在Windows 7机器上运行的服务,我希望能够确定是否有任何交互式用户login和活跃。 这应该计算在本地或通过远程桌面login的用户。 如果用户在本地login并locking了他们的机器,那么这将被视为不活动。
我想写一个小程序,从文本文件中读取数据,然后将其导入到Windowsregistry中。 我在System.Win32.Registry包中find了Windows函数的绑定,但遇到了regSetValueEx函数的问题。 当我想导入一个数字作为一个DWORD(Word32)我无法弄清楚如何将其传递给regSetValueEx以获得所需的结果。 现在我将数字存储为TCHAR,并使用alloca和poke来获取指针。 以下是我用于testing的代码: module Main where import Foreign.Marshal.Alloc import Foreign.Storable import System.Win32.Registry import System.Win32.Types number :: TCHAR number = 42 getKey :: IO HKEY getKey = regOpenKey hKEY_CURRENT_USER "test" importFromTCHAR :: IO () importFromTCHAR = alloca $ \ptr -> do poke ptr number key <- getKey regSetValueEx key "tchar" rEG_DWORD ptr (sizeOf (undefined::DWORD)) […]
我正在尝试使用文件对话框来获取快捷方式。 这里是我的代码摘录,以说明我在做什么: IFileOpenDialog *pfod = NULL; IShellItem *psiResult; PWSTR pszFilePath = NULL; …. pfod->Show(NULL); pfod->GetResult(&psiResult); psiResult->GetDisplayName(SIGDN_FILESYSPATH, &pszFilePath); 当我在文件对话框(例如<some path>\Internet.lnkselect快捷方式时,对GetDisplayName的调用将返回快捷方式C:\Program Files(x86)\Internet Explorer\iexplorer.exe 。 我想获得快捷方式,.lnk文件的path。
我想通过检查WM_MOVE消息并使用SetWindowPos函数将窗口保持在显示界限内来防止窗口在监视器之间移动。 当我尝试这样做时,窗口短暂地闪烁鼠标的位置,并捕捉到屏幕底部的一个小区域。 我不知道为什么会发生这种情况,因为代码就像其他碰撞检测一样: case WM_MOVE: { int nX = (int)(short)LOWORD(lParam); int nY = (int)(short)HIWORD(lParam); if (nX < pDisplayDevice->getLeft()) { nX = pDisplayDevice->getLeft(); } else if (nX + int(uNormalWidth) > pDisplayDevice->getRight()) { nX = pDisplayDevice->getRight() – int(uNormalWidth); } if (nY < pDisplayDevice->getTop()) { nY = pDisplayDevice->getTop(); } else if (nY + int(uNormalHeight) > pDisplayDevice->getBottom()) { nY […]
如何使用一些命令行工具或Windows API或.NET创buildWindows用户,而无需硬编码密码,我需要一种方法来创build一个用户有一些密码,而不知道这个密码,(该程序只知道它的哈希例如) 。 例如: 任何创build具有特殊密码的Windows用户的方法都是这样的: UsersUtil.CreateUser("username", "SpIcif1c_Passw0rd"); 我需要的代码是这样的: UsersUtil.CreateUser("username", "7604905d86ed36b69a657366e5b5c35f"); //"7604905d86ed36b69a657366e5b5c35f" is the hash for SpIcif1c_Passw0rd for example 我需要这个CreateUser方法的代码或类似的东西!
我正在实现可以启动拖动事件的自定义控件。 当用户通过处理WM_LBUTTONDOWN并调用SetCapture()按下鼠标左键时,我开始拖动。 这将导致所有的鼠标事件,甚至是我的控制客户区域以外的鼠标事件都被发送到它,完全按照我的意愿。 我也想能够捕获按键,所以如果用户按下ESC键( VK_ESCAPE ),我可以取消拖动。 由于我的控件没有键盘焦点(我不希望它从拥有它的控件中窃取焦点),所以我不能听WM_KEYDOWN 。 由于其他原因太复杂解释,我也不希望使用DragDetect()函数。 当拖动正在进行时,我的控件如何findESC按键?
有没有一个Win32 API来构build一个HICON句柄,其中包含存储在内存中的像素数据的多种尺寸的图标? 我知道我可以使用CreateIconIndirect()从内存像素数据构造单个图标,但是这些图标总是只包含一个尺寸,但是我想要构造一个包含16×16,24×24,32×32,48×48和256×256图标的HICON句柄, RegisterClassEx()。 我知道我可以简单地使用一个资源图标或加载一个外部的* .ico但是这一切都不可能为我的具体情况。 我需要能够从内存像素数据构造这个多图像HICON。 我唯一想到的解决scheme是在磁盘上创build一个临时的.ico文件,然后使用LoadIcon()加载,但这不是一个好的解决scheme。 这就是为什么我想问一下,是否有一个API来从内存像素数据构build一个多图像HICON? 谢谢!
这是我一直在使用的一个问题。 我想要一个可拖动的矩形来显示用户在我的屏幕截图程序中select的区域。 我想这样做的原因是用户能够select他们想要截图的屏幕的一部分。 我已经尝试了以下方法,但很less成功: void drawRect(){ HDC screenDC = ::GetDC(0); ::Rectangle(screenDC, 200, 200, 300, 300); ::ReleaseDC(0, screenDC); } 现在,为了给这个方法应有的功劳,它确实以我期望的方式在屏幕上绘制了一个矩形,但是一旦拖动已经停止矩形的存在。 我已经看到了摆脱这种方式,如更新矩形继续显示的窗口,但我没有设法删除它。 继续这个问题,因为你必须重画矩形每个显示器刷新和矩形持续,我留下了大量的矩形画在整个屏幕上,然后我必须鼠标hover或点击任何窗口,这些画出来删除它们。
如果我们使用FSCTL_LOCK_VOLUME控制代码functionlockingUSB驱动器的容量,我们是否可以访问这个locking的卷,意味着是否可以写入二进制文件到该locking的卷?
如果用户PC \ A和PC \ B都同时login,用户A被locking,有没有办法从用户B内部以编程方式启动用户A上的应用程序,我不是说运行应用程序为用户A我的意思是实际上在用户A中运行应用程序? 任何编程语言或脚本语言都很好,但我包括C ++标签的Windows API。