小编Jer*_*ers的帖子

如何在Vista / XP中调整主音量

我想像vista和xp中的Get / SetMasterVolume一样以编程方式调整音量吗?使用mmsystem单位?

media delphi windows-xp volume windows-vista

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

ManagedSpy发生了什么?

ManagedSpy应该是.NET的Spy ++等价物,但不知何故,下载页面现在已不再可用了.

谁知道为什么?

谁知道更换?

--jeroen

managed spy++

5
推荐指数
2
解决办法
6567
查看次数

在支持接口的Delphi 3中有什么相同之处?

我支持用Delphi 3编写的应用程序,我想在等待有机会将其升级到更新版本的Delphi时对源代码进行一些改进.我想要使​​用的一件事是Interfaces.我知道Delphi 3已经有了Interfaces的概念,但是我很难找到如何做等效的

if Supports(ObjectInstance, IMyInterface) then
Run Code Online (Sandbox Code Playgroud)

delphi legacy-code delphi-3

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

使用Clipboard.GetFileDropList的控制台应用程序:如何检查是否来自剪切或复制操作?

Windows资源管理器中剪切/复制文件时,可以通过Clipboard.GetFileDropList方法获取该文件列表.

如何确定该列表是来自cutcopy操作还是通知对方切割/复制操作已完成?

反过来说:您可以使用Clipboard.SetFileDropList方法将要剪切或复制的文件放在剪贴板上.

如何指定要复制或剪切此列表?

这是一个控制台应用程序,所以我无法监视Windows WM_CUTWM_COPY消息,如C#文件所示 - 在剪贴板中如何设置/读取调用的操作 - 剪切或复制

.net c# console-application

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

如何查询跳过 PS* 的注册表值

像这样查询注册表值名称时:

Get-ItemProperty HKCU:\Software\Microsoft\Osk
Run Code Online (Sandbox Code Playgroud)

你会得到一大堆额外的价值。

PSPath            : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft\Osk
PSParentPath      : Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER\Software\Microsoft
PSChildName       : Osk
PSDrive           : HKCU
PSProvider        : Microsoft.PowerShell.Core\Registry
WindowLeft        : 100
WindowTop         : 100
WindowWidth       : 828
WindowHeight      : 236
ClickSound        : 1
Mode              : 1
HoverPeriod       : 1000
ScanInterval      : 1000
UseDevice         : 1
UseMouse          : 0
UseKB             : 1
ScanKey           : 32
UseTextPrediction : 1
InsertSpace       : 1
ShowNumPad        : 0
Run Code Online (Sandbox Code Playgroud)

我想要的只是值名称 ( WindowLeft, ...)

我怎样才能做到这一点?

编辑:字符串匹配不会削减它。我确实希望包含合法的注册表值名称。

