我一直在谷歌搜索这个我可能有一些脑云,因为它不起作用.
我需要检测文件夹是否是一个联结,所以我的递归文件搜索不会运行到无限循环.
我可以使用像这样的简单函数
IsJunction(attr: dword): boolean;
Run Code Online (Sandbox Code Playgroud)
其中attr dwFileAttributes
来自TWin32FindData;
我似乎无法让它工作.谢谢!
我有一个程序,它不会启动最小化,并在dekstop上显示一个非常小的窗口.
图片:http://i.imgur.com/j8xus.jpg
码:
程序:
program Project4;
uses
Forms,
Unit4 in 'Unit4.pas' {Form4};
{$R *.res}
begin
Application.Initialize;
Application.MainFormOnTaskbar := false;
Application.ShowMainForm:=false;
Application.CreateForm(TForm4, Form4);
Application.Run;
end.
Run Code Online (Sandbox Code Playgroud)
单元:
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, AppEvnts, ExtCtrls, Menus;
type
TForm4 = class(TForm)
TrayIcon1: TTrayIcon;
ApplicationEvents1: TApplicationEvents;
PopupMenu1: TPopupMenu;
Exit1: TMenuItem;
procedure TrayIcon1DblClick(Sender: TObject);
procedure ApplicationEvents1Minimize(Sender: TObject);
procedure ApplicationEvents1Restore(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure Exit1Click(Sender: TObject);
private
{ Private …
Run Code Online (Sandbox Code Playgroud) 我正在使用SHFileOperation,源可以是一个pwidechar,文件名以null分隔,整个事件以double null结尾.
我可以创建一个widechar数组,它保存了我需要的信息但是当我尝试转换为pwidechar函数时,它只复制到第一个null.
我究竟做错了什么?
当我尝试将tmemorystream作为var或指向程序的指针传递时,它会被损坏.这样做的正确方法是什么?
例如:
function tform1.downloadmemupdate(url, desc: string; var data: tmemorystream; var msg: string): boolean;
begin
filelabel.Caption:=desc;
downloadmemthread:=tdownloadmemthread.create(url);
dlcancelbtn.Enabled:=true;
downloadmemthread.dlstart;
waitforsingleobject(downloadmemthread.Handle, INFINITE);
downloadmemthread.data.SaveToStream(data); //corrupted
downloadmemthread.data.SaveToFile('data.zip'); //works
dlcancelbtn.Enabled:=false;
result:=not (downloadmemthread.canceled and downloadmemthread.success);
dlcanceled:=downloadmemthread.canceled;
msg:=downloadmemthread.msg;
downloadthread.Free;
end;
Run Code Online (Sandbox Code Playgroud) 德尔福2009
我最近从多个GET请求切换到单个POST,我认为它会更有效但事实证明它要慢得多.它从1-2秒变为8-10秒,我无法弄清楚原因.
例
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
IdHTTP;
type
TForm4 = class(TForm)
d: TIdHTTP;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
var m: tmemorystream;
data: tstringlist;
i: integer;
begin
memo1.Clear;
m:=tmemorystream.Create;
data:=tstringlist.Create;
data.Add(format('test1');
data.Add(format('test2');
d.Post('http://www.someurl.com/test.php', data, m);
m.Position:=0;
data.LoadFromStream(m);
memo1.Lines.Add('Received:');
for i := 0 to data.count …
Run Code Online (Sandbox Code Playgroud) 我正在使用Delphi 2009,我在这里看到的大部分答案都是针对2010+我尝试将加密(delphi)同步到解密(php)并失败.
在delphi中生成加密的字符串:
program Project4;
{$APPTYPE CONSOLE}
uses
SysUtils,
DCPcrypt2,
DCPsha1,
DCPblockciphers,
DCPdes,
EncdDecd;
var des: tdcp_des;
enc,dec: ansistring;
begin
try
des:=tdcp_des.Create(nil);
des.InitStr('test', tdcp_sha1);
enc:=encodestring(des.EncryptString('this is a test'));
des.Free;
des:=tdcp_des.Create(nil);
des.InitStr('test', tdcp_sha1);
dec:=des.DecryptString(decodestring(enc));
des.Free;
writeln(enc);
writeln(dec);
except
on E:Exception do
Writeln(E.Classname, ': ', E.Message);
end;
end.
Run Code Online (Sandbox Code Playgroud)
在php中解密:
<?php
function decrypt($str, $key)
{
$size = mcrypt_get_iv_size(MCRYPT_DES, MCRYPT_MODE_CBC);
$iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM);
$data = base64_decode($str);
$block = mcrypt_get_block_size('des', 'ecb');
$k = substr(sha1($key), 0, $block);
$str = mcrypt_decrypt(MCRYPT_DES, $k, $data, MCRYPT_MODE_CBC, $iv);
$pad …
Run Code Online (Sandbox Code Playgroud) 在我的应用程序中,我有一个小的自定义按钮,只显示一个FB图标和指向业务页面的链接.我希望按钮执行Like,以便页面上的我的号码增加.
到目前为止,我只看到一种从FB获取Like图形的方法,其中包含一个链接.我如何跳到喜欢的?