使用:Delphi 2010,Indy的最新版本
我试图从Googles Adsense网页上删除数据,目的是获取报告.但到目前为止我还没有成功.它在第一次请求后停止,但不继续.
使用Fiddler调试流向Google Adsense网站的流量/请求,以及用于加载Adsense页面的Web浏览器,我可以看到请求(来自webbrowser)会生成许多重定向,直到页面加载完毕.
但是,我的Delphi应用程序只在停止之前生成一些请求.
以下是我遵循的步骤:
最后我有这个代码:
procedure TfmMain.GetUrlToFile(AURL, AFile : String);
var
Output : TMemoryStream;
begin
Output := TMemoryStream.Create;
try
IdHTTP1.Get(FURL, Output);
Output.SaveToFile(AFile);
finally
Output.Free;
end;
end;
Run Code Online (Sandbox Code Playgroud)
但是,它没有按预期进入登录页面.我希望它表现得好像它是一个webbrowser并继续重定向,直到找到最后一页.
这是Fiddler标题的输出:
HTTP/1.1 302 Found Location: https://encrypted.google.com/ Cache-Control: private Content-Type: text/html; charset=UTF-8 Set-Cookie: PREF=ID=5166063f01b64b03:FF=0:TM=1293571783:LM=1293571783:S=a5OtsOqxu_GiV3d6; expires=Thu, 27-Dec-2012 21:29:43 GMT; path=/; domain=.google.com Set-Cookie: NID=42=XFUwZdkyF0TJKmoJjqoGgYNtGyOz-Irvz7ivao2z0--pCBKPpAvCGUeaa5GXLneP41wlpse-yU5UuC57pBfMkv434t7XB1H68ET0ZgVDNEPNmIVEQRVj7AA1Lnvv2Aez; expires=Wed, 29-Jun-2011 21:29:43 GMT; path=/; domain=.google.com; HttpOnly Date: Tue, 28 Dec 2010 21:29:43 GMT Server: gws Content-Length: 226 X-XSS-Protection: 1; mode=block
首先,这个输出有什么问题吗?
还有什么我应该做的让IdHTTP组件继续追求重定向直到最后一页?
我的Delphi 2010应用程序需要将Windows用户添加到本地Administrators组.我使用NetLocalGroupAddMembers使这部分工作.
现在,应用程序需要在Windows的本地化版本中使用其他语言.为此,我使用带有LsaLookupSids函数的SID来获取组的已翻译名称,但由于我不知道如何进行API调用而无法执行此操作.
我很感激有人可以告诉我如何使用LsaLookupSids函数从SID获取组名(英文版美国版Windows中的"Administrators").
以下是我的代码:
function AddUser(const username, password: PChar; resetpassword: boolean): boolean; stdcall;
var
NetApiStatus: NET_API_STATUS;
UserInfo1003: USER_INFO_1003;
UserInfo1005: USER_INFO_1005;
ui: USER_INFO_1;
grp: String;
sid: PSID;
snu: SID_NAME_USE;
sidsize: LongWord;
refdomain: PLsaReferencedDomainList; //array [0..MAX_PATH - 1] of char;
refdomainsize: LongWord;
sidstring: PChar;
lgmi3: _LOCALGROUP_MEMBERS_INFO_3;
reftranname: PLsaTranslatedName;
begin
if UserExists(username) then begin
sidstring := PChar('S-1-5-32-544'); //Local Administrators group
refdomain := AllocMem(SizeOf(refdomain));
FillChar(refdomain, SizeOf(refdomain), 0);
reftranname := AllocMem(SizeOf(reftranname));
sidsize := 0;
sid := nil;
sid := AllocMem(Length(sidstring) );
sid := PChar(sidstring); …Run Code Online (Sandbox Code Playgroud)