procedure WMQueryEndSession(var Message: TWMQueryEndSession); message WM_QUERYENDSESSION;
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
NMUDP1.Free;
Message.Result := 1;
end;
procedure TForm1.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
NMUDP1.Free;
Message.Result := 1;
end;
解决方案 »
- 想知道TIdMultiPartFormDataStream 里重载IDRead怎么做?
- 一个不好描述的问题
- DGGRIDEH是怎么使用的?
- OpenDialog执行的时候出现'access violation...'
- delphi7.0+access数据库中正负号的问题?
- ★★★如何使修改DBEDIT的文字暂时不影响数据库????
- 為何調用data module中的adoconnection會出錯。
- 如何使得StringGrid的一个CELL获得输入焦点?如何判断一个CELL是否获得了输入焦点?回答有分。
- ************消息框的小问题!!!!!!!!!!****************
- not Query1.IsEmpty = not (Query1.Eof and Query1.Bof) ??
- 20分求答一个简单的问题
- 一个关于setWindowLong的问题!!!!
可是我这个程序是在托盘区中加入图标的,用的trayicon311的控件。当主窗体是显示时就ok,关机正常,当主窗体隐藏时,这家伙却收不到WM_QUERYENDSESSION这个消息。关不了机
From1.close;
Message.Result := 1;
关机正常,但是当主窗口隐藏时就收到一个WM_ENDSESSION的消息,用:From1.close;
Message.Result := 1;
的话,程序是关了,但还是关不了机。想一想可能是程序回答windows关机询问时返回的信息无法让它继续下一个程序的询问。但也只有两种可能呀,一种是回答可以关闭对话,一种是回答不可以关闭对话。小弟又不知道他妈的微软到底要一个怎么鬼值。给message.result付值1也不行,0也不行,-1也不行,我想还有一种办法是让windows在关机时跳过这个程序,不给它发WM_QUERYENDSESSION消息或者象hook一样给message.result:=callnexthook(.......);把它让给下一个程序对象去回答。但小弟我不会写呀!哪位大侠行行好,帮帮忙!
SERVER端:
procedure TForm1.SIdUDPUDPRead(Sender: TObject; AData: TStream;
ABinding: TIdSocketHandle);
var
readcor:pchar;
readstr:string;
begin
getmem(readcor,adata.Size);
AData.ReadBuffer(readcor,adata.Size);
readstr:=StrPas(readcor);
showmessage('KK'+readstr);
end;
CLIENT端:
procedure Tmainform.Button5Click(Sender: TObject);
var
sendcode:array[0..29] of char;
begin
sendCode:='OK?';
CIDUDP.Active:=TRUE;
CIDUDP.SendBuffer(SENDCode,10);
end;
readcor:array [0..29] of char;
然后就读到了。TMNUDP倒可以用formip得到那边的IP地址,这个鸟怎么得到呢?一定要在client端发CIDUDP.SEND(Ahost,Aport,AData)告诉他吗?