Articles of winapi

子对话框 – SetWindowTextA或SendMessageA崩溃程序 – MFC

错误:afxwin2.inl行165 我的应用程序是一个有几个编辑框的对话框。 一旦我点击button来评估input的信息,我想打开一个子对话框来显示结果。 我试图像这样重载DoModal(): //in the child dialog //.h CResultsDlg::CResultsDlg(CParentDlg *parent); virtual INT_PTR DoModal(float bmi); //.cpp CResultsDlg::CResultsDlg(CParentDlg *parent) : CDialogEx(CResultsDlg::IDD), _parent(parent) { //initializations } INT_PTR CResultsDlg::DoModal(float bmi) { m_sBMI.Format("%f", bmi); m_hBMI.SetWindowTextA(m_sBMI); //crashes !!!!!!!!!! m_hBMI.SendMessageA(WM_SETTEXT, 0, (LPARAM)"15.11"); //crashes !!!!!!!! // OnInitDialog(); //because this wasn't getting called at all return CDialogEx::DoModal(); } BOOL CResultsDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // […]

为什么GetSystemMetrics()返回这些值?

我有一些问题创build一个设置大小的客户区。 AdjustWindowRect()将无法正常工作,所以我决定尝试手动计算窗口的宽度和高度。 那也不pipe用,我想知道为什么我检查了我曾经考虑过的边界等值 #include <iostream> #include <Windows.h> int main(void) { std::cout << "GetSystemMetrics(SM_CYEDGE) = " << GetSystemMetrics(SM_CYEDGE) << std::endl; std::cout << "GetSystemMetrics(SM_CXEDGE) = " << GetSystemMetrics(SM_CXEDGE) << std::endl; std::cout << "GetSystemMetrics(SM_CYBORDER) = " << GetSystemMetrics(SM_CYBORDER) << std::endl; std::cout << "GetSystemMetrics(SM_CXBORDER) = " << GetSystemMetrics(SM_CXBORDER) << std::endl; std::cout << "GetSystemMetrics(SM_CYCAPTION) = " << GetSystemMetrics(SM_CYCAPTION); std::cin.get(); } […]

简单的方法来挂接特定进程的registry访问

有一个简单的方法来挂钩我的代码执行的进程的registry访问? 我知道SetWindowsHookEx和朋友,但它太复杂了…我仍然有希望,有一种简单的Unix LD_PRELOAD …

如何将parameter passing给DLL初始化(例如,当通过LoadLibrary加载)?

如何将parameter passing给通过LoadLibrary加载的DLL的初始化函数? 有没有可能? 没有诉诸某种导出的function或共享内存,即是。

模拟一个监视器,并获得在Windows上的videostream

有没有办法让我以编程方式在Windows中设置假监视器并从中获取videostream? 有没有什么在win32 API允许我这样做? 谢谢

文件大小 – 磁盘上使用的实际字节数(未分配)

可能重复: 获取磁盘上文件的大小 有没有一种方法来检索磁盘上使用C#/ windows的特定文件的实际字节数? 我的应用程序实现了“监视”文件夹,类似于FileSystemWatcher。 共享存储(networking和光纤通道SAN)上有一些监视文件夹,本地连接的存储上有其他监视文件夹。 通过完全不受我控制的进程将文件复制到监视文件夹中,大小从1 GB到大于500 GB。 由于共享文件系统的性质,希望在“独占”(FileMode.Open,FileAccess.Read,FileShare.None)打开文件时出现exception也不起作用。 这些监视文件夹不应该采取行动,直到一个文件被完全复制/closures,否则下游会出现问题。 为了获得磁盘上使用的“真实”文件大小,我尝试过: System.IO.FileInfo GetFileSizeEx(kernel32 p / invoke) FindFirstFileEx(kernel32 p / invoke) GetCompressedFileSize&GetDiskFreeSpace(kernel32 p / invoke) 任何build议将非常感激。 看来我正在处理Windows操作系统的限制?

