Zum Inhalt springen

mOSSpOWER

Mitglieder
  • Gesamte Inhalte

    241
  • Benutzer seit

  • Letzter Besuch

Beiträge von mOSSpOWER

  1. Hallo "Kollegen",

    ich habe mich nun zu einem privaten Upgrade durchgerungen (IE7 ... die meissten Bugs sind ja nun erkannt :)) .. trotzdem nervt mich einiges total gewaltig, nämlich möchte ich, dass wenn ich auf eine Webdatei klicke (z.B. HTML), dass ein neues Browserfenster aufgeht und nicht in einem offenen angezeigt wird, was total nervig ist. Zu erwähnen ist noch, dass ich die Tabfunktionalität abgeschaltet habe. Hat jemand eine Idee, wie ich dem Browser mitteilen kann, dass er ein neues Browserfenster öffnet (wie auch im MSIE 6)

    Danke schon mal im voraus.

  2. Hallo Kollegen,

    heute mal ein Problem, dass mir bisher noch nie aufgefallen ist - aber es ist vorhanden (nicht nur im MSIE, auch in Firefox). Folgender Quellcode:

    <html>
    
      <body>
    
        <a href="javascript: void(0)" onMouseOut="alert('out')"><img src="bla.gif" />Some Text</a>
    
      </bodY>
    
    </html>

    Ich habe hier einem Link das Mouseout-Event zugewiesen. Im Link befindet sich ein Bild und Text. Was ich jetzt immer vermutet habe war, dass das out-Event gefeuert wird, wenn die Maus wirklich aus dem Link rausnavigiert (macht es ja auch) aber nicht, wenn ich z.B. vom Text ganz langsam zum Bild navigiere und umgekehrt. Es kann doch nicht wahr sein. Ist das ein Bug? Ich möchte doch das Event nicht, wenn innerhalb des Links ein Element verlassen wird (z.B. Text) und innerhalb des Links in ein neues reinnavigiert wird (z.B. Bild). Ich will, dass das Event nur dann gefeuert wird, wenn ich wirklich aus dem (gesamten) Link rausnavigiere. Hat jemand eine Idee?

    Danke schon mal im voraus für etwaige Antworten.

    P.S. Im angehängten Code kann man das auch testen.

  3. Ein Blick ins Impressum verät seltsames:

    Redaktion, inhaltlich verantwortlich gemäß Â§ 10 Absatz 3 MDStV:
    
    Hermann Schmid
    
    Internet-Redaktion der Vereinten Dienstleistungsgewerkschaft ver.di
    
    Paula-Thiede-Ufer 10
    
    10179 Berlin
    
    Telefon (030) 6956-1061
    
    Fax (030) 6956-3012
    
    Internet: www.verdi.de

    Wie auch immer, wenn jemand sechs Jahre Berufserfahrung hat bei einem großem Unternehmen und die mir dann Brutto / Monat 2251 € "rausspucken", dann war der Programmierer krank oder deren Daten sind mittels einer Random-Methode generiert worden (bei einer Max-Grenze).

    ... oder ich lebe (seit Jahren) in einer völlig anderen Welt

  4. Hallo "Kollegen",

    ich habe bei mir ein "Phänomen" festgestellt und komme einfach nicht auf die Lösung, ich hoffe, mir kann jemand helfen.

    Hintergrund: Ich habe eine Anwendung geschrieben, die auf ein (offenes) Browserfenster (Internet Explorer) zugreift und von dieser Anwendung in regelmäßigen Intervallen einen Screenshot macht und als PNG speichert. Leider muss das Fenster aktiv (also sichtbar sein), sonst funktioniert die Anwendung nicht. Daher habe ich mich entschlossen, dieses Programm "auszulagern", denn es ist ja total nervig, wenn ich das auf meinem PC laufen lasse, auch wird in dem Programm immer das Fenster aktiv gemacht und maximiert, so dass man nicht mehr vernünftig arbeiten kann.

    Jetzt zum Problem: Lasse ich das Programm auf meinem Rechner (Arbeit) laufen, mittels Remote Desktop und ich minimiere das Remote-Desktop-Fenster oder ich schließe es (die Session bleibt aktiv), dann läuft die Anwendung richtig weiter, richtig bedeutet, die Bilder werden weiterhin erzeugt. Probiere ich dasselbe nun auf meinem Zweitrechner zu Hause (Betriebssystem ist absolut das gleiche wie in der Arbeit), und starte das Programm, dann funktioniert das nur solange, wie ich nicht a) das Remote-Desktop-Fenster minimiere oder B) wenn ich es nicht schließe. Das bedeutet, dass immer dann die Anwendung komplett schwarze Bilder erzeugt. Das finde ich komisch, denn wenn ich meinen Bildschirm an meinem Zweit-PC anschließe und mich anmelde (nicht Remote-Desktop) und das Programm starte, dann funzzt das auch wunderbar, wenn ich das VGA-Kabel ziehe. Ich weiss nicht mehr weiter. An was kann das liegen.

    OK, was ich jetzt nicht unbedingt glaube, aber in der Arbeit rufe ich erst einen Server auf (Windows 2003 Server), der mich delegiert zu meinem Arbeitsplatzrechner, viellecht liegt hier die Antwort? :rolleyes:

    Wäre echt dankbar für Hilfe.

  5. Hmm irgendwie ne komische Auswertemethodik die die haben. Der Lohnspiegel ist nach 5 oder 6 Fragen fertig.

    Den andere Fragebogen hab ich dann nach etwa 40 Fragen beendet weil's mir zu blöd wurde. Was man dort alles eingiebt, kann doch gar nicht in den Lohnspiegel einfließen weil dort diverse (wiichtige) Angaben überhaupt nicht gefragt werden.

    Was dort als Durchschnittsgehalt für einen Fachinformatiker mit 6 Jahren Beruferfahrung herauskommt, hab ich direkt nach der Ausbildung bekommen.

    Dim

    Ja, stimmt, wahrscheinlich ist das eine Arbeitgeber-Seite ;)

  6. Hallo Kollegen,

    ich "hänge z. Zt." etwas in der Luft. Ich persönlich weiss nicht, wie es weitergehen soll. Ich bin jetzt 5 1/2 Jahre in der Softwareentwicklung tätig (Java + C#/.Net) und habe bei vier Firmen gearbeitet. Jetzt habe ich (wieder mal) gekündigt und werde ab Dezember / Januar wieder was suchen. Ich liebe es zu programmieren (bilde mich auch ständig fort) aber HASSE es, für meinen gegenwärtigen Arbeitgeber zu coden (keinen Plan, total veraltete Technologieen, keine Dokumentationen, Teilabzug der kompletten Programmiermannschaft an einem anderen Standort, Zwangsweisemachung zum PL, was ich nicht will). Nur frage ich mich, ob ich so weitermachen soll. Ich arbeite gerade in meiner Firma an einem Projekt, bei dem vier Freiberufler mitarbeiten (Fachkräftemangel). Was "die so abliefern" habe ich auch drauf, so dass ich es auch mal ggf. als Freiberufler probieren könnte. Wie fange ich hier am besten an. Anbieten, Stundensätze, Verträge, keine Ahnung. Kennt jemand gute Links? Eine andere Sache, die mich reizen würde, wäre ein Arbeiten im englischsprachigem Ausland. Hat hier jemand Erfahrung, wie kommt man an Kontakte ran? Naja, meinen Lebenslauf in Monster habe ich gleich wieder deaktiviert, da soviele Angebote reinkamen, das ist nicht das Problem, der Markt scheint z. Zt. sehr arbeitnehmerfreundlich zu sein. Ich habe es einfach satt, 5 Umzüge in den letzten 5 Jahren und jetzt wahrscheinlich wieder, das kann doch nicht so weitergehen. :rolleyes:

  7. Naja, Du kannst natürlich mit dem Flashbutton über Variablen kommunizieren, aber dafür muß natürlich auch der Button entsprechend programmiert sein. Solang dem Button keine Variablenübergabe verpasst wurde, ist das Ding nicht von außen erreichbar.

    Es ist halt die Frage ob das wirklich so ist. Was ich in meiner Anwendung habe ist das "plain" Internet-Explorer-Object. Mit diesem kann ich (auf dem Server) das Document lesen und manipulieren, auch kann ich damit JavaScript ausführen. Ich dachte jetzt, dass ich entweder mittels JavaScript (über das Browser-Objekt) oder gleich durch das Objekt an das Button-Ereignis komme, denn es muss ja gehen, weil das Flash, ActiveX-Componente in den Internet Explorer eingebetete ist, das heisst, dass letztendlich der Internet Explorer das Signal (Click Button) an Flash weitergibt. Naja, einfach mal weitersuchen, danke erst mal für Deine Hilfe.

  8. Was genau soll denn passieren, wenn Du auf den Button klickst? Soll sich das Flashelement verändern, soll ne HTML-Seite geladen werden, oder was soll sonst passieren?

    Grütze

    hellslawyer

    Naja, es soll das passieren, was auch passiert, wenn ich mit der Maus "herkömmlich" auf einen (Flash) Button klicke. Dann macht halt das Flash-Programm irgendwas (das was halt in Flash programmiert wurde). Mir geht es darum, dass ich diesen Mausklick von außen selbst, z.B. mittels JavaScript, durchführen kann.

  9. Hallo Kollegen,

    ich suche nun schon seit über einer Woche nach einer Lösung, aber ich finde nix im Netz. Vielleicht kann mir hier jemand helfen. Ich suche nach einer Möglichkeit, programmatisch ein Element in Flash auszuwählen. Mal ein Beispiel. Eine Website embeded ein Flashobjekt. Auf diesem Objekt befindet sich ein (Flash) Button. Wie um alles in der Welt kann ich mit diesem interagieren? Über Javascript? Wie? Das muss doch möchlich sein, denn der Internet Explorer macht ja auch nix anderes, als dem eingebetteten ActiveX-Element (Flash) mittzuteilen, dass der Benutzer auf einen (Flash) Button geklickt hat. Ich drehe noch durch, das muss doch irgendwie gehen. Hat jemand vielleicht noch andere Ideen, wo ich die Lösung herbekommen könnte? Danke schon mal für etwaige Antworten?

  10. OK, ich habe es gelöst. Dass es so einfach ist hätte ich nicht mal im Traum gedacht. Für alle die mal bei diesem Thread landen, hier ist eine sehr gute Einführung.

    Unicode Optical Character Recognition - The Code Project - C# Algorithms

    .. und dann kann man total einfach auf die Pixel im Bild zugreifen, einfacher geht es nimmer ...

    Bitmap bitmap = new Bitmap("C:/two3.bmp");
    
    bitmap.GetPixel(j, i);

    ... von daher muss ich sagen, dass auch viele Capturings nix bringen, oder unsicher sind, z.B. dieses wäre total leicht zu "knacken" => https://www.moneybookers.com/app/login.pl ... naja, mir soll's egal sein.

  11. Hallo Kollegen,

    also, erst mal eins vorneweg, nein, ich will keine Capturings knacken, ich glaube so viel Freizeit habe ich nicht, auch scheint es mir, abhängig von der Qualität des Capturings, eher ziemlich sicher, also eher gegen unmöglich zum umsetzen, und soll hier nicht mein Problem sein. Es gibt ja Programme, die z.B. aus einem Film die Texte der Untertitel extrahieren. Ich z.B. möchte von Livedaten (Aktienkurse, Fußballergebnisse, ect.), dargestellt mit Flash, einen Screenshot machen und die Texte lesen. Das ist zwar sicherlich sehr aufwendig, und für jede Flashdarstellung neu zu konfigurieren (Schriftgröße, Schriftart), aber wenn man erst mal für jede neue Konfiguration immer ein paar Buchstaben + Zahlen eingegeben hat (also die Bedeutung, dass ein Abbild von A -> der Buchstabe A ist), denke ich, dass dann das Programm sich selbst konfigurieren kann und letztlich auch diese Daten auslesen kann. Nur habe ich ein Problem. Wie oder wo fange ich damit an. Kann mir einer Seiten für den Einstieg nennen. Hat jemand damit Erfahrung gemacht. Ich weiss, es wird ziemlich aufwendig sein, aber ich will unbedingt dazu in der Lage sein. Also ich suche nix, wo die Buchstaben krumm oder verschieden groß mit Hintergrundpunkten (sog. Capturing) dargestellt werden, sondern ich kann davon ausgehen, dass pro Konfiguration die Buchstaben / Zahlen immer in der gleichen Größe auf der gleichen Linie, in der selben Schriftart dargestellt werden. Danke schon mal für etwaige Hilfestellungen.

  12. Hallo,

    automatisiert navigieren?

    Machst Du die Kontrollen per Hand? Denn 100 Instanzen, das sind ja auch für einen Menschen viel. Ich verstehe das Konzept überhaupt nicht. Für mich klingt es so, als ob Du Dir von mehreren Webseiten Daten automatisiert besorgen willst und eine Rückmeldung bekommen möchtest, falls bei einer Seite keine Daten geliefert wurden.

    Die Daten kann ich ohne Probleme direkt über HTML herunterladen, wenn es XHTML ist, dann per XSL transformieren, falls kein XHTML, dann per Stringparsing. Die URLS zu den Webseiten kenne ich ja auch, d.h. wenn ein Connect fehlschlägt oder die Transformation / Stringparsing nicht klappt, weiss ich bei welcher Seite ein Fehler aufgetreten ist. Ajax brührt Dich ja nur indirekt, da dies ja mit dem Server zusammenarbeitet und Du die Daten letztendlich im HTML stehen hast.

    Tut mir leid für das Unverständnis

    Phil

    Klar, Du hast recht (und mein Vorhaben auch richtig verstanden). Ich habe mir einen Navigator programmiert, mit dem man automatisiert navigieren kann. Nun, warum ich dennoch meine Variante wähle ist ganz einfach

    1) Ich will auch AJAX (dynamische - und nachgeladene Inhalte) lesen können (mit "normalen" HttpRequest-Objekten geht das nicht)

    2) Wenn ich immer wieder auf eine Seite muss (ggf. auch anmelden ect.), und mir die HTML-Seite auslesen, dann dauert dies ewig länger, als wenn ich schon auf der Seite bin und mir zum Auslesen (was ich über Variante A immer z.B. mit einem HTML-Parser oder plain RegEx machen muss) das DOM-Objekt des Internetexplorers schon zur Verfügung stellt - soll heißen, ich komme wesentlich schneller an meine Daten .. OK, bis die Seite das erste mal aufgerufen wurden und der DOM geladen, dauert am Anfang länger, aber bereits ab dem zweiten oder dritten Zugriff habe ich Variante A outperformed.

    Gruß

    P.S. Ich gebe Dir mal ein Beispiel. Lese ich z.B. Daten von einem sehr schnellen Liveticker (z.B. Fußball) und die Seite bietet AJAX-Support an, dann bekomme ich sofort in das vorhandene DOM-Objekt Änderrungen geliefert und brauche nur zyklisch das DOM durchlaufen. Anderenfalls müsste ich einen Refresh machen oder neu auf der Seite anfragen und den Stream auswerten (was sehr performancelastig ist)

  13. Hallo,

    nur mal so eine generelle Frage: Warum ~100 IE Instanzen? Um zu prüfen, ob eine Webseite da ist oder nicht, reicht es doch einfach einen HTTP Connect zu machen.

    Gruß

    Phil

    Ne, ich muss dann auf diesen Seiten navigieren und Daten einsammeln, die bleiben dann immer solange offen, bis kein Fehler passiert .. kann Tage oder Monate dauern. Hier kann ich dann den Status halten (bei z.B. AJAX-Seiten) ... d.h. ich brauche nicht immer neu zur Seite navigieren. In der Regel passiert halt immer dann ein Fehler, wenn der Server nicht oben ist, oder Änderrungen an der Seite durchgeführt wurden. Mit den Screenshots kann ich die Fehler viel schneller finden.

  14. Hallo Kollegen,

    ich erstelle gerade eine Anwendung, die sich viele Informationen (Quoten, Ergebnisse ect.) aus dem Internet beschafft. Hier können zu Spitzenzeiten 70-100 InternetExplorer-Objekte instanziert sein und laufen. Natürlich werden alle Fehler, also es kann nicht wie gewünscht navigiert werden, festgehalten, hier die ganze HTML-Datei. Da es ja eine Zeit lang dauert, bis man das Fehlverhalten von allen Websites herausgefunden, bzw. das finden von Fehlern wesentlich schneller geht mit zusätzlichen Screenshots, dachte ich mir, dass ich eben immer bei einem Fehler zusätzlich, neben dem HTML-File, ein Screenshot erstelle. Dies funktioniert auch wunderbar. Nur habe ich hier ein Problem, bezüglich der Sichtbarkeit des Fensters. Wenn ich das InternetExplorer Objekt auf Visible = false stelle, soll später ein Windows-Service sein und den MSIE will ich nicht sehen, dann bekomme ich immer ein schwarzes Bild. Komisch ist, dass wenn ich alle Objekte auf meinem zweiten Bildschirm aufrufe (und diesen ausschalte), die Bilder trotzdem vorhanden sind (bei Visible = true). In ferner Zukunft (wenn das Programm fertig ist), werde ich natürlich die Anwendung auf einem Server laufen lassen, hier möchte ich eigentlich überhaupt keinen Bildschirm anschliesen (nur mit Remote-Desktop). Jetzt die Frage, muss ich auf die Images verzichten, wenn auf dem Server eine Exception fliegt, oder gibt es da eine Möglichkeit, denn im Bild sind ja auch nur irgendwelche binären Daten gespeichert. Gegenwärtig mache ich das, wie wahrscheinlich die meisten, mit User32.dll und GDI32.dll.

    Freue mich über Eure Antworten.

  15. OK, hat sich erledigt, ich war wirklich auf dem Schlauch gestanden. Da immer eine Liste/Collection null ist, habe ich es so gelöst:

    IEnumerable active;
    
    if(elementCollection != null) {
    
      active = elementCollection;
    
    }
    
    else {
    
      active = inputElements;
    
    }
    
    
    foreach(IHTMLElement element in active) { ... 

  16. Hallo "Kollegen",

    ich "steh' hier auf dem Schlauch" - vielleicht kann mir jemand helfen .. ist zwar nicht "überlebenswichtig", doch würde mich das schon interessieren. Ausgangspunkt ist, dass ich eine Collection habe und eine IListe und möchte die auf "eins" casten, wie mache ich das (vorausgesetzt es ist möglich) .. ich möchte nicht zweimal die gleiche Schleife schreiben.

    1. Collection ist vom Typ IHTMLElementCollection (Inhalt IHTMLElement)

    2. IList<IHTMLElement>

    Gibt es irgendwie ein Basisobjekt (mit Enumerator), wo ich beide "zusammen-casten" kann?

    Gruß und Danke schon mal für etwaige Antworten

  17. Hallo Kollegen,

    OK, was ich möchte ist, dass ich in einer Library-Anwendung die Möglichkeit habe, Fehler in Englisch und Deutsch darzustellen. Nun bin ich aus der "Java-Welt" gewöhnt, hier Propertyfiles zu erstellen und diese in den Classpath zu setzen, das war es. Meine Frage hier lautet, wie ist die Vorgehensweise bei C# (also in einer Console- oder Libraryanwendung). Ich habe gelesen, dass ich jede Textdatei (Key-Value-Pairs) mit ResGen explizit in eine *.resource-Datei konvertieren muss. Ist dies richtig? Wie schaut es mit den *.resx-Dateien aus. Was ist der Unterschied? OK, ich habe mit ResGen Resourcesfiles erstellt. Jetzt würde ich gerne mittels ...

    //ResourceManager res = new ResourceManager("SiteNavigationErrors", Assembly.Load("Util"));
    
    ResourceManager res = new ResourceManager("Util.SiteNavigationErrors", Assembly.GetExecutingAssembly());
    
    //Thread.CurrentThread.CurrentCulture = new CultureInfo("de"); 
    
    //Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("de");
    
    Console.WriteLine(res.GetString("ERR_001"));

    ... darauf zugreifen .. aber egal, welche Assembly ich lade, immer bekomme ich die Fehlermeldung:

    Could not find any resources appropriate for the specified culture or the neutra

    l culture. Make sure "Util.SiteNavigationErrors.resources" was correctly embedd

    ed or linked into assembly "Util" at compile time, or that all the satellite ass

    emblies required are loadable and fully signed.

    Was muss ich hier noch machen? Das kann doch nicht so schwer sein. Die Resourcefiles sind doch embeded. Muss ich hier den voll-qualifizierten Pfad angeben?

    OK, ich erkläre kurz mal die Zusammenhänge.

    Ich habe Consolenanwendung (Accessor), welche auf KLasse in Libraryanwendung (Util) zugreift. In Util habe ich die Resourcefiles im Pfad "Web/Service/SiteNavigation". Wie kann ich darauf zugreifen. Danke schon mal für eure Antworten. Leider kann ich im Netz keine Antwort finden.

    Gruß

  18. mal ne ne einfache frage, was hast du vor?

    Willst du nur nen WebRequest machen? Hast du schonmal vom HttpWebRequest gehört?

    Ich bin mir zwar nicht 100 Prozent sicher, aber mit 99.99 prozentiger Sicherhteit kann man imo mit einem WebRequest kein Scripting parsen, d.h, wenn ich eine Webseite aufrufe, bekomme ich immer den aufgerufenen Quellcode - mit dem Browserobjekt kann ich aber den manipulierten (z.B. mittels AJAX) Quellcode erhalten und habe mit dem Browser auch gleich Zugriff auf das DOM für (schnellere) weitere Operationen - zusätzlich habe ich auch die Möglichkeit weiterzunavigieren und den Status zu halten. Bei einem WebRequest müsste ich immer einen neuen Request schicken (Stichwort Frames, die sind aber auch schon im InternetExplorer geladen, daher Performance-Gewinn). Im wesentlichen geht es mir darum, dass ich den Quellcode bekomme, den der User visuell im Browser sieht (der sich im Speicher befindet) und nicht den, den der User sieht, wenn er sich den HTML-Quellcode ansehen möchte (dies ist nämlich immer der initial geladene) - und zu guter letzt geht es mir darum, dass ich immer Änderrungen im DOM (mittels AJAX) sofort mitbekomme, ohne wieder einen neuen Request "abzufeuern" - da ich ja einen Speicherausschnitt (DOM) habe.

    Proof me wrong, ich bin offen für Neues ;)

    P.S. Ich will es jetzt nicht testen, da ich mir so sicher bin, wenn Du aber mit dem HttpWebRequest obige Seite aufrufst, wirst Du IMMER! im Quellcode u.a. finden:

    <div id="tabela_mecze_id_czekaj">Please wait !!!</div>

    ... ich will aber

    die nach dem "wait" geladenen Daten sehen .. u.a.

    <div id="tablea_mecza_id_czakaj" style="DISPLAY: none">Please wait !!!</div>

    Gruß

  19. OK, selbst ist der Mann :D ... für alle die es interessiert:

    ...

    string url = "http://futbol24.com/f24_livenow/LiveNow.html";
    
    Object o = null;
    
    SHDocVw.InternetExplorer internetExplorer = new SHDocVw.InternetExplorerClass();
    
    internetExplorer.Silent = true;
    
    internetExplorer.Navigate(url, ref o, ref o, ref o, ref o);
    
    bool ajax = false;
    
    
    while(true) {
    
      if(internetExplorer.ReadyState != tagREADYSTATE.READYSTATE_LOADING && !ajax) {
    
        String html = ((IHTMLDocument2)internetExplorer.Document).body.innerHTML;
    
        ajax = html.IndexOf("style=\"DISPLAY: none\">Please wait !!!") != -1;
    
    
        if(ajax) {
    
          break;
    
        }
    
      }
    
    
      Thread.Sleep(50);
    
    }
    
    

    ...

    Ich brauche dieses Browserobjekt überhaupt nicht ... So, ich mach' jetzt Pause, wieder ein DURCHBRUCH! ... hey, natürlich ist das Handling noch nicht "optimal", also keine Postings diesbezüglich ;)

  20. Hallo Kollegen,

    Ich möchte mit einer Consolenanwendung (später Windowsdienst) Screenscraping durchführen, also fällt hier schon mal das WebBrowser Control weg, da ich keine Form verwende. Nun gut, geht alles wirklich doll mit ...

    
    Object o = null;
    
    String url = "http://futbol24.com/f24_livenow/LiveNow.html";
    
    SHDocVw.InternetExplorer internetExplorer = new SHDocVw.InternetExplorerClass();
    
    IWebBrowserApp webBrowser = (IWebBrowserApp)internetExplorer;
    
    webBrowser.Visible = true;
    
    webBrowser.Navigate(url, ref o, ref o, ref o, ref o);
    
    Thread.Sleep(5000); // OK, das ist billigstes Ereignishandling 
    
    IHTMLDocument2 doc = (IHTMLDocument2)webBrowser.Document;
    
    Console.Write(doc.body.innerHTML);[/code]

    Wenn ich diesen Code ausführe, dann poppt ein Browserfenster hoch und es wird die Seite angezeigt. OK, jetzt bleiben aber noch zwei Probleme übrig:

    1) Ich möchte kein neues Browserfenster angezeigt bekommen. Ich möchte alles "behind" machen. OK, dann setzen wir Visible auf false ...

    2) Ich möchte den dynamischen HTML-Inhalt auslesen, nur kann ich das, wenn das Fenster offen ist. Dynamisch an dieser Seite ist, dass mittels AJAX die Ergebnisse im Hintergrund nachgeladen werden. Nach dem initialen Aufruf der Seite wird der Text "Please wait!" angezeigt, und danach die Ergebnisse nachgeladen. Mit meinem Programm kann ich auch auf die Ergebnisse zugreifen, vorausgesetzt ist allerdings, dass visible auf true ist, das möchte ich aber nicht, siehe 1). Nun bekomme ich immer (wenn visible true) im HTML angezeigt "Please wait" .. egal, wielange ich den Thread anhalte. Was mache ich falsch, wer kann mir helfen? Danke schon mal für etwaige Antwort.

  21. 1. Was meinst du damit? Um sie zu konsumieren - Natürlich, um sie zu hosten - nein.

    2. Die Host-Anwendung (ja, natürlich) oder die konsumierende (ja, über die Konfiguration)

    3. Die Lösung mit Webservice und Remoting ist natürlich langsamer weil der komplette Webservice verkehr nochmal Base64 kodiert werden muss und Overhead in der Datenübertragung erzeugt. Die Frage ist, ob du einen Webservice brauchst. Habt ihr Kunden die den Service nutzen? Soll der über das Internet verfügbar sein? Wenn beides mit nein beantwortet wird ist die Remoting-Lösung besser. Als Webservice sollte man keine permanent laufende Applikationen realisieren, das ist eher ein Windows-Service. Mit dem kann man z.B. über Remoting kommunizieren.

    Hallo, Danke für die Antworten. Nun, heute bin ich schlauer, ich habe mich mal eingelesen in .NET-Remoting. Das Programm will ich privat erstellen. Ich werde es so lösen, dass ich beides implementiere. Ich werde den Service erstellen und über TCP-Channel kann man dann (im lokalen Netzwerk) remote auf den Service zugreifen. Für Zugriffe außerhalb des Netzwerkes (und von anderen Applikationen aus, z.B. Java) werde ich eine Web Service dazwischen schalten, der dann mittels IPC Channel (gleicher Rechner) auf das Service zugreift. Hier kann ich ja die Remoting-Objekte stateful machen, die ich brauche. Danke für eure Anregungen und Antworten.

  22. 1. Meinst du das Hosten eines Webservices oder das konsumieren? Zum hosten brauchst nicht zwingend einen IIS, ich würde es aber sehr empfehlen. Wenn du dir z.B. mal den Cassini-Webserver runterlädst (ein Open-Source Webserver in C# geschrieben) siehst du das es relativ einfach ist WebAnwendungen zu hosten.

    2. Was meinst du mit Statefull Projekt, einen Statefull Webservice? Eine Instanz des Services erstellst du sowieso nicht, das sieht nur so aus. VS erstellt ein Proxy Objekt das die gleiche Schnittstelle bietet wie der Webservice selbst und das mit new Instanziiert wird, beim Aufruf werden aber tatsächlich nur Soap-Requests zum Service erzeugt. Dein Session-Handling kannst du auch selber implementieren indem zu z.b. eine Logon Mehtode schreibst die eine GUID zurückliefert. Wenn ich mir deine Beschreibung so durchlese solltest du allerdings nochmal prüfen ob ein WS das richtige für dich ist. Deine Applikationen können natürlich auch mit einer Stored-Procedure reden, da würde die komplette WS Schicht wegfallen können. Im SQL Server 2005 kannst du auch .NET Assemblys als Stored-Procedure verwenden.

    3. Das ist zu unpräzise, worum geht es? Um 3 Webservices? Die Lifetime kannst du über die Webconfig/machine.config steuern, dabei solltest du aber genau wissen was du tust. Der Service wird "heruntergefahren" wenn keine Session mehr aktiv ist (plus 20 Minuten glaube ich). Du kannst auch asynchrone Requests erstellen, so das du in der Zwischenzeit andere Dinge erledigen kannst. Generell ist das 20 Minuten Session Limit schon recht sinnvoll. Evtl. ist für dich aber wirklich ein Webservice nicht geeignet, was spricht z.B. gegen Remoting oder WCF ?

    1) Ich meinte, ob man z.B. in einer Windows-Forms-Anwendung einfach ein paar Web Services Klassen hinzufügen kann, also nicht explizit in einem Webprojekt.

    2) Mit stateful meinte ich, dass die Anwendung (als ganzes) weiterläuft, auch nachdem ein Request verarbeitet wurde, aber ich glaube das erledigt sich in ...

    3) Eine stateful Anwendung bekomme ich nur mit Remoting hin (denke ich). Ich erkläre mal kurz, was ich möchte. Ich erstelle ein Programm (oder Projekt, wie auch immer). Dieses soll nonstop laufen. Nun soll man von anderen Programmen aus (C#-Anwendungen UND Web Services) auf Services (Methoden) von der stateful Anwendung zugreifen. Natürlich könnte ich in der stateful Anwendung veranlassen, dass Zwischenergebnisse in persistiert werden (DB oder XML), jedoch möchte ich dies aus Performancegründen und Zeitgründen nicht, da z.B. Änderrungen im Sekundentakt vorkommen können und ein permanentes schreiben auf die Performance drückt. Es geht wahrscheinlich nur mit Remoting. Die Frage ist, ob ich ein Webservice davorschalte und dann mittels Remoting auf die stateful Anwendung zugreife ODER ich alles IN EINEM Webservice mache, wobei ich hier nicht weiss, wie es mit der Performance aussieht, wenn ich z.B. lokal (von mir aus auch im eigenen Netzwerk) auf die stateful Anwendung zugreifen will. Was wäre der Nachteil, wenn ich gleich auf Remoting verzichte und immer über ein Web Service gehe .. oder bin ich mit Remoting schneller, wenn ich C#-Programme schreibe, die den Service nutzen wollen. Wie würdet Ihr das lösen? Danke schon mal für etwaige Antworten.

  23. Du kannst einer Windows- oder Konsolenanwendung einen WebService hinzufügen.

    Projektmappenexplorer --> Rechtsklick auf Projekt --> Webverweis hinzufügen --> Deinen WebService auswählen... --> Proxy wird erstellt

    Dann den Namespace in deiner Anwendung einbinden

    in C# --> using localhost; //Wenn dein Webservice lokal gehostet wird

    oder eben localhost.Webmethode();

    OK, sorry, da habe ich mich wohl falsch ausgedrückt. Ich meinte Web Service hosten, also Server, nicht Client.

  24. Hallo Kollegen,

    ich habe drei Fragen, wobei die letzten beiden die wichtigeren sind

    1) Wenn ich einen Webservice erstellen möchte, MUSS! ich dies immer in einem VS-Webservice-Application-Projekt machen? ... oder kann ich auch einer Windows- oder Consolenanwendung einen Web Service hinzufügen. OK, ich will mich nur vergewissern, kann mir aber beim besten Willen nicht vorstellen, dass dies funktioniert. Warum eigentlich nicht, müsste doch nur im IIS ein virtuelles Verzeichnis einrichten?

    2) Wie schaut eine Architektur aus, wenn ich ein STATEFUL-Projekt von mehreren anderen Programmen (z.B. Web-Service-Projekt und Console-Projekt) aufrufen möchte, brauche ich dann jeweils eine Instanz, also in diesem Beispiel zwei des STATEFUL-Projektes? Ich möchte keinen "persistenten Austausch", d.h. ich möchte nicht, dass das stateful Projekt dauernd die Daten "zwischenpersistiert" (Datenbank oder XML-File), da sich diese im Sekundentakt ändern können und daher die Anfragen wesentlich verlangsamen würden.

    3) Wie können Projekte andere aufrufen, ohne dass das aufrufende Projekt herunterfährt, wenn ich das aufgerufene beende? Wie macht ihr das? Beispiel, wenn ich zu Projekt A noch B hinzufüge, dann fährt B erst dann hoch, wenn ich aus A, B aufrufe und B wird beendet, wenn ich A beende. Wie kann ich A aufrufen, und B ist schon hochgefahren, bzw. bleibt immer oben, bis ich es explizit kille oder mit einem Projekt C runterfahre?

    Vielen Dank für eure Antworten, gerne auch "nur" Teile davon.

  25. Hallo "Kollegen",

    wenn ich ein neues Webprojekt anlege (ASP. Net Web Site), z.B. mit dem Namen "TestWeb", dann erstellt mir VS (2005) einen Ordner TestWeb (mit leeren App_Data Ordner und den zwei Default.aspx(.cs)-Dateien UND! einen eigenen Ordner TestWeb(2) mit der Solution drinnen, welche auf TestWeb-Projekt zeigt. Ich finde keine Einstellung hier, um dieses Verhalten ändern zu können. Warum legt er zwei Ordner an? In der Arbeit ist das bei mir anders, leider können mir auch meine Kollegen nicht helfen. Wo kann ich das einstellen (unter Tools -> Options -> Projects and Solutions finde ich leider auch nix :rolleyes:) .. Danke schon mal für etwaige Antworten.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...