Articles of winapi

如果我处理了工作的一个窗口,如何处理工作

我的应用程序试图刮IE8,在这里我们以某种方式获取HANDLE Internet Explorer窗口/用户界面。 现在我想得到IE8的工作处理。 一个想法是 – 确定使用IE Window HANDLE使用GetWindowThreadProcessId()的第一个进程ID,但在此之后,我卡住了。 在IE8中有新的实现,这里打开的每个选项卡都是一个作业中的一个进程。 因此,我们所看到的IE8被视为一项工作。

WinAPI – 将文本追加到编辑框的问题

我用多行编辑控件创build了一个简单的窗口: Edit = CreateWindowEx(WS_EX_CLIENTEDGE, TEXT("EDIT"), NULL, WS_CHILD | WS_VISIBLE | ES_MULTILINE, 20, 200, 200, 200, hWnd, (HMENU)EDIT, GetModuleHandle(NULL), NULL); 如果我使用WM_SETTEXT消息设置文本,我不会得到错误,但是如果我使用EM_REPLACESEL我得到错误5(ERROR_ACCESS_DENIED): SendMessage(GetDlgItem(hWnd, EDIT), EM_REPLACESEL, 0, (LPARAM)TEXT("\r\nSome text")); if (GetLastError()) { /* Error 5 ERROR_ACCESS_DENIED */ } 与EM_SETSEL同样的问题: SendMessage(GetDlgItem(hWnd, EDIT), EM_SETSEL, (WPARAM)(0),(LPARAM)(-1)); SendMessage(GetDlgItem(hWnd, EDIT), EM_REPLACESEL, 0, (LPARAM)TEXT("\r\nSome text")); if (GetLastError()) { /* Error 5 ERROR_ACCESS_DENIED */ } […]

如何自定义Windowsshell以显示远程源文件并允许自定义绘图?

是否有可能,(通过一些shell扩展或类似的)自定义Windowsshell(explorer.exe)来完成以下? 在导航到预定义path时进行设置: 绘制其表面 – 自定义背景,甚至为数据input添加自定义表单 显示基于提供的“虚拟”path的自定义列表视图项目(类似于浏览器在浏览FTP资源库时所做的事情 – 显示的项目不是本地文件夹的内容,而是物理上位于FTP服务器上的一些“虚拟”项目) 这个想法是重用资源pipe理器的面貌和导航元素,而不必重新实现整个function,并使其在远程文件浏览器的所有Windows版本(文件列表+由自定义Web服务单独提供的文件)上看起来都是原生的。

Windows Vista +内存问题与IFileOpenDialog和大堆栈

我在Windows Vista及以上版本中遇到过一个奇怪的问题。 当我用大堆栈使用IFileOpenDialog时,显示对话框后剩余的内存量下降了大约一千兆字节。 #include <windows.h> #include <Shobjidl.h> #include <iostream> void memGrab(char *); int main(int argc, char **argv){ char Message[128]; CoInitialize(NULL); if(argc > 1){ wsprintf(Message, "Starting Memory Test: %c", argv[1][0]); std::cout << Message << "\n"; if(argv[1][0] == 'b') memGrab("before"); TCHAR *fileName = (TCHAR *)malloc(sizeof(TCHAR) * 1024); IFileOpenDialog *pfd; int index = 0; int len = 0; […]

关于Microsoft的string安全function

WCHAR* someString = L"SomeString\n"; WCHAR s1[MAX_PATH]; // I'm sure this is right code. StringCchCopyW(s1, _countof(s1), someString); // But I'm not sure about these example. StringCchCopyW(s1 + 100, _countof(s1) – 100, someString); // Is it right? StringCchCopyW(s1 + 100, _countof(s1), someString); // Is it right? // How about these? StringCchCatW(s1, _countof(s1) – wcslen(s1), someString); // Is […]

将程序设置为通过registry自动运行

我有以下代码: http : //privatepaste.com/8364a2a7b8/12345 但它只写“C”(据说,转换为LPBYTE只留下一个字节)。 什么是正确的方式来处理GetModuleFileName和registry编辑?

如何以编程方式导致创build用户的configuration文件

如何以编程方式从WinServer 2008 r2的NetworkServices帐户创build用户的configuration文件。 THX,Alex

“默认缩放级别”鼠标button

许多鼠标和键盘上都有“缩放”button。 这些几乎总是生成Ctrl +鼠标滚轮信息到应用程序,所以他们很容易由我们的程序员说明。 但我目前的罗技鼠标有一个额外的function。 当滚动(或者实际上是倾斜的)时,变焦轮确实发送了Ctrl +鼠标滚轮信息,但是当我按下变焦轮时,大多数程序将缩放级别恢复到默认值,即100%。 在这种情况下,鼠标发送给应用程序的是什么样的消息? 我找不到合适的虚拟键码 。 我应该说,我试图抓住这个事件。 在我的Delphi应用程序中,我为KeyDown , MouseDown和MouseWheel事件编写了处理程序,但不是由这个神秘button触发的。 支持这个button的应用程序: Google Chrome 5.0.375.127 Microsoft Word 2010 似乎不支持此button的应用程序: Windows 7中的Microsoft写字板 Windows 7中的Microsoft Paint

Win32:匿名pipe道上的事务

TransactNamedPipe函数的文档声明:“此参数也可以是由CreatePipe函数返回的匿名pipe道的句柄”。 这意味着可以在匿名pipe道上使用事务。 据我所知,交易是读/写操作,匿名pipe道是读或写 – 这对我来说没有意义。 是否真的有可能使用匿名pipe道进行交易? 如果是的话,怎么样? 例如,从调用CreatePipe获得的两个句柄中的哪一个应该传递给TransactNamedPipe?

如何在InitializeObjectAttributes()中使用SECURITY_DESCRIPTOR

有人可以提供一个在InitializeObjectAttributes()中使用SECURITY_DESCRIPTOR的例子吗? 我打算用NtCreateKey()来使用它们。 我在互联网上找不到任何例子。 提前致谢。