小编MX4*_*399的帖子

如何确定调用用户访问控制限制的内容?

在用于为我的软件构建互联网软件更新服务的Delphi应用程序中,Windows 7 UAC系统请求用户授权运行exe.代码中存在以下可能存在争议/风险的区域:

  • 为通信创建命名管道服务器
  • TCP用于FTP和HTTP
  • 使用SHGetSpecialFolderPath api调用

在添加UAC未激活的这些项目之前,依次删除每个单元引用,然后以裸骨骼exe结束仍然会导致UAC事件 - 因此无法说明导致它的原因.除此之外,Delphi 2007现在需要以管理员身份启动,以启动应用程序的调试过程.

问题1:除了在新的exe中从头开始之外,我怎样才能看到导致这种情况的原因-IOW是否有一个我可以查看的日志

问题2:使用authenticode使用签名的exe仍然会导致显示UAC警报

delphi uac windows-7

1
推荐指数
1
解决办法
866
查看次数

这会导致Delphi内存泄漏吗?

试图获取一个文件名:

procedure TSomeClass.GetFileName(AData : string) : string;
var
  p : pchar;
begin

  p := pchar(AData);
  while not (p^ in ['/', '&', '#', ':']) do
    inc(p);

  result := p;

end;
Run Code Online (Sandbox Code Playgroud)

delphi pointers

1
推荐指数
1
解决办法
484
查看次数

带有和不带引号的WM_COPYDATA会产生不同的结果

使用WM_COPYDATA将命令行参数传递给另一个使用Delphi XE的应用程序实例,如下所示:

function DAppInstance.SendParamsToPrevInstance(AWindowHandle: THandle): Boolean;
var
  copyData: TCopyDataStruct;
  cmdParams : string;
  i : integer;
begin
  cmdParams := '';
  for i := 1 to ParamCount do
    cmdParams := cmdParams + ParamStr(i); //#1
  //cmdParams := cmdParams + '"' + ParamStr(i) + '" '; //#2
  //cmdParams := cmdParams + format('"%s" ', [ParamStr(i)]); //#3
  //cmdParams := cmdParams + format('%s;', [ParamStr(i)]); //#4

  copyData.lpData := pchar(cmdParams);
  copyData.cbData := 1 + (bytelength(cmdParams));
  copyData.dwData := WaterMark;  //ID for APP

  result := SendMessage(AWindowHandle, 
    WM_COPYDATA, 
    Application.Handle, 
    LPARAM(@copyData)) = 1; …
Run Code Online (Sandbox Code Playgroud)

delphi unicode wm-copydata delphi-xe

1
推荐指数
1
解决办法
1348
查看次数

DCC错误...:E2010不兼容的类型:'整数'和'整数'

尝试构建基于接口和泛型的图并获得奇怪的错误 - 请注意错误行中"整数"一词的大小写差异.

文本解析器传递给Graph实现,然后由Graph调用以构建其基本数据结构.进一步的IGraphConstructor对象可以构建更复杂的实际图形,而不仅仅是填充基本字典.

IGraphConstructor<K,V> = interface
  function Construct(AData : TObjectDictionary<K,V>) : boolean;
end;

IGraph<K,V> = interface
  ['{B25EEE1F-3C85-43BB-A56B-3E14F7EA926C}']
  function Construct(AConstructor : IGraphConstructor<K,V>) : boolean;
  function GetNodes : TObjectDictionary<K,V>;
  property Nodes : TObjectDictionary<K,V> read GetNodes;
end;

TGraph<K,V> = class(TComponent, IGraph<K,V>)
private
  FData : TObjectDictionary<K,V>;
  function GetNodes : TObjectDictionary<K,V>;
... 

//the editor
TVirtualEditor = class(TComponent)
private
  FGlyphs : TGraph<integer,TGlyph>;
...  

TTextParser<integer,TGlyph> = class(TInterfacedObject, IGraphConstructor<integer,TGlyph>)
... 
Run Code Online (Sandbox Code Playgroud)

和...

function TVirtualEditor.Edit(AText: string): boolean;
var
  parser : TTextParser<integer,TGlyph>;
begin
  parser := TTextParser<integer,TGlyph>.Create(AText);
  result := FGlyphs.Construct(parser);
end; …
Run Code Online (Sandbox Code Playgroud)

delphi generics interface delphi-xe

1
推荐指数
1
解决办法
1639
查看次数

嵌套模态形式中的顶部模态形式关闭所有其他模态形式?

当形式A是模态的并且它显示第二个模态形式B,并且B的模态结果被设置而B然后关闭时,A也被关闭.

如何防止这种情况?

forms delphi modal-dialog

0
推荐指数
1
解决办法
936
查看次数