PDA

View Full Version : سوال: navigatecompleted در internet explorer



rexi1r
یک شنبه 20 آذر 1390, 01:01 صبح
سلام دوستان من internet explorer از کامپوننت microsoft internet control ساختم و یه آدرس رو بهش میدم که برام لود کنه چطور میتونم از navigatecompleted استفاده کنم؟اگه نیاز هست تا سورس برنامه رو هم بذارم؟

rexi1r
یک شنبه 20 آذر 1390, 13:02 عصر
سلام ببخشید که غیر فنی است ولی کسی نمیدوست چکار باید بکنم؟استاتید؟یزرگان؟
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Threading;
using System.IO;
using System.Reflection;
using System.Collections.Specialized;
using System.Collections;
using Microsoft.Win32;
using SHDocVw;
namespace hproxy
{


class Program
{
private static InternetExplorer ie = new InternetExplorer();
private static Program ms = new Program();
static void Main(string[] args)
{
ie.Visible=true;
HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://*:8081/");
listener.Start();
Console.WriteLine("Listening(0)...");
for (; ; )
{
// ms.IEAutoDetectProxy(true);
Console.WriteLine("Listening(1)...");
HttpListenerContext ctx = listener.GetContext();
Worker we = new Worker(ctx);
we.ProcessRequest();
// new Thread(new Worker(ctx).ProcessRequest).Start();
}
Console.ReadLine();

}


class Worker
{
private HttpListenerContext context;
public Worker(HttpListenerContext context)
{
this.context = null;
this.context = context;
}

public void ProcessRequest()
{
bool test=false;
bool test2 = false;
string[] filter = {"perspolis","esteghlal","ghermez","zard"};
string site;
string msg = context.Request.HttpMethod + " " + context.Request.Url;
string url = context.Request.RawUrl;
Console.WriteLine(msg);
Console.WriteLine("url: " + url);
string sb;
foreach (string fil in filter)
{

if (context.Request.Url.ToString().Contains(fil) == true)
{
sb = "<html><body><h1>site shoma tavasoteh khodam filter shod</h1></body></html>";
byte[] b = Encoding.UTF8.GetBytes(sb.ToString());
context.Response.ContentLength64 = b.Length;
context.Response.OutputStream.Write(b, 0, b.Length);
context.Response.OutputStream.Close();
sb = "";
Console.WriteLine(sb);
test = true;
break;
}
else
{
test = false;
}
}
if(test == false)
{
ms.IEAutoDetectProxy(false);
get geturl = new get();
Console.WriteLine("test is true and url is:" + url);
site = "";
site=geturl.GetPage(url);
File.WriteAllText(@"c:\mytestfile.html", site);
foreach (string sti in filter)
{
if (site.Contains(sti) == true)
{
sb = "";
sb = "<html><body><h1>site shoma tavasoteh khodam filter shod</h1></body></html>";
byte[] c = Encoding.UTF8.GetBytes(sb.ToString());
context.Response.ContentLength64 = c.Length;
context.Response.OutputStream.Write(c, 0, c.Length);
context.Response.OutputStream.Close();
sb = "";
test2 = true;
break;
}
else
{
test2 = false;
}
}
if (test2 == false)
{
ie.Stop();
ie.Refresh();
}
}

Console.Clear();
url = "";

}

}
public void IEAutoDetectProxy(bool set)
{
// Setting Proxy information for IE Settings.
RegistryKey RegKey = Registry.CurrentUser.OpenSubKey(@"Software\\Microsoft\\Windows\\CurrentVersion\\Inte rnet Settings\\Connections", true);
byte[] savedLegacySetting = (byte[])RegKey.GetValue("SavedLegacySettings");
byte[] hassan = (byte[])RegKey.GetValue("hassan");
if (set)
{
savedLegacySetting[8] = Convert.ToByte(3);
hassan[8] = Convert.ToByte(3);
Console.WriteLine("proxy is enable.");
}
else
{
savedLegacySetting[8] = Convert.ToByte(1);
hassan[8] = Convert.ToByte(1);
Console.WriteLine("proxy is disable.");

}
RegKey.SetValue("SavedLegacySettings", savedLegacySetting);
RegKey.SetValue("hassan", hassan);
}
}
}


اون جایی هست که ie.refresh میشه میخوام وقتی تموم شدم بفهمم که تموم شده با استفاده از ie.navigatecompleted2 چکار کنم؟

rexi1r
یک شنبه 20 آذر 1390, 18:27 عصر
سه روزه این رو گذاشتم اینجا ؟