dpinst.exe在Windows 7中的行为与标准的用户权限

我在我的驱动程序包中使用dpint.exe。 我正在面对Windows 7 64位操作系统下面提到的情况。 启用UAC后,它将在pipe理员模式(具有pipe理员权限的用户),标准用户模式和访客模式下按预期工作。 (即,在标准用户模式和访客模式下提示要求pipe理员密码的窗口)。 当UAC被禁用时,在pipe理员模式下(具有pipe理员权限的用户),它“从不”显示任何窗口,说“你想让下面的程序改变这台电脑”。 (这种行为也是一个预期的!)“,但在标准的用户模式,当我点击驱动程序安装程序可执行文件(内部调用dpinst.exe)系统挂起,当我试图重新启动它说一个后台进程正在运行,做你如果上面的问题是由于“Dpinst.exe需要pipe理员权限”,为什么Windows没有显示警告消息,而是被绞死? ? 以及如何告诉用户更改为pipe理员继续安装..

如何使用callback示例vc实现icmpsendecho2asynchronous

我需要使用ApcRoutinecallback例程asynchronous使用IcmpSendEcho2 API命令。 我有一个问题是我需要定义的ApcRoutinecallback例程的签名是什么样的? 当我打电话给IcmpSendEcho2第三个参数是什么样的? 我有15个代理请求被发送。 我只能用IcmpSendEcho2请求一次或多次。 如果我需要一次发送多个IcmpSendEcho2请求。 callback函数ApcRoutine如何知道哪个IcmpSendEcho2调用完成。 我猜这是ApcContext参数进入的地方? 我无法findMSDN或其他地方的任何示例代码,演示如何asynchronous使用IcmpSendEcho2命令。

枚举像alt-tab这样的窗口

我正在创build一个替代Vista的替代品,但我列出了所有活动的程序的一些问题。 我使用EnumWindows来获取Windows列表,但是这个列表是巨大的。 当我只有10个窗户打开时,它包含约400个项目。 这似乎是每一个控制和许多其他的东西的好处。 所以我必须以某种方式过滤这个列表,但是我不能像alt-tab那样完全做到这一点。 这是我现在用来过滤列表的代码。 它工作得很好,但我得到了一些不需要的窗口,如Visual Studio中的分离工具窗口,我也想念iTunes和Warcraft3这样的窗口。 private bool ShouldWindowBeDisplayed(IntPtr window) { uint windowStyles = Win32.GetWindowLong(window, GWL.GWL_STYLE); if (((uint)WindowStyles.WS_VISIBLE & windowStyles) != (uint)WindowStyles.WS_VISIBLE || ((uint)WindowExStyles.WS_EX_APPWINDOW & windowStyles) != (uint)WindowExStyles.WS_EX_APPWINDOW) { return true; } return false; }

IOError:尝试以“w”模式打开隐藏文件时,权限被拒绝

我想replace一个隐藏文件的内容,所以我试图以w模式打开它,所以它会被删除/截断: >>> import os >>> ini_path = '.picasa.ini' >>> os.path.exists(ini_path) True >>> os.access(ini_path, os.W_OK) True >>> ini_handle = open(ini_path, 'w') 但是这导致了一个回溯: IOError: [Errno 13] Permission denied: '.picasa.ini' 不过,我能用r+模式达到预期的效果: >>> ini_handle = open(ini_path, 'r+') >>> ini_handle.truncate() >>> ini_handle.write(ini_new) >>> ini_handle.close() 问: w和r+模式之间有什么区别,这样一个人有“权限被拒绝”,但另一个工作正常吗? 更新:我使用Python 2.6.6在win7 x64上,并且目标文件有其隐藏的属性集。 当我尝试closures隐藏属性时, w模式成功。 但是当我把它重新打开,它再次失败。 问:为什么w模式在隐藏文件上失败? 这是已知的行为?