Articles of 窗口

有些使用WSASend的OVERLAPS没有及时使用GetQueuedCompletionStatus返回?

背景:我正在使用CreateIoCompletionPort,WSASend / Recv和GetQueuedCompletionStatus在我的服务器上执行重叠套接字io。 对于stream量控制,当发送给客户端时,只有当所有挂起的OVERLAPspopupIOCP时才允许调用几个WSASend()。 问题:最近,OVERLAPs没有返回到IOCP时出现了occassions。 调用GetQueuedCompletionStatus的线程不会获取它们,它们将保留在我的本地待定队列中。 我已经validation客户端接收到的数据从套接字和套接字连接。 调用WSASend()时,不会返回任何错误。 没有像以下这样的外部刺激,OVERLAPs只是“永不”回来: 断开与客户端或服务器的套接字,立即允许GetQueuedCompletionStatus线程检索OVERLAPs 在所有OVERLAPs突然从队列中popup之前,对WSASend()进行额外的调用,有时需要几个。 问:有没有人看过这种types的行为? 任何想法是什么造成这个? 谢谢,杰弗里

读取一个Windows * .dmp文件

我想知道是否有人知道如何在应用程序崩溃后编写C / C ++打开一个Windows * .dmp文件。

不能加载这样的文件 – ruby​​-wmi(LoadError)&不能加载这样的文件 – win32 / service(LoadError)

我没有安装下面提到的ruby的东西 当我尝试执行厨师客户,我收到下面提到的错误 c:\RubyDevKit>chef-client C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file — ruby-wmi (LoadError) from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef/provider/env/windows.rb:20:in `<top (required)>' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef/providers.rb:49:in `<top (required)>' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef.rb:25:in `<top (required)>' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/bin/chef-client:23:in `<top (required)>' from C:/Ruby193/bin/chef-client:23:in `load' from C:/Ruby193/bin/chef-client:23:in `<main>' […]

Windows控制台程序stdout在使用pipe道redirect时被缓冲

我有一个长期运行的服务器程序(比如程序A),它是用QT / c ++编写的。 该程序是不是很稳定,所以我决定写一个python脚本来重新启动它,如果它崩溃。 问题是程序可能开始失败(如果我给它一个使用中的端口),打印错误,然后挂在那里没有退出,所以我必须监视程序的标准输出,并在失败的启动时杀死它。 这是我的最终代码(呃,其实这是好的,你可以忽略它): self.subp = subprocess.Popen( r'.\A.exe -server %d' % portnum, stdout=subprocess.PIPE, bufsize=1) for line in iter(self.subp.stdout.readline, ''): print(line, end='') 但我发现我不能从subprocess的标准输出读取任何东西,readline方法只是阻止那里,如果我杀了一个进程,python脚本只是退出没有任何输出。 在一开始,我认为这是一个subprocess模块的问题,但经过一些testing,我发现它不是。 如果我用一些其他的Windows控制台程序replaceA.exe命令行,ping -t例如,一切工作正常。 所以我认为这可能是A程序的问题。 幸运的是,我有A的源代码,这里是一个输出处理: printf("Server is starting on port %u\n", Config.ServerPort); if(server->listen()) printf("Starting successfully\n"); else printf("Starting failed!\n"); 经过一些search,我添加fflush(stdout); 到这段代码的末尾,重build程序,现在它工作 所以我的问题是,我还是不明白,原来的A程序代码有什么问题? 不用强制刷新,它可以在程序启动后立即在Windows控制台中正确打印这些string。 为什么在输出上使用pipe道时输出缓冲? 我在标准c实现读取,输出将自动刷新换行,但为什么不在我的情况? 这是一个Windows的问题,或编译器的问题? A程序是用QT / C ++编译的,QT版本是4.7.4(x32),C ++编译器是用QT(GCC […]

在Windows WPF中垂直最大化

我正在WPF应用程序上工作,并在窗口周围添加了一个清晰的边框,以便可以从主窗口外部resize。 我已经覆盖了MINMAXINFO ,如下所示。 用下面的代码,当我做一个规则最大化你不能看到不可见的边框。 但是,当我尝试垂直最大化时(通过将窗口的顶部拖到屏幕的顶部),会显示不可见的边框。 我试图捕捉所有的消息,我找不到一个单独的消息垂直最大化。 如何删除这种情况下的不可见边框? private static void WmGetMinMaxInfo(System.IntPtr hwnd, System.IntPtr lParam) { MINMAXINFO mmi = (MINMAXINFO)Marshal.PtrToStructure(lParam, typeof(MINMAXINFO)); // Adjust the maximized size and position to fit the work area of the correct monitor int MONITOR_DEFAULTTONEAREST = 0x00000002; System.IntPtr monitor = MonitorFromWindow(hwnd, MONITOR_DEFAULTTONEAREST); if (monitor != System.IntPtr.Zero) { MONITORINFO monitorInfo = new MONITORINFO(); […]

使用Python进行Windows进程pipe理

我需要一个脚本来检查一个特定的进程是否正在运行,如果找不到,就返回一些东西。 我知道这可以使用subprocess完成,但有一个更简单的方法来做到这一点?

我想在特定的航空窗口上禁用阴影效果

我想在特定的航空窗口上禁用阴影效果。 我所拥有的就是这个窗口的HWND,这可能吗?

searchWindows 7中的PHP文件的内容

我花了很长时间寻找一种方法来search在Windows 7中的一些我的PHP文件的短语。 我所做的事情包括: 在Windows资源pipe理器中启用“总是search文件名和内容” 在索引选项中的“索引属性和文件内容以启用内容search”列表中添加php; 确保目录被索引; 确保我拥有该目录的权限(C:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ htdocs)。 还有什么我应该尝试? 这甚至有可能在Windows 7中做到这一点? 如果没有,我将不得不安装Cygwin,我现在不愿意这样做。

使用纯c ++或java设置文件夹权限

我正在维护一个使用J2SE开发的软件,(但是我是c#开发人员,实际上没有Java的丰富经验)。 该软件使用访问作为数据存储,这个访问数据库存储在数据库文件夹。 当用户从“标准用户”而不是pipe理员安装此应用程序时,在Windows 7或Vista中,他无法获得数据库文件夹的权限。 为了使软件运行,我们需要为当前用户(标准用户)添加“修改”权限。 其实我search了如何使用Java,但没有发现什么,但我find了一点资源,但还不够。 问题是“我怎样才能授予'修改'权限到当前logging的用户,在c + +(旧c + +不是.net)或使用Java)?

Windows的页面故障监视器

有没有在运行时显示的工具,每个线程的页面错误增量? 基本上我有一个应用程序,导致大量的页面错误,我想确定导致最大的线程。