Alternativ hätte ich auch noch folgende Offline-Variante im Angebot. Ist noch etwas einfacher zu benutzen als die Variante von Scott Hanselman. Die Library steht zudem unter der MIT-Lizenz.
Wie geht meine Lösung nicht? Wo ist das Problem mein Snippet noch um einen Streamreader zu erweitern und damit Benutzernamen und Passwort aus einer Datei einzulesen, so wie ich es ursprünglich bereits vorgeschlagen habe?
Dann hast du Nutzernamen und Passwort, wie von dir gewünscht, in einer Datei.
Ich hab das schon mal so gelöst. Vielleicht ist das für dich ja auch eine Option. Müsstest du dann ggf. noch anpassen, falls du User und Pass immer noch in einer Datei statt im Sourcecode haben möchtest.
ProcessStartInfo myProcess = new ProcessStartInfo("MeinProgramm.exe");
myProcess.Arguments = "/q";
myProcess.UserName = "MeinBenutzername";
string pwd = "MeinPasswort";
SecureString password = new SecureString();
Array.ForEach<char>(pwd.ToCharArray(), item => password.AppendChar(item));
myProcess.Password = password;
myProcess.UseShellExecute = false;
Process p = new Process();
p.StartInfo = myProcess;
p.Start();
Viele Grüße
Ich grabe diesen uralten Thread hier noch mal aus, da ich vor einigen Tagen selber vor dem gleichen Problem stand und dieser Thread hier bei Google immer noch ziemlich weit oben ist und es eigentlich keine gute Quelle zur Lösung gab.
Ich habe das Problem mittlerweile beseitigen können und weiteren Suchenden zu Helfen hier nun des Rätsels Lösung.
1.Mittels WSDL eine ServiceReference hinzufügen
1.Zugangsdaten sind für User als auch Passwort "anonymous". Diese müssen in "service.ClientCredentials.UserName" angegeben werden
1.Der eigentliche Aufruf muss im OperationContextScope ausgeführt werden und die Header müssen angepasst werden, damit die Zugangsdaten fehlerfrei beim Webservice ankommen
Auf meinem Blog habe ich sowohl einen ausführlicheren Artikel dazu geschrieben, als auch eine Library zu einfachen Verwendung des Thesaurus-Webservice bereit gestellt.
Ich hoffe das hilft den zukünftigen Suchern. 😉
Was spricht gegen einen Arduino? Einen Arduino Mega häte zum Beispiel massig Ein- und Ausgänge, kann per USB angeschlossen werden, C# Serial angesprochen werden und kostet auf eBay inkl. Versand aus Deutschland gerade mal 14€.
Wenn du diese Fehlermeldungen unerdrücken willst, kannst du das über die "ScriptErrorsSuppressed"-Eigenschaft des Webbrowser-Controls machen.
webBrowser1.ScriptErrorsSuppressed = true;
Win8 BTD - (B)oot(T)o(D)esktop ist ein kleines Programm, mittels dessen man mit nur einem Klick festlegen kann, ob Windows8 nach dem hochfahren und anmelden die ModernUI oder direkt den klassischen Desktop anzeigen soll.
Das Programm ist eine standalone .exe und legt keine Dateien auf der Festplatte an. Somit kann es als portabel angesehen werden und problemlos z.B. von einem USB-Stick aus gestartet werden.
Die verwendete .NET Version ist 4.5. Da das Programm jedoch nur unter Windows 8 einen Sinn hat und .NET 4.5 dort mitgeliefert ist, sollte das kein Problem sein.
Wie funktioniert es?
Nach dem Start von Win8 BTD gibt es nur zwei Möglichkeiten. Entweder man klickt auf das kleine Desktop-Thumbnail oder auf das ModernUI-Thumbnail. Je nachdem, auf was geklickt wurde, wird festgelegt, was nach einem Neustart/nach dem Booten angezeigt/geladen wird.
Aktuelle Version
Win8 BTD 1.0.0.0
Alte Versionen
n/a
Updates
Im Tool ist ein minimaler Updatecheck drin. Es wird nichts automatisch heruntergeladen, etc.. Ist ein Update verfügbar, so wird lediglich eine Meldung ausgegeben, dass es eine neuere Version gibt.
Getestet auf
Windows 8 Pro x64
Solltet ihr es auf einem eurem Computer erfolgreich testen und eine andere Windows 8 Version haben, lasst es mich wissen, damit ich diese Liste erweitern kann.
Download
Download: Win8 BTD 1.0.0.0
Viele Grüße,
Raffi
Ich finde das ControlBox ausbleden eher ungünstig. Ich denke, dass das unnatürlich aussieht und die User verwirren könnte. Wenn du die Aufmerksamkeit auf das Panel lenken willst, warum dann nicht zum Beispiel so?
protected override void OnFormClosing(FormClosingEventArgs e)
{
base.OnFormClosing(e);
if (delayClose && !closeActions.Visible)
{
e.Cancel = true;
closeActions.Visible = true;
//ControlBox = false;
//this.EnableCloseButton (false);
ActiveControl = saveAndCloseButton;
ClientSize = new Size(Math.Max(ClientSize.Width, closeActionsWidth),
Math.Max(ClientSize.Height, closeActions.Height));
return;
}
else if (delayClose && closeActions.Visible)
{
e.Cancel = true;
closeActions.Tag = 0;
Timer tiBlink = new Timer();
tiBlink.Interval = 50;
tiBlink.Tick += new EventHandler(tiBlink_Tick);
tiBlink.Start();
return;
}
}
void tiBlink_Tick(object sender, EventArgs e)
{
int state = ((int)closeActions.Tag);
if (state < 12)
{
if (closeActions.BackColor != Color.LightCoral)
closeActions.BackColor = Color.LightCoral;
else
closeActions.BackColor = Color.FromArgb(165, 201, 239);
closeActions.Tag = (state + 1);
}
else
{
closeActions.BackColor = Color.FromArgb(165, 201, 239);
(sender as Timer).Stop();
}
}
Hallo herbivore,
auch noch mal Danke für deine Antwort. Was das richtige Posten angeht, habe ich anscheinend die falschen Begriffe in die Suche gehauen. Das tut mir leid.
Viele Grüße
Ok, vielen Dank für die schnelle Antwort.
Viele Grüße
Hallo,
ich habe eine Verständnisfrage. Ich bin letztens über Default Values in Konstruktoren gestolpert und Frage mich jetzt, wo der Unterschied zwischen der Variante mit Überladungen:
class Test
{
private int _a;
public int A { get { return _a; } set { _a = value; } }
public Test()
{
this._a = 0;
}
public Test(int a)
{
this._a = a;
}
}
und der Variante mit Default Value:
class Test
{
private int _a;
public int A { get { return _a; } set { _a = value; } }
public Test(int a = 0)
{
this._a = a;
}
}
ist?
Gibt es dort Unterschiede im Verhalten, die ich beachten muss? Oder stehen beide Varianten vom Verhalten her analog zueinander? Wenn ja, dann wäre ja die Variante mit Default Value aufgrund ihrer Länge zu bevorzugen.
Viele Grüße,
Raffi
Das gefällt mir sehr gut. Wenn du jetzt noch zu viel Zeit hast, dann könntest du den Farbverlauf in derBar auch noch dreistufig wie in der Line machen. 😉
Viele Grüße
und weiter so!
Ich habe dein Control mal ein bisschen getestet. Sieht wirklich schick aus! Eine Anregung hätte ich aber noch. Die Eigenschaft "RangeAsGradient" funktioniert nur für "GaugeType = Line". Könntest du die Farbverläufe auch noch für "GaugeType = Bar" implementieren?
Vielen Dank für die schnelle Antwort. Mit der "Maske" meinst du die "Shift-lose" Lösung?
Viele Grüße,
Raffi
Hallo zusammen,
Ich habe ein kleines Verständnisproblem, was Bitweiseoperatoren angeht. Den Artikel [Artikel] Bitoperationen in C# von egrath habe ich schon gelesen, aber komme trotzdem nicht ganz weiter.
Die Situation ist folgende:
Ich habe zwei Bytes:
Byte1 = 1011 0101
Byte2 = 0000 1100
Ich möchte nun die letzten vier Bits von Byte1 mit den letzten vier Bits von Byte2 "überschreiben". Sodass folgendes Ergebnis herauskommt.
1011 0101
0000 1100
---------
1011 1100 (das gesuchte Ergebnis)[
Welchen Operator kann ich dafür benutzen?
Ich habe bereits AND und OR ausprobiert:
//AND-Operator
1011 0101
& 0000 1100
-----------
= 0000 0100
(1011 1100 war aber gesucht)
//OR-Operator
1011 0101
| 0000 1100
-----------
= 1011 1101
(1011 1100 war aber gesucht)
Die einzige Lösung, die ich gefunden habe, ist jene, die ersten 4 Bits von Byte1 "0" zu setzen und dann den OR-Operator zu nehmen.
1011 0101
>> 4
------------
0000 1011
<< 4
------------
1011 0000
| 0000 1100
------------
= 1011 1100 (entspricht dem gesuchten Ergebnis)
//Alternativ kann man die letzten 4 Bits auch wie folgt "0" setzen:
1011 0101
& 1111 0000
-----------
= 1011 0000
Meine Frage ist nun, gibt es eine Möglichkeit, nur mit einer Operation und Byte1 und Byte2 zu dem gewünschten Ergebnis zu kommen? Oder muss man immer den Zwischenweg, mittels 0 setzen der ersten vier Bits, gehen? Ich frage mich halt, ob das nicht kürzer geht, als so, wie ich es jetzt gelöst habe...
Viele Grüße,
Raffael
Auf Olis Blog (wurde auch mal hier im Forum vorgestellt) gibt es auch ein paar Erklärungen und Beispiele für Anfänger:
http://csharp-tricks.blogspot.com/
Ansonsten fehlt hier in der Auflistung noch:
http://dotnet-snippets.de
Viele Grüße,
Raffi
So, dann melde ich mich noch mal zu Wort. Ohne den Beitrag von MrSparkle vorher gesehen zu haben, habe ich es auch so gelöst, wie er es gemacht hätte.
Ich durch laufe alle Zeilen und alle Spalten und nähere mich jeweils von rechts/links und oben/unten an, bis ich den ersten nicht-weißten Pixel finde.
Die Ecken bestimme ich aus der Menge der gefundenen Punkte mittels herbivores Gleichungen.
Das Ergebnis sieht dann wie folgt aus. (Siehe Anhang. Der magenta-farbene Rand sind die einzelnen gefundenen Pixel. Ich hatte diese zur Veranschaulichung eingefärbt.)
Den Weg mit dem Sobel Operator habe ich nicht weiter verfolgt, da allein die Anwendung des Sobel Operator (ohen weitere Kantenerkennungen, Ecken finden) schon knapp über 6 Sekunden gedauert hat.
Die jetzige Lösung/umsetzung ist da wesentlich schneller.
Viele Grüße,
Raffi
Ok, habe jetzt mal den Sobel-Operator implementiert. Kommt aber nicht wirklich das gewünschte Ergebnis raus.
Mit dem Ergebnis lassen sich Geradengleichungen wohl eher schwer aufstellen...
Ich merke schon, wo du drauf hinaus willst, aber ich kann mir nciht vorstellen wie das zum Beispiel für das zweite Bild was ich gepostet hab, gehen sollte. (Das, was verzerrt aber nicht gedreht ist. Der Post von 11:41uhr.)
Ich wüsste nicht, wie ich da die rechte untere Ecke bekommen sollte. Egal in welche Richtugn ich die Pixel durchlaufe. Ich stoße entweder ersten rechts oben, oder links unten an. Nciht aber rechts unten. Und berechnen kann man die Ecke aus den anderen 3 Ecken heraus ja auch nicht so einfach, da das ja kein Parallelogramm, sondern unregelmäßig ist.
Verstehst du was ich meine? Oder habe ich vielleicht einfach nur ein Brett vorm Kopf?
Hast du eine Bilddatei, so wie abgebildet, die im Hintergrund weiss ist und darauf ist das Pixelbild gelegt?
Ja.
Oder ist der Nullpunkt die obere linke Ecke des zu Grunde liegenden Bildes?
Korrekt.
Ich hab noch mal ein Bild angehängt. Vielleicht macht es das ja noch mal besser deutlich, was ich meine.
_
edit:// Die Scala ist natürlich fiktiv und die Punkte sind nur geschätzt. Es geht nur darum zu verdeutlichen was ich von wo an berechnen/erkennen will._
Dritter Fall:
Die Bilder bekomme ich aus Bilddateien. Die angehängte Datei wäre so ein Fall.
@Coffeebean:
Richtig, die Koordinaten beziehen sich auf die Bilddatei.
Ich will später weitere inhaltliche Auswertungen durchführen. Dafür brauche ich aber die Koordinaten dern vier Eckpunkte. Um die relativen Positionen einzelner, bestimmter Teilblöcke ermitteln zu können.
@Lennart:
Ich schrieb Eingangs, die Bilder können auch verzerrt/gedreht kommen. Dann klappt dein Ansatz leider nicht mehr so leicht.
Als Beispiel habe ich mal so einen Fall angehängt.
Ich bekomme die Bilder so, wie sie auch hier angehängt sind rein. (inklusive dem weißen Rand drumherum.)
Erkennen will ich die Koordinaten der folgenden Ecken. (Siehe Anhang).
Hallo,
ich habe schon die ein oder andere Googlesuche hinter mir, komme aber nicht weiter.
Gibt es einen schnellen Algorhitmus zur Erkennung der vier Ecken eines Rechtecks?
Es handelt sich um Grafiken, wie jene im Anhang. Die Grafiken können um ihre eigene Achse ge-/verdreht sein. Ich möchte lediglich die vier Ecken bestimmen.
Ich hatte auch schon den MoravecCornersDetector der AForge Library in den Fingern, dieser ist aber eher ungeeignet in meinem Fall, da er alle Ecken sucht. Also auch zwischen jedem kleinen Quadrat, was ihn relativ Langsam macht.
Ansonten bin ich bei der Suche immer wieder auf diverse Corner/Edge Detector Algorhitmen gestoßen. Diese berechnen jedoch auch alle wesentlich mehr, als die vier äußeren Ecken der gekachelten Fläche.
Ich hoffe ihr könnt mir helfen.
Viele Grüße,
Raffi
Ich habe die Lösung. Die Installation des SP1 für das VS 2010 hat das Problem verschwinden lassen. Scheint also ein Bug zu sein.
p.s.: @herbi - die Codierung hatte ich schon überprüft. Das geht, wenn man eine Quellcodedatei öffnet und dann auf Datei => erweiterte Speichereinstellungen geht. 😉
Daran hatte ich auch schon gedacht. Jedoch wird jetzt im VS2010 genau dieselbe Schrift verwendet wie auch in VS2008 - Microsoft Sans Serif.
Wie gesagt, ich habe das VS2008 Projekt in VS2010 geladen, wurde aufgefordert es zu konvertieren, habe dies getan und dann als aller erste mal durchkompiliert und schon an dieser Stelle wurden die Zeichen nicht mehr dargestellt.
Ich habe testhalber auch die entsprechende .cs-Datei aus dem alten Projekt in das neue eingefügt und die "konvertierte" ersetzt. Trotzdem gelingt die Darstellung nciht mehr.
Hallo zusammen,
ich habe die Forensuche schon bemüht, konnte aber leider nichts passendes finden.
Ich habe ein kleines Projekt, welches mehrsprachig ist.
Dementsprechend gibt es (vereinfacht) auch folgende und weitere ähnliche Codezeilen:
// Code siehe Bild im Anhang. Sonderzeichen werden im Board sonst nicht korrekt dargestellt.
Bisher hatte ich das Projekt im VS2008 laufen. Dort ließ es sich kompilieren und die koreanischen Zeichen wurden im ausgeführten Programm korrekt dargestellt.
Nun habe ich das Projekt von VS2008 nach VS2010 konvertiert. Im Sourcecode sehen die koreanischen Zeichen immer noch korrekt aus. Im ausgeführten Programm werden sie jedoch ausschließlich durch "Karos" dargestellt.
Wie kann das sein? Im Sourcecode werden Sie doch immer noch korrekt angezeigt und ich habe nichts geändert. Die Änderung muss irgendwann während des Konvertierungsprozesses entstehen. Ich hoffe ihr könnt mir helfen.
Viele Grüße,
Raffi
edit://
Es handelt sich bei dem Projekt um ein WinForms Projekt.
So, um eventuell anderen Suchenden zu helfen hier mal meine bisherigen Ergebnisse.
Die Suche über WMI brachte mich nicht wirklich weiter. Mehr als Eigenschaften des UMTS Modems ließen sich nicht finden.
Um die SIM-ID auszulesen habe ich mir nun das SDK des Herstellers (Qualcomm Gobi SDK) besorgt und gehe den Weg über dessen API.
Hallo Tom,
danke für die Antwort. Ich möchte wirklich keine Komplettlösung/erwarte von niemandem, dass er meine Arbeit macht, aber könnte ich vielleicht noch einen Tipp bekommen? Selbst bei "C# WMI Sim ID" komme ich immer nur zum Sim-Manager für Windows Mobile. Ich finde einfach nichts, dass passen will.
Viele Grüße,
Raffi
Hallo,
heute benötige ich mal wieder eure Hilfe, da ich absolut keinen Ansatz habe. Ich habe hier einen Schwung an Subnotebooks mit UMTS-Modems und soll nun ein kleines Tool schreiben, was die jeweilige SIM-ID/Sim-Kartennummer ausliest, um die sich in den Geräten befindlichen Karten den jeweiligen Verträgen zuordnen zu können.
Leider finde ich im Netz bisher nichts passendes. Wenn überhaupt immer nur für Windows Mobile. Aber ich habe ja kein Windows Mobile Gerät, sondern ein Notebook (Win7), welches lediglich mit einem UMTS-Modem ausgestattet ist.
Ich hoffe, ihr könnt mir einen Wink in die richtige Richtung geben.
Viele Grüße,
Raffi
Schiffe versenken ist leider auch offline. (bzw. es besteht keine Möglichkeit mehr seine KI hochzuladen.)
ProjektEuler macht aber auf jeden Fall schon mal Spaß. Jetzt fehlt nur noch was, was etwas mehr Richtung Zweikampf geht - sprich KIs verschiedener Spieler gegeneinander antreten lässt.
Da hatte sich wohl ein Copy/Paste-Fehler eingeschlichen, aber dennoch hast du mein Anliegen ja erkannt. Danke für die Antwort, herbi! 😃
Hallo,
ich stehe vor folgendem Problem:
Mir sind zwei Methoden gegeben, die eine Zahl zurückgeben und identische Parameter annehmen.
private static int Preis1(string element)
{
int preis = 0;
//Berechnugen Typ 1
return preis ;
}
private static int Preis2(string element)
{
int preis = 0;
//Berechnugen Typ 2
return preis ;
}
Diese beiden Methoden möchte/soll ich nicht ändern.
Nun habe ich eine sehr komplexe Methode geschrieben, in der die erste der beiden oben genannten Methoden Verwendung findet.
private void gesamtPreisAusrechnen()
{
int gespreis = 0;
//Berechnungen ...
gespreis += Preis1("produkt a");
//Berechnungen ...
gespreis += Preis1("produkt b");
//usw.
}
Die ganze Gesamtberechnung müsste ich auch noch mal mit den Werten von Preis 2 machen.
Ich möchte aber ungerne den ganzen Code doppelt kopieren oder bei jedem Aufruf von _Preis1 _in _gesamtPreisAusrechnen _ eine if-else-Abfrage machen.
Mit kam folgende Idee, jedoch weiß ich nicht, wie ich das umsetzen kann oder ob man sowas überhaupt in die Richtung umsetzen kann.
private void gesamtPreisAusrechnen(bool preis2Verwenden)
{
private voidhalter preisMethode = null;
if (preis2Verwenden)
{
preisMethode = Preis2;
}
else
{
preisMethode = Preis1;
}
int gespreis = 0;
//Berechnungen ...
gespreis += preisMethode("produkt a");
//Berechnungen ...
gespreis += preisMethode("produkt b");
//usw.
}
EDIT: Gibt es eine Art Platzhalter für Methoden mit dem selben Parameter?
Viele Grüße,
Raffi
Hallo,
ich bin über folgenden Thread StChase - Ein kleiner Wettkampf zwischen Programmierern und den Beitrag von Levion auf das Projekt Codewars aufmerksam geworden.
Das ganze erinnert mich an
> . Allerdings funktioniert Codewars über Sockets mit einem entsprechenden Protokoll. Das Projekt ist richtig Klasse. Man programmiert Bots die man mit bestimmten Fähigkeiten ausstattet und aufeinander loslassen kann. Die Map konnte dabei verschiedene Hindernisse wie Mauern und Wasser enthalten. Im Gegensatz zu Ant! oder deinem Projekt funktioniert CodeWars mit allen Programmiersprachen die Sockets beherrschen. Wer hat da nicht mal Lust den hochnäsigen PHP-Bot in den Boden zu stampfen 😄Leider wird das Projekt nicht mehr richtig weitergeführt 😦
Ich finde das ganze sehr interessant, jedoch ist das Projekt nicht mehr aktiv. Kennt zufälligerweise jemand von euch solch ein Projekt, welches noch eine aktive Community hat?
(Besonders interessant finde ich die Programmiersprachen unabhängige Umgebung von Codewars.)
Viele Grüße,
Raffi
Guten Morgen,
das Programm erinnert mich stark an meinen Soundcloud Downloader.
( http://www.net-blog.net/blog/index.php/2010/11/15/update-soundcloud-downloader-version-1-2/ )
Vielleicht könnt ihr euch ja auch hier noch ein paar Anregungen holen. Die im Blog vorgestellte Version ist leider nicht mehr ganz aktuell.
Die aktuelle Version gibt es hier:
http://www.wortkonstrukte.net/CloudDownloaderVersion1.4.zip
Wer erstmal nur schauen mag, kann auch hier gucken:
http://www.youtube.com/watch?v=CRuVeDG1CyY
Viele Grüße,
ein blutiger_anfänger
Hallo,
ich möchte eine Reihe an Bildern herunterladen. Bisher habe ich es über einen Webclient und die DownloadFile Methode probiert. Jedoch erhalte ich dort keine Bilder.
Die Bilderlinks liegen in folgendem Format vor.
http://www.net-blog.net/stalki/admin/ajax/content.php?get_action=open_file&file=%2FUploads%2F_009.jpg
Im Browser werden Sie korrekt angezeigt, der Webclient lädt aber nicht die Bilder. Sondern nur 1kb große Dateien.
Wie komme ich an die Bilder ran?
Viele Grüße
edit://
Der Inhalt der heruntergeladenen Dateien ist folgender:
<?xml version="1.0" encoding="UTF-8"?><tree ><message type="ERROR">filesize() [<a href='function.filesize'>function.filesize</a>]: stat failed for ajxp.fs://0/Uploads/_009.jpg in /usr/www/users/netnbl/stalki/admin/ajax/plugins/hook.openfile/class.HookOpenFile.php (l.56)</message></tree>
Ok, habe das Problem gelöst. Es lag an der 32bit/64bit Migration.
Genaueres hier: Wow64DisableWow64FsRedirection Function
und hier: WOW64
viele Grüße und Danke für eure Hilfe,
ein blutiger Anfänger
@zero_x: Danke für den Tipp.
Jedoch liegt der Fehelr definitiv bei der "nicht einlesbaren" Datei. Hat da irgendjemand eine Idee? Über den Explorer ist sie erreichbar. Wenn ich unter "AnyCPU" kompiliere klappts auch, nur bei x86 wirft er die Exception, dass die Datei nicht gefunden werden konnte.
Offtopic: Sollte ich dafür einen eigenen Thread aufmachen?
Ok, bin näher dran.
Habe vorher auf AnyCPU debuggt nun auf x86, weil die Zielsysteme x86 sind.
Bei x86 wirft er mir auch auf meinem Entwicklungsrechner eine Exception.
Genauer gesagt beim Einlesen einer Datei mit dem Streamreader.
Er sagte, die Datei xxx konnte nicht gefunden werden.
Wenn ich den Dateipfad aus der Exception kopiere und bei Start>Ausführen einfüge, öffnet er die Datei aber Anstandslos.
Was könnte das sein? Die Datei existiert und der Pfad ist richtig, trotzdem sagt der Streamreader er könnte sie nicht finden.
Kann das daran liegen, dass die Dateiendung der Datei 4-stellig (.conf) ist? Haben x86 Systeme da ein Problem mit?
edit://
Die Datei liegt in sytem32 - kann es sein, dass bei x86 andere/zusätzliche Rechte als bei x64 vergeben werden müssen?
Hallo,
ich habe mal wieder ein kleines Problem. Ich habe eine Anwendung entwickelt, die auf meinem Entwicklungsrechner auch super läuft.
Auf sämtlichen anderen PC's bekomme ich Sie nicht gestartet.
Da auf den anderen PC's auch kein Visualstudio etc. ist, kann ich sie auch nicht vernünftig durchsteppen.
Also hab ich um alle Aktionen, von Form_Load an, try-catch Blöcke geschrieben und wollte die Exception mit Hilfe des Streamwriters in eine Datei schreiben lassen.
Dies funktioniert jedoch auch nicht.
Das Programm scheint vorher schon abzubrechen.
Eine Fehlermeldung zeigt es jedoch auch nicht an. Nur "Das Programm musste geschlossen werden. Es wird nach der Fehlerursache gesucht..."
Ich vermute, dass der Fehler dann in einer der using-Anweisungen liegen muss.
Ich verwende aber abgesehen von den Framework eigenen .dlls nur 2 externe. (AForge Lib) und gebe diese auch der .exe mit.
Denoch denke ich, dass dort irgendwo der Fehler liegt.
Meine Frage nun, wie kann ich Fehler beim starten/um die using-Anwendungen drum herum und auch vorher schon abfangen und visualisieren?
Viele Grüße,
Raffi
Unglaublich. Etliche Stunden gesucht und probiert und die Lösung lag so nah.
Ein einfacher Zusatz von
sw.AutoFlush = p.StandardInput.AutoFlush;
sw.NewLine = p.StandardInput.NewLine;
hat schon gereicht, um herbi's Code funktionabel zu machen.
Damit die nächsten verzweifelten auch was davon haben. Nochmal der ganze Absatz:
PSI = new ProcessStartInfo("cmd.exe");
PSI.RedirectStandardInput = true;
PSI.RedirectStandardOutput = true;
PSI.RedirectStandardError = true;
PSI.UseShellExecute = false;
PSI.StandardOutputEncoding = System.Text.Encoding.GetEncoding(437);
PSI.StandardErrorEncoding = System.Text.Encoding.GetEncoding(437);
p = new Process();
p.StartInfo = PSI;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
p.Start();
p.BeginOutputReadLine();
sw = new StreamWriter(p.StandardInput.BaseStream, Encoding.GetEncoding(437));
sw.AutoFlush = p.StandardInput.AutoFlush;
sw.NewLine = p.StandardInput.NewLine;
Guten Morgen,
Für ein aktuelles Projekt versuche ich gerade mit der cmd.exe zu interagieren.
Ich habe auf meiner Form zwei Textboxen (Ausgabe & Eingabe) und einen Button, über welche die cmd.exe gesteuert werden soll.
Mein Code sieht so aus:
PSI = new ProcessStartInfo("cmd.exe");
PSI.RedirectStandardInput = true;
PSI.RedirectStandardOutput = true;
PSI.RedirectStandardError = true;
PSI.UseShellExecute = false;
PSI.StandardOutputEncoding = System.Text.Encoding.GetEncoding(437);
PSI.StandardErrorEncoding = System.Text.Encoding.GetEncoding(437);
p = new Process();
p.StartInfo = PSI;
p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
p.ErrorDataReceived += new DataReceivedEventHandler(p_ErrorDataReceived);
p.Start();
p.BeginOutputReadLine();
sw = p.StandardInput;
Das klappt so auch alles ganz gut. Seit dem ich folgendes drin habe
PSI.StandardOutputEncoding = System.Text.Encoding.GetEncoding(437);
PSI.StandardErrorEncoding = System.Text.Encoding.GetEncoding(437);
werden mir auch wunderbar Sonderzeichen und Umlaute angegeben. Jedoch nur ausgegeben/angezeigt.
Einlesen klappt nicht. Es wird zwar korrekt eingelesen, aber Umlaute, die ich per "sw" in den StandardInput schreibe, werden nicht korrekt angezeigt.
Ich dachte mir, dass ich dort auch irgendwie das richtige Encoding (Codepage 437) angeben muss und habe auch schon extrem viel gesucht. Bei meienr Suche bin ich auf folgenden Post Console als Steuerelement einbinden. gestoßen. Die dort von herbivore angeregte Lösung lässt sich zwar fehlerfrei kompilieren, jedoch kommt nichts, was ich per sw.WriteLine schreibe, an der cmd.exe an.
herbi's Lösungansatz
sw = new StreamWriter(p.StandardInput.BaseStream, System.Text.Encoding.GetEncoding(437));
Ich hoffe ihr könnt mir weiterhelfen.
Wie kann ich das Encoding für den StandardInput ändern?
Viele Grüße
Ohne zu wissen, welche Seite das ist, die rummuckt - sprich ohne einen Blick in den Code - wird es schwer zu helfen.
Auf diese Art und Weise, wird auch nur einmal der Quelltext geladen und angezeigt. Wenn du aktiv weitersurfen willst, dann rufe den Quelltext per webBrowser.Navigate Methode auf oder fange die Link-Klicks ab und laden den neuen Quelltext wieder über die GetHtml Methode.
Viele Grüße,
Raffi
Zum Thema Regex findest du hier ein wunderschönes Tutorial... 😉
Wenn ich mich recht erinnere ist http://www.bplaced.net/ werbefrei. Mehrere Subdomains, wirst du jedoch nur durch mehrfache Anmeldung erhalten.
Viele Grüße,
blutiger_anfänger
p.s.: Ansonsten gibt es auch viele Hoster, die Paypal als Zahlungsmittel akzeptieren. 😉
Da ich noch nie ein USB-Gerät und Bilder programmiertechnisch angesprochen und verarbeitet habe, würde ich gerne wissen, welche Bereiche ich mir anschauen sollte.
Ist eigentlich gar nicht so schwer. 😉
http://www.net-blog.net/blog/index.php/2010/06/23/c-webcams-benutzen/
Schau dir mal folgenden Artikel an. KB318804: Festlegen einen Windows-Hook in Visual c# .NET
Du könntest die threadID deiner Anwendung abfragen. Und dann einen threadspezifischen Maushook setzen.
edit:// Da war herbi wohl schneller...
Probier's mal wie folgt. 😉
public void machwas(){
string currentName = names[0];
if(names.Count != 0){
b.navigate("http://www.info-seite.de/" +currentName + "_info.php");
names.RemoveAt(0);
}
Viele Grüße,
blutiger_anfänger