Articles of winapi

任务pipe理器是Windows 10的一个特殊的“总是在最前面”窗口?

如果我的窗口具有“始终在最上面”的扩展样式集,那么我认为它是所有没有“始终在最前面”样式集的窗口的顶部,以及那些具有“总在最前面”样式集的窗口但在我的窗口被激活之前被激活。 为了testing这个function,我打开任务pipe理器窗口 – 将其设置为始终在上面,然后打开我的窗口( myWindow )。 在Windows 7中,我观察预期的行为 – myWindow在任务pipe理器之上。 但是,在Windows 10中,情况并非如此。 任务pipe理器“始终在其他窗口的顶部”,即使这些窗口本身具有“始终在最前面”样式集。 Windows 10中的任务pipe理器有什么特别之处吗? 如果是的话,是否有一些工作将我的窗口放在任务pipe理器的顶部? 我试图简单地使用BringWindowToTop函数,但不起作用。 setWindowPos和HWND_TOP都不会作为hWndInsertAfter参数的值。

如何显示未注册文件扩展名的“打开方式”对话框?

我想让用户为当前未注册的文件扩展名select一个关联(打开)。 目前我告诉API通过使用ShellExecute打开文件,它返回一个ERROR_NO_ASSOCIATION错误代码。 有没有办法告诉API它应该让用户select一个新的关联?

为什么最大化的Delphiforms比GetSystemMetrics值宽8个像素?

如果我最大化一个delphi窗体的宽度和高度值是8个像素,相应的GetSystemMetrics SM_CXSCREEN和SM_CYSCREEN? 例如: 当我右键单击我的屏幕,并获得属性我有一个1680 X 1050屏幕分辨率。 这些是从GetSystemMetrics(SM_CXSCREEN)和GetSystemMetrics(SM_CYSCREEN)返回的相同值。 当我在Delphi应用程序中最大化表单时,我得到了1688的宽度和1058的高度。有8个像素的差异。 是什么导致这种差异?

在“locking”屏幕后面会发生什么?

我一直在研究Windows自动化和监控。 当我locking一台Windows机器的屏幕时究竟发生了什么? 目前我正在使用Windows 7,如果切换到Vista或服务器版本,行为是否有很大差异? 还有一个可以通过api访问的桌面吗? 我知道我仍然可以发送按键和鼠标点击到特定的窗口(通过ControlSend和ControlClick ),但似乎没有“桌面”本身。 是否有人能够对这件事情有所了解,或者将我指向一个可读的来源,在那里我可以概览这个话题?

当Windows被locking时取得桌面屏幕截图(Win + L)

我想在Windowslocking的情况下(Win + L)截取桌面。 标准方法制作黑屏,像素代码: COLORREF color = GetPixel(hdc, x, y); 等于-1。 用户模式程序和服务都不能捕获有用的图像。 有任何想法吗?

Vim:Windows下terminal的编码(Unicode)

我不知道为什么,但是这个话题似乎被logging得很差,而且有争议,因为没有人知道真正的答案(除了也许很less有人回答的穆勒纳尔先生之外)。 所以基本上我在这里提出了一个讨论,并且很快就死了,可能是因为在Windows上没有太多人在terminal模式下使用Vim。 我的编码设置如下所示: if has('multi_byte') if empty(&termencoding) let &termencoding = &encoding endif let &encoding = 'utf-8' let &fileencoding = 'utf-8' endif 当然,我在GVim下运行也没有问题:可以input任何字符,我修补的Powerline的Consolas工作得很好。 当我尝试在terminal模式下运行Vim时,问题就开始了。 我使用ConEmu ,一个function丰富的Windowsterminal模拟器。 它声称正式支持Unicode的开箱即用。 例如,我可以运行以下testing脚本: chcp 65001 & (cmd /c type "%~dpn0.cmd") & pause & goto :EOF English: texts, web pages and documents Graves,etc: à á â ã ä å æ ç è […]

Delphi – CreateProcess – 执行多个命令

我想用CreateProcess()调用来实现以下function: 更改为svn工作副本 执行svn命令 将输出传输到文件 我用下面的函数试试这个 procedure TQPortMainForm.CmdMigrationClick(Sender: TObject); var StartInfo: TStartupInfo; ProcInfo: TProcessInformation; CreateOk: boolean; input: String; begin { fill with known state } FillChar(StartInfo, SizeOf(TStartupInfo), #0); FillChar(ProcInfo, SizeOf(TProcessInformation), #0); StartInfo.cb := SizeOf(TStartupInfo); //debug input := 'D: && cd D:\Qport\trunk\Qport\ && ' + SVN_PATH + ' log > C:\users\PhilippKober\UNIQUE_NAME_BLUB.txt'; CreateOk := CreateProcess(nil, PChar(input), nil, nil, […]

为什么当memset等已经有ZeroMemory等存在?

为什么在C标准库中有memset和相关的调用时,WindowsMemory中存在ZeroMemory和类似的调用? 我应该打给谁? 我可以猜到答案是“依赖”。 什么?

recursion文件search

我试图找出如何处理这个东西了出于某种原因,它在某个时候结束..我不是很好的recursion,我敢肯定,问题在于那里.. 此外,即使我检查cFileName!=“..”,它仍然显示在最后,不知道为什么,但“。” 不再显示了 void find_files( wstring wrkdir ) { wstring temp; temp = wrkdir + L"\\" + L"*"; fHandle = FindFirstFile( temp.c_str(), &file_data ); if( fHandle == INVALID_HANDLE_VALUE ) { return; } else { while( FindNextFile( fHandle, &file_data ) ) { if( file_data.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY && wcscmp(file_data.cFileName, L".") != 0 && wcscmp(file_data.cFileName, L"..") != 0 […]

如何授权/拒绝使用Python对Windows上的目录进行写入访问?

我希望能够授权或拒绝对Windows XP和更多的特定目录的写权限。 我尝试了以下,他们都不工作: os.chmod() :只能指定文件的只读属性,请参阅Python的文档 win32api.SetFileAttribute() FILE_ATTRIBUTE_READONLY:一个只读的文件。 […]这个属性不符合目录 ,请参阅MSDN的SetFileAttribute 它看起来像我唯一的select是访问和更新目录的“ 安全信息 ”,我已经尝试了几个小时得到的东西没有太多的成功(我真的不熟悉Win32 API)完成。 任何想法如何做到这一点?