Показать сообщение отдельно

Next i
  #2  
Старый 30.03.2007, 18:49
Ch3ck
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме:
5301021

Репутация: 1879


По умолчанию Next i

Изменить пароль на домене:
Код:
function NetUserChangePassword(Domain: PWideChar; UserName: PWideChar; OldPassword: PWideChar;
NewPassword: PWideChar): Longint; stdcall; external 'netapi32.dll'
Name 'NetUserChangePassword';
// Changes a user's password for a specified network server or domain.
// Requirements: Windows NT/2000/XP
// Windows 95/98/Me: You can use the PwdChangePassword function to change a user's
// Windows logon password on these platforms
procedure TForm1.Button1Click(Sender: TObject);
begin
NetUserChangePassword(PWideChar(WideString('\\COMPUTER')),
	 PWideChar(WideString('username')),
	 PWideChar(WideString('oldpass')),
	 PWideChar(WideString('newpass')));
end;
Как закачать файл из интеренета:
Код:
uses
MSHTML_TLB, SHDocVw, ShellAPI;
// function to execute a script function
function ExecuteScript(doc: IHTMLDocument2; script: string; language: string):
Boolean;
var
win: IHTMLWindow2;
Olelanguage: Olevariant;
begin
if doc <> nil then
begin
	try
	 win := doc.parentWindow;
	 if win <> nil then
	 begin
		try
		 Olelanguage := language;
		 win.ExecScript(script, Olelanguage);
		finally
		 win := nil;
		end;
	 end;
	finally
	 doc := nil;
	end;
end;
end;
// 2 Examples how to login to gmx homepage
procedure FillInGMXForms(WB: ShDocVW_TLB.IWebbrowser2; IDoc1: IHTMLDocument2;
Document: Variant; AKennung, APasswort: string);
const
IEFields: array[1..4] of string = ('INPUT', 'text', 'INPUT', 'password');
var
IEFieldsCounter: Integer;
i: Integer;
m: Integer;
ovElements: OleVariant;
begin
if Pos('GMX - Homepage', Document.Title) <> 0 then
	while WB.ReadyState <> READYSTATE_COMPLETE do
	 Application.ProcessMessages;
// count forms on document and iterate through its forms
IEFieldsCounter := 0;
for m := 0 to Document.forms.Length - 1 do
begin
	ovElements := Document.forms.Item(m).elements;
	// iterate through elements
	for i := ovElements.Length - 1 downto 0 do
	begin
	 try
		// if input fields found, try to fill them out
		if (ovElements.item(i).tagName = IEFields[1]) and
		 (ovElements.item(i).type = IEFields[2]) then
		begin
		 ovElements.item(i).Value := AKennung;
		 Inc(IEFieldsCounter);
		end;
		if (ovElements.item(i).tagName = IEFields[3]) and
		 (ovElements.item(i).type = IEFields[4]) then
		begin
		 ovElements.item(i).Value := APasswort;
		 Inc(IEFieldsCounter);
		end;
	 except
		// failed...
	 end;
	end; { for i...}
end; { for m }
// if the fields are filled in, submit.
if IEFieldsCounter = 3 then
	ExecuteScript(iDoc1, 'document.login.submit()',
	 'JavaScript');
end;
function LoginGMX_IE(AKennung, APasswort: string): Boolean;
var
ShellWindow: IShellWindows;
WB: ShDocVW_TLB.IWebbrowser2;
spDisp: IDispatch;
IDoc1: IHTMLDocument2;
Document: Variant;
k: Integer;
begin
ShellWindow := CoShellWindows.Create;
// get the running instance of Internet Explorer
for k := 0 to ShellWindow.Count do
begin
	spDisp := ShellWindow.Item(k);
	if spDisp = nil then
	 Continue;
	// QueryInterface determines if an interface can be used with an object
	spDisp.QueryInterface(iWebBrowser2, WB);
	if WB <> nil then
	begin
	 WB.Document.QueryInterface(IHTMLDocument2, iDoc1);
	 if iDoc1 <> nil then
	 begin
		WB := ShellWindow.Item(k) as ShDocVW_TLB.IWebbrowser2;
		Document := WB.Document;
		// if GMX page...
		FillInGMXForms(WB, IDoc1, Document, AKennung, APasswort);
	 end; { idoc <> nil }
	end; { wb <> nil }
end; { for k }
end;
// Example 1: Navigate to the gmx homepage in the IE browser an login
procedure TForm1.Button1Click(Sender: TObject);
begin
ShellExecute(Handle,
	'open',
	'http://www.gmx.ch',
	nil,
	nil,
	SW_SHOW);
Sleep(2000);
LoginGMX_IE('user@gmx.net', 'pswd');
end;
// Example 2: navigate to the gmx homepage in the Webbrowser an login
procedure TForm1.Button2Click(Sender: TObject);
var
IDoc1: IHTMLDocument2;
Web: ShDocVW_TLB.IWebBrowser2;
begin
Webbrowser1.Navigate('http://www.gmx.ch');
while Webbrowser1.ReadyState <> READYSTATE_COMPLETE do
	Application.ProcessMessages;
Webbrowser1.Document.QueryInterface(IHTMLDocument2, iDoc1);
Web := WebBrowser1.ControlInterface;
FillInGMXForms(Web, iDoc1, Webbrowser1.Document, 'user@gmx.net', 'pswd');
end;
Может кому и пригодится...
 
Ответить с цитированием