[C#] Globale Variable, HttpRequest?

04/09/2013 16:08 ElDiabolus#1
Hey,
habe kürzlich angefangen C# zu programmieren. Ich hatte Vorwissen in anderen Sprachen wie AHK und Pawn. Jetzt habe ich mich ein bisschen umgeschaut und frage mich folgende Dinge:

Wie kann ich eine globale Variable erstellen, mit der ich über mehreren Forms arbeiten kann? Also z.B. die eine Form berechnet was und in der anderen ist ne ProgressBar, die den Rechenfortschritt wiedergibt.

2. Wie genau arbeite ich mit HttpWebRequest? Das ist ja nur eine schnellere Möglichkeit, als der WebBrowser, richtig?
04/09/2013 16:13 Requi#2
Die Variable wäre :
Code:
public string str = "Hallo"
Bei HttpWebRequest weiß ich nix. Code nur VB :p
04/09/2013 16:16 ElDiabolus#3
Quote:
Originally Posted by Requι View Post
Die Variable wäre :
Code:
public string str = "Hallo"
Bei HttpWebRequest weiß ich nix. Code nur VB :p
Also wenn ich die privates durch public ersetzen würde, könnte ich sie auch in anderen Forms nutzen? :)
04/09/2013 16:36 Requi#4
Sofern es im gleichen Programm ist.
Dann kann man sie in mehreren Klassen nutzen, die dein Programm hat
04/09/2013 16:41 Schlüsselbein#5
Was aber die Köngsdisziplin im hässlichen-Kot-Schreiben ist.
04/09/2013 16:45 Requi#6
Dann schreib doch gleich ne Lösung :D
Wäre meine Variante :p
04/09/2013 16:49 tolio#7
Quote:
Originally Posted by ElDiabolus View Post
2. Wie genau arbeite ich mit HttpWebRequest? Das ist ja nur eine schnellere Möglichkeit, als der WebBrowser, richtig?
das msdn hat so ziemlich zu jedem code ausführelich erklärungen und beispiele in den meisten .net variationen, so auch zu webrequest: [Only registered and activated users can see links. Click Here To Register...]

das ganze hat im übrigen nichts mit einem webbrowser zu tun sondern lädt einfach nur eine resource aus dem internet herrunter.
04/09/2013 16:51 qkuh#8
Quote:
Originally Posted by ElDiabolus View Post
Also wenn ich die privates durch public ersetzen würde, könnte ich sie auch in anderen Forms nutzen? :)
Nein. Schau dir mal dieses Snippet an.
[Only registered and activated users can see links. Click Here To Register...]
04/09/2013 17:01 ElDiabolus#9
Okay danke und wie verwende ich jetzt HttpWebRequest?
[Only registered and activated users can see links. Click Here To Register...]
Das habe ich mir mal angeschaut, aber 1. ist das ja kein c#
und 2. geht das mozilla addon nicht mehr...
04/09/2013 17:26 tolio#10
ich hab doch nen link gepostet da ist unten ein komplett auskommentieres beispiel in c# inklusive einem großen erklärenden text
04/09/2013 17:34 snow#11
Für die automatisierte Kommunikation zwischen zwei Klassen würde sich doch Delegation eignen, oder? Kenne das unter C# nicht wirklich, aber so lasse ich unter iOS Progressbars während eines WebRequests updaten..

Ansonsten wäre natürlich ein Interface oder etwas vergleichbares geeignet, sodass du der einen Klasse nur noch eine Referenz auf die Klasse im Konstruktor übergeben musst, dank der Interfaceimplementierung ist die Definition (oder zumindest der Deklaration, keine Ahnung, wie C# das macht) der Funktion ja gewährleistet..

Public Variablen sind nach Möglichkeit zu vermeiden.
04/09/2013 18:02 ElDiabolus#12
Quote:
Originally Posted by tolio View Post
ich hab doch nen link gepostet da ist unten ein komplett auskommentieres beispiel in c# inklusive einem großen erklärenden text
Versteh ich nicht. Hab mir nen Kurz-Tutorial angeschaut und habe es hinbekomme mich z.B. per Webbrowser mittels nem Button bei fb anzumelden. Nur das will ich auch mit httpwebrequest hin bekommen + wissen, ob er eingeloggt ist, oder nicht. Zudem wäre nen Plugin nützlich :S
04/09/2013 18:25 snow#13
Schau dir an, was beim Login übertragen wird (LiveHTTPHeaders funktioniert, ansonsten schaust du dir im HTML-Code das Login-Form an) und schick das ab. Als Response wirst du ja wohl eine Antwort bekommen & wenn da ein Token mit dabei ist oder ein Cookie oder was auch immer, kannst du den z.B. in einem weiteren Request testen, oder du erhälst direkt eine Success-Meldung.

Und was für ein Plugin? Eins, das dir den kompletten Code erspart? Schreib es dir doch? Programmieren ist nichts, was sich von selbst erledigt.

Und wenn du den Text + das Beispiel nicht verstehst, solltest du evtl. nochmal die Grundlagen lernen.
04/09/2013 18:44 ElDiabolus#14
Ich meinte das Plugin für Firefox.... Das hat rein garnichts mit dem anderen zu tun...
Hab es jetzt so für EPVP (ohne httpwebrequest):
Code:
webBrowser1.Document.GetElementById("navbar_username").SetAttribute("value", Email.Text);
            webBrowser1.Document.GetElementById("navbar_password").SetAttribute("value", Pass.Text);
            webBrowser1.Document.GetElementById("submit").InvokeMember("click");
Finde beim Anmeldungsbutton nur submit heraus :S Das geht nicht. Wie heißt der Button denn?
04/09/2013 18:47 Requi#15
Google einfach LiveHttpHeaders.
Dann haste es ;)