我GetHostByName
用来从主机/ DNS获取IP地址.我也有卡巴斯基互联网安全2013,并注意到它GetHostByName
被它挑选.似乎我的进程试图在其中创建一个子键hklm\SYSTEM\CONTROLSET001\SERVICES\TCPIP\PARAMETERS
.这实际上意味着,如果用户没有任何管理员权限,我就不能使用此功能.有没有其他方法来解决主机/ DNS?
编辑:这里有一个截图:
编辑2:我实际上使用了getaddrinfo,KIS没有"检测到任何东西".我想使用它,但我仍然希望得到Win2K的支持.
EDIT3:添加了Debug ScreenShot
编辑4:这是我的"测试"代码:
program Project2;
{$APPTYPE CONSOLE}
uses
Winsock;
var
DummyWSA : WSADATA;
begin
if WSAStartup($0202, DummyWSA) = 0 then begin
GetHostByName ('localhost');
end;
readln;
end.
Run Code Online (Sandbox Code Playgroud)
EDIT5:GetAddrInfo版本......
program Project2;
{$APPTYPE CONSOLE}
uses
Winsock;
type
PAddrInfo = ^TAddrInfo;
TAddrInfo = packed record
ai_flags: Integer;
ai_family: Integer;
ai_socktype: Integer;
ai_protocol: Integer;
ai_addrlen: LongWord;
ai_canonname: Array of Char;
ai_addr: PSOCKADDR;
ai_next: PAddrInfo;
end;
function getaddrinfo(const nodename: PChar; const servname : PChar; const …
Run Code Online (Sandbox Code Playgroud) 好吧,我在这里得到了一些非常棘手的东西...我想将一个或者使用Header给一个ChildNode.我认为这个想法是合理的,因为在子节点中有标题会让人看起来很棒,所以可以在表格中指定子节点.是否存在VST具有或根本不可能的功能?
谢谢你的帮助.
我想编写一个函数,告诉我是否可以将文件/文件夹写入特定路径.我想这样做而不实际将任何文件写入磁盘.是否有WINAPI函数?谢谢您的帮助.
据我了解并了解TThread类的方法,如果你同步你的代码,它实际上是在主应用程序线程中执行的(就像一个计时器/按钮点击/等).我一直在玩,并注意到MessageBox不会阻止主应用程序,但是睡眠就像预期的那样.这是为什么?
type
TTestThread = class(TThread)
private
procedure SynchThread;
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
end;
procedure TTestThread.SynchThread;
begin
MessageBoxA (0, 'Hello', 'Test', 0);
end;
procedure TTestThread.Execute;
begin
Synchronize (SynchThread)
end;
constructor TTestThread.Create(CreateSuspended: Boolean);
begin
inherited;
FreeOnTerminate := True;
end;
procedure StartThread;
var
TestThread : TTestThread;
begin
TestThread := TTestThread.Create (FALSE);
end;
Run Code Online (Sandbox Code Playgroud) 我想和Indy一起登录我的facebook账户.版本是9.00.10,我使用OpenSSL和TIDHTTP并为其分配了一个cookie管理器.一切正常(我可以发送POST请求GET等)
我嗅到实际登录到facebook,我有以下信息:
UserAgent:Mozilla/5.0(Windows; U; Windows NT 6.0; en-US; rv:1.9.2)Gecko/20100115 Firefox/3.6(.NET CLR 3.5.30729)
有几个POST参数:
该帖子是在https://www.facebook.com/login.php?login_attempt=1上发布的.但是当我尝试登录时返回我输入的电子邮件不正确.我确定我使用了正确的电子邮件和密码.
这是我的代码:
procedure TForm1.Button1Click(Sender: TObject);
var
TEST : STRING;
lParamList: TStringList;
i : Integer;
begin
lParamList := TStringList.Create;
lparamlist.Add('lsd=AVoBzJ5G');
lparamlist.Add('email=myeMail%40mysite.com');
lparamlist.Add('pass=mypass');
lparamlist.Add('default_persistent=0');
lparamlist.Add('timezone=240');
lparamlist.Add('lgnrnd=210302_FeQV');
lparamlist.Add('lgnjs=1367035381');
lparamlist.Add('locale=en_US');
IDHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6 (.NET CLR 3.5.30729)';
Test := IdHTTP1.Get('https://www.facebook.com'); // …
Run Code Online (Sandbox Code Playgroud) 我在这里有这个代码来从主机名中检索IP地址:
program Project1;
{$APPTYPE CONSOLE}
uses
SysUtils,
winsock;
function GetIPFromHost(const HostName: string): string;
type
TaPInAddr = array[0..10] of PInAddr;
PaPInAddr = ^TaPInAddr;
var
phe: PHostEnt;
pptr: PaPInAddr;
i: Integer;
begin
Result := '';
phe := GetHostByName(PChar(HostName));
if phe = nil then Exit;
pPtr := PaPInAddr(phe^.h_addr_list);
i := 0;
while pPtr^[i] <> nil do
begin
Result := inet_ntoa(pptr^[i]^);
Inc(i);
end;
end;
var
wsaData: TWSAData;
begin
if (WSAStartup($0202, wsaData) <> 0) then begin
Exit;
end;
while true do begin
sleep (1000);
GetIPFromHost …
Run Code Online (Sandbox Code Playgroud) 我有一个没有资源的应用程序(根本没有UAC清单).此应用程序使用CopyFile将自身安装到appdata/roaming文件夹.它还设置了一个自动启动,因此它会在每次启动时自动启动.现在每次启动电脑时,都会弹出UAC对话框并说应用程序会对电脑进行更改.如果它位于appdata中,它还在图标上有盾牌标志.如何删除图标中的对话框/屏蔽?Windows是否检测到copyfile API并自动设置它?
谢谢你的回答.
这个问题可以用任何类型的编程语言来解答,因为我想要一些算法帮助,但我更喜欢Delphi.我的任务是检测和计算随机图片的多个形状(1到N之间 - 大部分是圆形或Elipse)并计算它们的中间值并将它们作为图片的坐标返回.每个形状的中间可以有一个填充物(但没关系).形状彼此相距至少1个像素.所有形状都不会与图片的另一个或角落融为一体.图片的背景总是具有相同的背景颜色,实际上无关紧要,因为与背景相比,形状的边框/框架总是不同的颜色.这使得检测形状变得容易.我正在考虑按像素逐行扫描并收集坐标,然后围绕每个形状绘制一个不可见的矩形/正方形以计算中间值.然后我也听说过扫描线,但我认为在这种情况下它不会更快.所以我的问题是,我该如何计算:
一些图片可视化任务:
这是一张随机形状的图片(大多数是近圆圈)正如你所看到的,它们彼此分开很好.
然后我可以很容易地绘制/计算每个形状周围的假想矩形/正方形,并计算它的中间:
我有矩形/正方形后.我可以很容易地计算中间.我该如何开始?
PS.:我在mspaint中画了一些圆圈.我必须补充一点,所有形状都是CLOSED,这样就可以在图片中填充每个形状,没有任何问题!
谢谢您的帮助.
我在Delphi 7中使用SoftGem的VirtualStringTree.
有没有办法启用完整的网格线(就像在TListView中一样)?我只能找到toShowHorzGridLines
,它只显示当前节点的行,而不是下面空白空间中的任何内容,并且toShowVertGridLines
只显示垂直线.
如何在添加项目之前在空白区域中显示它们?
我想用一个字节数组分配空间(动态大小)并得到一个指向"spacearea"的指针,如果我不再需要它,可以在以后释放它.
我了解VirtualAlloc,VirutalAllocEx和LocalAlloc.哪一个是最好的,如何在之后释放内存?
谢谢您的帮助.