我想像vista和xp中的Get / SetMasterVolume一样以编程方式调整音量吗?使用mmsystem单位?
ManagedSpy应该是.NET的Spy ++等价物,但不知何故,下载页面现在已不再可用了.
谁知道为什么?
谁知道更换?
--jeroen
我支持用Delphi 3编写的应用程序,我想在等待有机会将其升级到更新版本的Delphi时对源代码进行一些改进.我想要使用的一件事是Interfaces.我知道Delphi 3已经有了Interfaces的概念,但是我很难找到如何做等效的
if Supports(ObjectInstance, IMyInterface) then
Run Code Online (Sandbox Code Playgroud) 从Windows资源管理器中剪切/复制文件时,可以通过Clipboard.GetFileDropList方法获取该文件列表.
如何确定该列表是来自cut或copy操作还是通知对方切割/复制操作已完成?
反过来说:您可以使用Clipboard.SetFileDropList方法将要剪切或复制的文件放在剪贴板上.
如何指定要复制或剪切此列表?
这是一个控制台应用程序,所以我无法监视Windows WM_CUT或WM_COPY消息,如C#文件所示 - 在剪贴板中如何设置/读取调用的操作 - 剪切或复制
像这样查询注册表值名称时:
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或做类似的事情 …
我正在使用Delphi7 ClientDataSet来读取和写入我的一些数据的xml文件.
Howerver,当我想在程序外浏览它时(在Windows资源管理器中双击xml)我得到'在文本内容中找到了无效字符.处理资源时出错 - 即使数据在Delphi中读写也很好.
有没有办法强制TClientDataSet以缩进的方式将其内容写入一行?
这样我就可以轻松地将其打开到文本编辑器中,找到哪个字符会触发上述错误.
无论如何:我发现使用CR/LF和压缩来编写XML文件要清楚得多.
Thx提前.
我继承了一个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 XE2 update 4中调试可执行文件时,我得到了错误时提到的错误:
mqic.dll从Webshpere的即在C:\Program Files \IBM\WebSphere MQ\bin\mqic.dll和C:\Program Files\IBM\WebSphere MQ\bin是在系统路径上(不是用户路径上).Run- > Parameters- > Debugger- > Environment Block- >中的覆盖环境变量进行调试User overridesIncluding System Variables 在同一属性页面上检查这是错误(它是标记为"系统错误"的Windows DLL加载错误).
程序无法启动,因为您的计算机缺少mqic.dll.尝试重新安装该程序以解决此问题.
几点说明:
这是事件日志显示的内容:
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 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.边界是从1到aSV.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) 我试图了解在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) delphi ×6
delphi-xe2 ×2
powershell ×2
registry ×2
.net ×1
c# ×1
c++builder ×1
debugging ×1
delphi-3 ×1
delphi-7 ×1
delphi-xe ×1
dll ×1
encoding ×1
legacy-code ×1
managed ×1
media ×1
spy++ ×1
unicode ×1
variant ×1
volume ×1
windows-xp ×1
xml ×1