private HtmlDocument ExecuteVerify(string elem_name, string elem_id, string elem_tag) { if (this.InvokeRequired) { ExecuteVerifyDelegate d = new ExecuteVerifyDelegate(ExecuteVerify); return((HtmlDocument)this.Invoke(d, new object[] { elem_name, elem_id, elem_tag })); } else { if (webBrowser.Document == null) { return(null); } foreach (HtmlElement elem in webBrowser.Document.All) { if ((elem_name == null || elem_name == elem.Name) && (elem_id == null || elem_id == elem.Id) && (elem_tag == null || elem_tag == elem.TagName)) { state = StateT.VerifyComplete; return(webBrowser.Document); } } return(null); } }
private void timoutTimer_Tick(object sender, EventArgs e) { TimeSpan ts = DateTime.Now - state_change; switch (state) { case StateT.IDLE: break; case StateT.WAIT_QUERY: response = ""; State = StateT.WAIT_SUBMIT; webBrowser.Url = new Uri(url); break; case StateT.WAIT_SUBMIT: break; case StateT.WAIT_RESPONSE: if (ts.TotalSeconds > timeout) { State = StateT.IDLE; // timeout } break; } }
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { try { switch (state) { case StateT.IDLE: case StateT.WAIT_QUERY: break; case StateT.WAIT_SUBMIT: { if (set_elements.Count > 0 || invoke_elements.Count > 0) { State = StateT.WAIT_RESPONSE; HtmlElement form = webBrowser.Document.Forms[FormId]; foreach (HtmlElement elem in form.All) { if (elem.Name != "" && set_elements.ContainsKey(elem.Name)) { elem.SetAttribute("value", set_elements[elem.Name]); } } foreach (HtmlElement elem in form.All) { if (elem.Name != "" && invoke_elements.ContainsKey(elem.Name)) { elem.InvokeMember(invoke_elements[elem.Name]); } } } else { if (e.Url == webBrowser.Url) { response = (string)(webBrowser.DocumentText.Clone()); State = StateT.IDLE; } } } break; case StateT.WAIT_RESPONSE: { if (e.Url == webBrowser.Url) { response = (string)(webBrowser.DocumentText.Clone()); State = StateT.IDLE; } } break; } } catch { State = StateT.IDLE; } }
public void Subscribe() { RequestCount++; LastEventTime = DateTime.Now; if (PublishedFileId == default || PublishedFileId == PublishedFileId.invalid) { State = StateT.Failed; } PlatformService.workshop.Subscribe(PublishedFileId); State = StateT.SubSent; }
private void webBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) { switch (state) { case StateT.Downloading: if (e.Url.AbsolutePath == webBrowser.Url.AbsolutePath) { state = StateT.DownloadingComplete; } break; } }
public void UnSubscribe() { RequestCount++; LastEventTime = DateTime.Now; if (PublishedFileId == default || PublishedFileId == PublishedFileId.invalid) { State = StateT.Failed; } PlatformService.workshop.Unsubscribe(PublishedFileId); State = StateT.UnSubSent; Log.Called("unsubscribe request sent for: " + PublishedFileId); }
private void ExecuteOpen(string url) { if (this.InvokeRequired) { ExecuteOpenDelegate d = new ExecuteOpenDelegate(ExecuteOpen); this.Invoke(d, new object[] { url }); } else { state = StateT.Downloading; webBrowser.Url = new Uri(url); } }
public HtmlDocument GetNavigatedHtmlDocumentWithWebBrowser(HtmlElement click_elem, string elem_name, string elem_id, string elem_tag, int timeout) { // show submit-form // this.Invoke(new ShowDelegate(this.Show)); RegistryKey key = Registry.CurrentUser.OpenSubKey(@"AppEvents\Schemes\Apps\Explorer\Navigating\.Current", true); HtmlDocument document = null; // overwrite navigating ("click") sound entry to make WebBrowser silent object val = key.GetValue(""); key.SetValue("", ""); try { // state downloading state = StateT.Downloading; // invoke click click_elem.InvokeMember("click"); // wait for download to finish for (; timeout >= 0 && state == StateT.Downloading; timeout -= 1) { System.Threading.Thread.Sleep(1000); } // wait for verify to return document for (; timeout >= 0; timeout -= 1) { document = ExecuteVerify(elem_name, elem_id, elem_tag); if (document != null) { break; } System.Threading.Thread.Sleep(1000); } } catch { } // return navigating ("click") sound entry to orignal value key.SetValue("", val); key.Close(); // hide submit-form // this.Invoke(new HideDelegate(this.Hide)); return(document); }
public static void Main() { var x = StateT <float, Identity <object>, float> .Return(1.0f); var y = StateT <int, Identity <object>, string> .Return("abc"); var z = StateT <int, Identity <object>, string> .Bind(y, Length); // var zz = StateT<int, Identity<object>, int>.Run(z, 8); // Console.WriteLine(zz.Value); for (int i = 0; i < 100000; i++) { StateT <int, Identity <object>, int> .Run(z, 0); } var zz = StateT <int, Identity <object>, int> .Run(z, 0); var xx = StateT <float, Identity <object>, float> .Run(x, 0.1f); Console.WriteLine("x: {0}", xx.Value); Console.WriteLine("z: {0}", zz.Value); }
public static StateT <int, Identity <object>, int> Length(string s) { return(StateT <int, Identity <object>, int> .Return(s.Length)); }
public Node(StateT state) { State = state; }