使用socketconnection进行连接在delphi 中可将connected的属性设为true,但运行时且显示“RPC服务器不可用”,高手请指点!
解决方案 »
- 系统整合中碰到同名窗体问题的解决方式
- 谁能告诉我CommaText是身摸意思
- 两个程序 一个程序击活另一个程序的窗口后最小化不好用的问题:
- 打印控制码直接端口打印,请问如何改变字体(瘦长型的宋体)?
- 如何判断某个文件是打开的?
- 小弟初学Delpi遇到一个问题请大家教我~~
- 怎样做到象DELPHI一样,在某一个页面中,按F1就能弹出关于此项的帮助!
- 关于用程序控制论坛回复(类似与论坛灌水机)如何用idhttp提交表单? 跪谢
- 急!!帮我参考一下!!!
- 老土的一个问题:组件制作
- 如何设置一个全局键,让我的程序无论当前的焦点在哪里,只要在键盘上输入1就执行一个函数??????????
- 在多层体系中,客户短是如何找到服务器段的???
因此有必要在使用 DCOM 之前, 检测到Server的连接.在需要时,提示用户输入Password ,Login 到Server. 下面是一点Pascal /Delphi 的例程. procedure ConnectToDomain(ServerName:string);
var
nr:TNetResource;
szRemotePath : array[0..255] of char;
szPassWord:array[0..255] of char;
begin // use default connect
nr.dwScope := RESOURCE_GLOBALNET;
nr.dwType := RESOURCETYPE_ANY;
nr.dwDisplayType := RESOURCEDISPLAYTYPE_GENERIC;
nr.dwUsage := RESOURCEUSAGE_CONNECTABLE ;
nr.lpLocalName := nil;
nr.lpRemoteName := StrPCopy(szRemotePath,'\\'+ServerName+'\IPC$');
nr.lpComment := nil;
nr.lpProvider:= nil;
if WNetAddConnection2(nr,nil,nil,0) <> NO_ERROR then begin
dlgLoginDomain := TdlgLoginDomain.Create(Application);
try
dlgLoginDomain.labServerName.Caption := ServerName ;
if dlgLoginDomain.ShowModal <> mrOK then
raise EPromiseAbortException.Create('');
StrPCopy(szPassWord,dlgLoginDomain.Password.Text);
if WNetAddConnection2(nr,szPassword,nil,0) <> NO_ERROR then
raise EPromisePromptException.Create('Invalid password');
finally
dlgLoginDomain.Free;
end;
end; end; 主要用 WNetAddConnection2 连接到Server\\IPC$, 值得注意的是NT 和Window95 上 WNetAddConnection2的实现并不一样,在Window95中, UserName是被忽略的,而使用Login时的UserName.