我试图使用ShellExecute从Delphi XE2中的另一个应用程序'one.exe'执行EXE'two.exe'.
ShellExecute(0, 'open', 'two.exe', nil, nil, SW_NORMAL);
Run Code Online (Sandbox Code Playgroud)
它工作正常,但每当我从任务管理器的进程选项卡终止应用程序'one.exe'(父应用程序)时,使用"结束进程树"选项,应用程序'two.exe'也会被终止.
如何阻止我的ShellExecuted应用程序像这样终止?
我正在尝试实现一个简单的文本文件加密技术,我正在使用以下代码来执行此操作.代码不是我写的,我只是用Google搜索并得到它.加密技术似乎非常简单,简洁且易于实现.我看到它只有一个功能可以动态地进行加密和解密.只需传递密钥即可.但是,我只是想知道,我是否可以检查用户是否传递了密钥是否正确.目前,它只是根据传递的密钥加密/解密文本文件.但是没有机制来检查我们是否使用正确的密钥进行解密.无论我们传递什么密钥,它都会被解密,但它不会被读取.知道如何解决这个问题..?
procedure TEnDeCrypt.EnDecryptFile(pathin, pathout: string; Chave: Word);
var
InMS, OutMS: TMemoryStream;
cnt: Integer;
C: byte;
begin
InMS := TMemoryStream.Create;
OutMS := TMemoryStream.Create;
try
InMS.LoadFromFile(pathin);
InMS.Position := 0;
for cnt := 0 to InMS.Size - 1 DO
begin
InMS.Read(C, 1);
C := (C xor not (ord(chave shr cnt)));
OutMS.Write(C, 1);
end;
OutMS.SaveToFile(pathout);
finally
InMS.Free;
OutMS.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud) 我试图改变位图的像素颜色,如果它是白色的.我写了以下代码.但它非常慢!我想检查像素的颜色是否为白色,如果是白色,则将颜色更改为黑色.
任何人都可以提出更好的方法吗?
procedure TForm1.Button1Click(Sender: TObject);
var
BitMap1 : TBitmap;
X, Y, Size : Integer;
P: Cardinal;
begin
BitMap1 := TBitmap.Create;
bitMap1.LoadFromFile('image1.bmp');
for Y := 0 to Bitmap1.Height - 1 do
begin
for X := 0 to Bitmap1.width * size - 1 do
begin
p := BitMap1.Canvas.Pixels[X,Y];
if p = 255 then
BitMap1.Canvas.Pixels[X,Y] := 0;
end;
end;
Image1.Picture.Assign(BitMap1);
end;
Run Code Online (Sandbox Code Playgroud) 我最近一直在尝试不同的EXE包装工.我尝试了ASPack,UPX,mPress等.在尝试了六个打包机时,我发现大多数打包的EXE都会触发虚假的病毒签名.甚至UPX也不例外.不过,我的选择是UPX.请问任何人,建议我UPX中可用的最佳压缩/包装方法是什么?
我对UPX很满意--lzma myEXE.eXE仍然很乐意听到这个人的意见.我不喜欢UPX --ultra --brute myEXE.EXE,因为它需要花费数小时来完成这个技巧.
我正在尝试这段代码.
我遇到错误"实际和正式var参数的类型必须相同".在这方面的任何帮助都非常感谢.
......
ReadProcessMemory(ProcInfo.hProcess, pointer(Context.Ebx + 8), @BaseAddress, 4, Bytes); <-- error is here
.......
and
.....
WriteProcessMemory(ProcInfo.hProcess, pointer(ImageNtHeaders.OptionalHeader.ImageBase), InjectMemory, InjectSize, Bytes); <---- error here
......
Run Code Online (Sandbox Code Playgroud)
我使用的是Delphi XE2和Windows 7 64位.我的一些朋友能够在D7环境下编译它.任何帮助表示赞赏.
当我尝试编译我的代码时,我得到以下错误.有谁能建议我在这里做错了什么?
W1000 Symbol 'StrPas' is deprecated: 'Moved to the AnsiStrings unit'
Run Code Online (Sandbox Code Playgroud)
我正在尝试编译的代码片段是:
{$IFDEF NEWVER} // Codegear delphi 2009 d12.0
StrCopy(pSerialNumber, @Buf[pDevDesc.SerialNumberOffset + 1]);
{$ELSE}
StrPCopy(pSerialNumber,
FlipAndCodeBytes(StrPas(@Buf[pDevDesc.SerialNumberOffset + 1])));
{$ENDIF}
Run Code Online (Sandbox Code Playgroud) 我有一个接一个的截图,几秒钟的差距.我正在比较两个图像,并试图找出它们之间是否存在任何差异.如果有任何差异,我需要获得该像素的屏幕坐标变化.
我可以使用Delphi实现这一目标吗?
在我的Delphi中,每当我重建我的应用程序时,所有第三方组件的DCU文件都会在我的应用程序目录中生成,该目录位于可执行文件所在的位置.
我该如何改变这种行为?
这样第三方组件的DCU文件就不会在我的应用程序目录中生成.
我的DXE2应用程序中有form1和form2.Form2由Form1显示.我是否有可能始终将form2保持在最顶层并保持对Form1的关注?其主要思想是,即使用户点击Form1上,重点应放在窗口2和窗口2应闪烁,告知用户窗口2需要先关闭,使Form1的活跃用户.我能用Delphi实现吗?
我自己正在学习 Delphi。我已经看到了auto
可以在 C++ 中发挥某种程度的魔力的变量类型。Delphi 中是否有auto
变量类型或类似的东西?
delphi ×10
delphi-xe2 ×4
pascal ×3
c# ×1
delphi-2010 ×1
delphi-7 ×1
delphi-xe6 ×1
image ×1
lazarus ×1
windows ×1