!为简化起见,我将Windows应用程序(也称为Metro或Modern UI)称为"app",将常用桌面应用程序称为"应用程序"!
我相信对于已经在市场上建立应用程序的开发人员来说,这仍然是关于应用程序开发最不明确但最重要的问题之一:如何在Windows 8系统上管理应用程序和应用程序之间的通信?(请不要就原则开始辩论 - 真的需要这么多用例!)
在过去的几天里,我基本上阅读了文章的内容,但仍然不清楚如何从第一次开始就这样做.主要是因为我发现了几个相互矛盾的信息.我的问题在这里,我想从最终的Windows 8可能性的角度重新解决这个问题.
鉴于情况:
现在"简单"的问题是,如何实现这一目标?
关于这个主题有一些关于SO的讨论,但是大多数都不是最新的,因为MS在发布Windows 8的最终版本之前发生了很大的变化.而不是混合新的和新的信息我想要为我和所有其他Windows应用程序和应用程序开发人员找到这个问题的明确和当前的答案.谢谢!
重现步骤:
TPanel到新的VCL表单并进行设置Align = alClient.TSpeedButton到面板并将一些bmp图像分配给Glyph属性.(可选但使得它更清晰:Flat = True)TSpeedButton将闪烁的图像.我阅读了很多关于消除闪烁的内容,但这些建议似乎都不适用于TSpeedButton:
DoubleBuffered财产WS_EX_COMPOSITED不能设置,因为它不是一个TWinControl而是一个TGraphicControlWM_ERASEBKGND 消息未收到如果它有任何重要性,我实际上正在使用TPngSpeedButton,但由于实际问题在于TSpeedButton,我在示例中使用它.
这有什么解决方案吗?
编辑:由于某种原因,到目前为止没有人能够重现这一点,所以为了确保它不是我的描述,这里是dfm:
object Form1: TForm1
Left = 0
Top = 0
Caption = 'Form1'
ClientHeight = 337
ClientWidth = 635
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False …Run Code Online (Sandbox Code Playgroud) 在我的Delphi应用程序中,我想使用Microsoft Windows网络列表管理器API(NLM)了解网络更改:http://msdn.microsoft.com/library/ee264321
我查看了链接的"如何注册NLM事件"示例并将其翻译为Delphi.但是,我不知道如何继续这样做.
var
pNLM: INetworkListManager;
pCpc: IConnectionPointContainer;
pConnectionPoint: IConnectionPoint;
pSink: IUnknown;
dwCookie: LongInt;
const
IID_IConnectionPointContainer: TGUID = '{B196B284-BAB4-101A-B69C-00AA00341D07}';
IID_IUnknown: TGUID = '{00000000-0000-0000-C000-000000000046}';
begin
if Succeeded(CoCreateInstance(CLASS_NetworkListManager, nil, CLSCTX_ALL, IID_INetworkListManager, pNLM)) then
begin
if Succeeded(pNLM.QueryInterface(IID_IConnectionPointContainer, pCpc)) then
begin
if Succeeded(pCpc.FindConnectionPoint(IID_INetworkEvents, pConnectionPoint)) then
begin
if Succeeded(pCpc.QueryInterface(IID_IUnknown, pSink)) then
begin
pConnectionPoint.Advise(pSink, dwCookie);
end;
end;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
文章sais:
"您已创建的INetworkListManager对象后以上你会从该点向前接收INetworkEvents通知.pSink实现INetworkEvent接口包括那些事件处理方法,例如NetworkAdded,NetworkDeleted,NetworkConnectivityChanged,和NetworkPropertyChanged".
不幸的是我不知道该怎么做.没有进一步的说明,所以我希望这里有人可以指导我/提供一个示例,为这些事件调用自定义程序.谢谢.