易截截图软件、单文件、免安装、纯绿色、仅160KB

Delphi实现网页自动登陆

比如操作
CSDN的登录
先用WebBrowser定位到登录页面
WebBrowser1.Navigate('http://passport.csdn.net/UserLogin.aspx?from=http://community.csdn.net/');
然后,看其HTML源代码,发现
名字为 ctl00$CPH_Content$tb_LoginNameOrLoginEmail的元素就是 其用户名的输入框了。
此时
使用
(WebBrowser1.Document as IHTMLDOCUMENT2).all.item('ctl00$CPH_Content$tb_LoginNameOrLoginEmail',emptyParam)来得到这个元素了。
var
UserEdt,LogBtn: IHTMLELEMENT;
begin
UserEdt := (WebBrowser1.Document as IHTMLDOCUMENT2).all.item('ctl00$CPH_Content$tb_LoginNameOrLoginEmail',emptyParam) as IHTMLELEMENT;
UserEdt.setAttribute('value','test',0);//这里就设置了test到输入用户名的编辑框中了 。
//依此一样,输入密码,验证码
//然后找那个登录按钮,通过他的HTML源代码,可以知道,那个按钮其实是个图片,元素的名字叫 “ctl00$CPH_Content$Image_Login”
//同样的方法
LogBtn := (WebBrowser1.Document as IHTMLDOCUMENT2).all.item('ctl00$CPH_Content$Image_Login',emptyParam) as IHTMLELEMENT;
LogBtn.Click;//调用按钮的点击事件开始登录。
end;
===============================================================================
因为我发现他网页源代码里按钮里有事件  所以我模拟按钮的点击事件可以达到功能。
procedure TForm1.WebBrowser1NavigateComplete2(Sender: TObject;\\登入
const pDisp: IDispatch; var URL: OleVariant);
var
vDocument:IHTMLDocument2;
useredt,userPASS:IHTMLELEMENT;
begin
if q then
begin
   UserEdt := (WebBrowser1.Document as IHTMLDOCUMENT2).all.item('logUsers',emptyParam) as IHTMLELEMENT;
   UserEdt.setAttribute('value','cc3802',0);
   Userpass := (WebBrowser1.Document as IHTMLDOCUMENT2).all.item('logPasses',emptyParam) as IHTMLELEMENT;
   Userpass.setAttribute('value','*******',0);
   q:=false;
   vDocument := WebBrowser1.Document as IHTMLDocument2;
   vDocument.parentWindow.execScript('document.loginForm.submit()', 'javascript');
end;
end;
procedure TForm1.Button7Click(Sender: T


相关文档:

delphi 動態安裝服務


unit winntService;
interface
uses
Windows,WinSvc,WinSvcEx;
function InstallService(const strServiceName,strDisplayName,strDescription,strFilename: string):Boolean;
procedure UninstallService(strServiceName:string);
implementation
function StrLCopy(Dest: PChar; const Source: PChar; MaxLen: C ......

delphi调用VC++6的DLL

1、保证你传递的参数要正确:C++中的char *对应PASCAL中的pchar。
2:C++中导出的函数的参数调用方式要和你DELPHI中的导入的函数参数调用方式要一致!
 例如:    C++的参数调用方式           对应的DELPHI的参数调用方式
           _declspec ......

Delphi中DLL初始化和退出处理


<1>利用Unit的
Initalization与Finalization这两个小节
  可以在Unit的这两个小节中安排Unit的进入和退出,但是
Program

Library并没有这两个部分,所以只能写在Unit中。
<2>利用ExitProc变量
  在Library的begin
..end.中间是可以写代码
的,
这里可以放置
DLL初始化代码
。如果想要做善 ......

Delphi编写系统服务六:在服务中使用COM组件

Delphi编写系统服务六:在服务中使用COM组件 收藏
 在服务中调用COM组件不能像在桌面程序中直接创建,在每次创建之前先调用CoInitialize(nil),释放的时候调用CoUninitialize。例如:调用ADO组件
var
  Qry: TADOQuery;
begin
  CoInitialize(nil);
  Qry := TADOQuery.Create(nil);
  tr ......

Delphi编写系统服务三:编写两栖系统服务

Delphi编写系统服务三:编写两栖系统服务 收藏
 采用下面的方法,可以实现一个两栖系统服务(既系统服务和桌面程序的两种模式)
工程代码:
program FleetReportSvr;
uses
  SvcMgr,
  Forms,
  SysUtils,
  Windows,
  SvrMain in 'SvrMain.pas' {FleetReportService: TService}, ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号