示例(可以用reg query hklm /v PS* /s或做类似的事情 …

registry powershell

5
推荐指数
2
解决办法
2948
查看次数

使用Delphi7 TClientDataSet:是否可以以缩进格式保存XML内容

我正在使用Delphi7 ClientDataSet来读取和写入我的一些数据的xml文件.

Howerver,当我想在程序外浏览它时(在Windows资源管理器中双击xml)我得到'在文本内容中找到了无效字符.处理资源时出错 - 即使数据在Delphi中读写也很好.

有没有办法强制TClientDataSet以缩进的方式将其内容写入一行?

这样我就可以轻松地将其打开到文本编辑器中,找到哪个字符会触发上述错误.

无论如何:我发现使用CR/LF和压缩来编写XML文件要清楚得多.

Thx提前.

xml delphi encoding tclientdataset delphi-7

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

Delphi编译器错误E2064左侧无法分配

我继承了一个Delphi应用程序,我对object pascal一无所知.

这是我需要编译到新版本的C++ Builder XE中的BPL.
当我运行make时,我得到错误:

E2064左侧无法分配.

我已经学会了足够多的obj pascal知道我有一个试图被赋值的常量.

但是,显然,你可以克服这种行为; 通过进入Delphi编译器下的Build选项并打开"Assignable Typed constants",实质上将常量转换为vars.

我这样做了,我继续得到同样的错误.

我尝试用{$ J +}和{$ J-}​​包围我的代码,但仍然无法编译.

procedure TChunkIDAT.CopyInterlacedRGB8(const Pass: Byte;
  Src, Dest, Trans{$IFDEF Store16bits}, Extra{$ENDIF}: pChar );
var
  Col: Integer;
 begin
 {Get first column and enter in loop}
 Col := ColumnStart[Pass];
 Dest := pChar(Longint(Dest) + Col * 3);
 repeat
 {Copy this row}

  Byte(Dest^) := fOwner.GammaTable[pByte(Longint(Src) + 2)^]; inc(Dest);
Run Code Online (Sandbox Code Playgroud)

在最后一行获取错误.如果我将const更改为var,那么我会得到声明与前一个声明不同但我不知道前一个声明在哪里的错误....

delphi unicode c++builder delphi-xe

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

使用环境变量进行调试时"程序无法启动,因为...... dll缺失"

在这些情况下,在Delphi XE2 update 4中调试可执行文件时,我得到了错误时提到的错误:

  • 依赖于mqic.dll从Webshpere的即在C:\Program Files \IBM\WebSphere MQ\bin\mqic.dllC:\Program Files\IBM\WebSphere MQ\bin是在系统路径上(不是用户路径上).
  • 正在使用Run- > Parameters- > Debugger- > Environment Block- >中的覆盖环境变量进行调试User overrides
  • Including System Variables 在同一属性页面上检查

这是错误(它是标记为"系统错误"的Windows DLL加载错误).

程序无法启动,因为您的计算机缺少mqic.dll.尝试重新安装该程序以解决此问题.

几点说明:

  • 我作为普通用户进行调试(无论如何这是正常的做法,但在这种情况下,由于客户端的策略,我不能成为管理员).
  • 一旦我删除环境变量,它就可以工作(但程序barf因为它确实需要信息).
  • 在Delphi启动之前指定环境变量很麻烦,但是可以作为临时解决方法(我需要在调试时经常更改该变量以测试不同的场景; Delphi的启动/关闭时间使得这很乏味).
  • 我不能没有环境变量,因为它是一个没有源代码的应用程序所必需的,无法及时重写它无论如何都要逐步淘汰

这是事件日志显示的内容:

Faulting application name: CAS400NTMQ.exe, version: 1.1.4639.52512, time stamp: 0x50508180
Faulting module name: ntdll.dll, version: 6.1.7601.17725, time stamp: 0x4ec49b60
Exception code: 0xc0000005
Fault offset: 0x0005333f
Faulting process id: 0x4b20
Faulting application start time: 0x01cd90e36bb90816
Faulting …
Run Code Online (Sandbox Code Playgroud)

delphi debugging dll delphi-xe2

4
推荐指数
2
解决办法
1649
查看次数

动态数组是否支持非零下限(对于VarArrayCreate兼容性)?

我正在维护并向Delphi XE2移植一堆非常旧的Delphi代码,这些代码充满了VarArrayCreate构造,伪造的动态数组的下限不为零.

使用Variant类型的缺点是:

  • 比原生数组慢得多(代码执行了大量复杂的财务计算,因此速度很重要)
  • 不安全(特别是在使用错误的var...常量时,Variant系统开始进行不需要的转换或舍入)

如果我可以使用动态数组,两者都可能没有实际意义.

变体数组的好处是它们可以具有非零下界.

我记得的是动态数组总是以零的下限开始.

这仍然是真的吗?换句话说:动态数组是否可以以不同于零的边界开始

作为示例,针对特定情况的前/后示例(单维,但代码充满了多维数组,除了varDouble之外,代码还使用TVarData允许使用的各种其他varXXX数据类型):

function CalculateVector(aSV: TStrings): Variant;
var
  I: Integer;
begin
  Result := VarArrayCreate([1,aSV.Count-1],varDouble);
  for I := 1 to aSV.Count-1 do
    Result[I] := CalculateItem(aSV, I);
end;
Run Code Online (Sandbox Code Playgroud)

CalculateItem函数返回Double.边界是从1aSV.Count-1.

当前替换是这样的,交换Result的空间第零元素以改进编译时间检查:

type
  TVector = array of Double;
function CalculateVector(aSV: TStrings): TVector;
var
  I: Integer;
begin
  SetLength(Result, aSV.Count); // lower bound is zero, …
Run Code Online (Sandbox Code Playgroud)

delphi variant dynamic-arrays delphi-xe2

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

如何在PowerShell中按名称和值过滤注册表项下的名称/值对?

我试图了解在PowerShell中使用的习语.

鉴于此脚本:

$path = 'hkcu:\Software\Microsoft\Windows\CurrentVersion\Extensions'
$key = Get-Item $path
$key
Run Code Online (Sandbox Code Playgroud)

我得到了这个问题底部的输出.

我想得到属性的输出(名称/值对下$key)我可以在名称和值上进行过滤.

例如,过滤列出所有具有以下内容的扩展:

  • 名字就像 xls*
  • 或价值 *\MSACCESS.EXE

或者排除过滤器:排除所有名称 doc*

冷杉第一个过滤器,我想要一个像这样的结果:

Name                           Value                                                                                                                                                       
----                           --------                                                                                                                                                       
xlsx                           C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE                                                                                                                 
xls                            C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE                                                                                                                 
mdb                            C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE                                                                                                              
mda                            C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE                                                                                                              
Run Code Online (Sandbox Code Playgroud)

这是脚本的原始输出:

Hive: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion
Name                           Property                                                                                                                                                       
----                           --------                                                                                                                                                       
Extensions                     rtf  : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.rtf                                                                                                         
                               dot  : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dot                                                                                                         
                               dotm : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dotm                                                                                                        
                               dotx : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.dotx                                                                                                        
                               docm : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.docm                                                                                                        
                               docx : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.docx                                                                                                        
                               doc  : C:\PROGRA~2\MICROS~1\Office15\WINWORD.EXE ^.doc                                                                                                         
                               xlsx : C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE                                                                                                                 
                               xls  : C:\PROGRA~2\MICROS~1\Office15\EXCEL.EXE                                                                                                                 
                               mdb  : C:\PROGRA~2\MICROS~1\Office15\MSACCESS.EXE                                                                                                              
                               mda …
Run Code Online (Sandbox Code Playgroud)

registry powershell powershell-3.0

4
推荐指数
2
解决办法
3397
查看次数