Articles of c + +

错误1001:指定的服务已存在。 无法删除现有的服务

我有一个服务。 我刚刚安装了它。 我需要对服务进行更新。 我去了添加/删除程序,并寻找我的服务,并没有安装在那里。 我看着services.msc,它在那里,停下来。 我能够开始并停止它。 我以pipe理员的身份运行了一个命令提示符,运行sc delete [服务名称],并收到“指定的服务不作为已安装的服务存在”。 我在命令提示符下执行了一个sc查询,并且不返回。 我右键单击安装程序,单击卸载并收到“此操作仅适用于当前安装的产品”。 我也尝试修复,并得到相同的消息。 我重新启动了机器几次,没有运气得到这个服务卸载。 我正在使用Visual Studio安装的基本安装项目模板。 我试过改变程序的名字,并增加版本号。 如何卸载显然存在的服务,并防止将来发生这种情况?

从GetAdaptersAddresses()获取IP_ADDRESS_STRING?

GetAdaptersAddresses()将以IP_ADAPTER_UNICAST_ADDRESS格式获取地址,其格式如下: typedef struct _IP_ADAPTER_UNICAST_ADDRESS { union { struct { ULONG Length; DWORD Flags; } ; } ; struct _IP_ADAPTER_UNICAST_ADDRESS *Next; SOCKET_ADDRESS Address; IP_PREFIX_ORIGIN PrefixOrigin; IP_SUFFIX_ORIGIN SuffixOrigin; IP_DAD_STATE DadState; ULONG ValidLifetime; ULONG PreferredLifetime; ULONG LeaseLifetime; UINT8 OnLinkPrefixLength; } IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS; 似乎build议人类可读IP地址string的唯一字段是Address,它是一个SOCKET_ADDRESS结构,定义如下: typedef struct _SOCKET_ADDRESS { LPSOCKADDR lpSockaddr; INT iSockaddrLength; } SOCKET_ADDRESS, *PSOCKET_ADDRESS; 其中,反过来,使用另一种结构,SOCKADDR,定义为: 对不起,这是复杂的方式张贴在这里,因为它取决于IPv4与IPv6和Windows版本…所以这里是一个链接到定义: http://msdn.microsoft.com/en-us/library/ms740496%28v=VS.85%29.aspx 如果你还没有像我那样头晕目眩,并通过这个定义的迷宫,你可能会注意到,这是一个噩梦来检索一个IP地址的旧的虚线string样式,因为它使用GetAdaptersInfo()更容易, […]

如何捕捉窗口中的数据

我的机器上安装了一个桌面应用程序。 当我启动一个程序时,某种窗口会打开。 让我们说,这样的事情(只是例子): 所以,我想用C#编写一个应用程序,它会find这个窗口并从中捕获一些数据。 我应该看什么工具? 我想走一条阻力最小的路。 我需要从文本框中捕获图像,文本,还可以通过文本查找控件并单击它们。

在VS 2015和VS 2013上运行相同代码的问题

在Visual Studio 2013和2015中运行一段代码时,会得到两个不同的结果。 在Visual Studio 2015上,我得到一个NullReference,在2013年,它的工作方式应该如此。 此外,Visual Studio 2015在Windows 8.1和Windows 8.1上运行。 这段代码是: private static T FindParentOfType<T>(DependencyObject o) { dynamic parent = VisualTreeHelper.GetParent(o); return parent.GetType().IsAssignableFrom(typeof(T)) ? parent : FindParentOfType<T>(parent); } 代码被调用: Grid RiskGrid = FindParentOfType<Grid>(ChampViewModelSel); 错误是一个Nullreference当它检查IsAssginableFrom因为在VS2015中,它find了一个Canvas而不是在VS2013中find的希望的Grid? 堆栈跟踪 StackTrace " at Microsoft.CSharp.RuntimeBinder.SymbolTable.GetOriginalTypeParameterType(Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.AreTypeParametersEquivalent(Type t1, Type t2)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadMethodTypeParameter(MethodSymbol parent, Type t)\r\n at Microsoft.CSharp.RuntimeBinder.SymbolTable.LoadSymbolsFromType(Type originalType)\r\n at […]

用户locking屏幕的Windows消息

我正在用C ++编写老式Windows编程,我需要在我的WndProc中捕获一个表示用户已经注销或locking屏幕的事件。 更新 (谢谢David Hefernan)我到处search,但唯一发现的是WM_ENDSESSION消息 – 它不处理屏幕locking事件。 任何人都知道这是怎么做的? 我需要通过Windows XP的风格将其应用到Windows 2000。

C Windows缓冲区大小

在Windows让我说我使用recv函数从套接字接收数据。 我很好奇最佳缓冲区有多大? 我可以使它成为1024字节,或者我可以使它成为51200字节或更大。 我想知道哪一个会更好的performance。 这不仅适用于recv函数,让我说读一个大的文本文件,我想要一个非常大的缓冲区,或更小的缓冲区?

用于远程Web服务的Windows虚拟磁盘

我需要在Windows资源pipe理器中实现一个可视化为独立磁盘设备的Windows虚拟磁盘,并将所有文件/目录传输到远程WebService – 像DropBox一样。 我必须实现/使用内核驱动程序SDK吗? 还是只能使用shell扩展? 我需要的是截取该磁盘上的所有文件/目录操作,并将它们映射到相应的WebService调用(文件创build/删除/移动/编辑和数据传输)。 谢谢

从一个Windows服务打开一个对话窗口

我已经在C#中创build了一个Windows服务应用程序,以特定的时间间隔popup一个对话窗口。 在Visual Studio中debugging时,它运行良好。 然后我创build了一个安装设置。 但是安装完服务之后不会popup对话窗口。 这将是什么原因,我该如何解决?

跨越多个窗口的Perisistant窗口10个虚拟桌面?

我有C#WPF程序与多个窗口。 我已经添加了对Windows 10桌面的支持,但用户希望在桌面之间移动时,一些窗口仍然保留在屏幕上。 例如,如果窗口A在第一个桌面上打开,并且他们翻转到第二个桌面,他们希望窗口A保持在新桌面上的相同位置。 我知道的唯一function是来自VirtualDesktopManager: GetWindowsDesktopId() IsWindowOnCurrentVirtualDesktop() MoveWindowToDesktop() 有没有办法做到这一点? 还有一种方法来检测桌面翻转已启动? 因为如果是这样,我总是可以调用IsWindowOnCurrentVirtualDesktop(),如果答案是否定的,我可以调用MoveWindowToDesktop()来放置它。 似乎有点破解,但如果我有办法检测到桌面的变化将完成工作。

读取audiostream到输出设备

我很好奇是否有办法读取正在发送到audio输出的数据。 我的最终目标是捕捉audio,然后通过串行发送audio处理。 我正在使用Windows计算机。 似乎让这更难的事情是,我没有读取捕获的麦克风input,而是stream式扬声器输出。 有人可以帮我吗?