当前位置:主页>仓库管理软件> 列表

如何设置idcooiekmanager的path(在线等)

记账软件版1楼: 那位大哥知道怎么设置cookmanager的path吗?我已经把idhttp和idcookmanager联系在一起了
有些网站上的cookie中不包含path=/
例如
Set-Cookie: PHPSESSID=84af940ca92c97fcc612f5b7c105b87b; path=/
Set-Cookie: cok=84af940ca92c97fcc612f5b7c105b87b; expires=Thu, 24-Nov-2005 08:05:30 GMT
Set-Cookie: id=84af940ca92c97fcc612f5b7c105b87b; expires=Thu, 24-Nov-2005 08:05:30 GMT
等打开下一个网页的时候只提交第一个PHPSESSID=84af940ca92c97fcc612f5b7c105b87b;
下面两个却不提交,没有path=/就只能保存在cookiemanager中,而不能提交!谁能告诉我怎么在程序开始运行时就设置好cookiemanager的path呢!
多谢了!

2楼: 使用msgwaitformutipleobjects这个函数来做,因为这里面,需要使用消息来处理。 如客户关系管理软件

3楼: 线程甲创建其它线程后就进入一个无循环
只有当特定的变量在特定的状态时才退出循环
然后在循环的开始部分使用WaitForSingleObject函数进入等待状态,等待一个事件
当它创建的纯种表消息要通知它时,使用自定义的结构变量放放队列中,然后SetEvent设置事件


线程甲从等待状态返回后从列列中取出所有事件,并做处理,处理完毕后重新进入等待

4楼: 我刚学delphi,能不能给我点代码看看呀,谢谢

5楼: 给你一个小例子,网吧写的,没有经过测试。原理如下
TManagerThread = class(TThread)
private
WorkThreadArray: array [0.. ThreadNum - 1] of TWorkThrad;
FEvent: THandle;
protected
procedure Execute;
public
constructor Create;
destructor Destroy;override;
end;

procedure TManagerThread.Create
var
i: integer;
begin
FEvent := CreateEvent(....中间是参数,自己查下);
for i := 0 to ThreadNum - 1 do
WorkThreadArray[i] := TWorkThread.Create;
....
end;

procedure TManagerThread.Destroy
var
i: integer;
begin
for i := 0 to ThreadNum - 1 do
WorkThreadArray[i].Free;
CloseEvent(FEvent);
inherited;
end;

procedure TManagerThread.Execute
var
Code: Cardinal;
begin
while not Terminated do
begin
if Terminated then
Exit;
Code := WaitForSingleObject(nil, true, true, INFINITE);


if Code = WAIT_FAILED then
GetLastError//创建出错, 查找错误
else
if Code = WAIT_OBJECT_0 then
begin
//事件对象被激活,线程启动
end
end;
end;


TWorkThread = class(TThread)
private
protected
procedure Execute;
public
constructor Create;
destructor Destroy;override;
end;

工作线程,即子线程代码省略,与上面的管理线程相同,这就是一种线程池模型。就是在工作线程处理完成后,你自己触发管理线程,就行了,如果触发事件有几种,就将上面的WaitForSingleObject函数由另外一个API函数:WaitForMutipleObject代替就行了,只不过返回值Code - WAIT_OBJECT_0 的值就是你具体事件数组中的事件下标值。

大致原理如下。。。希望能对你有些帮助。

6楼: 接受答案了.