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();
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.
Mittels WSDL eine ServiceReference hinzufügen
Zugangsdaten sind für User als auch Passwort "anonymous". Diese müssen in "service.ClientCredentials.UserName" angegeben werden
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.
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€.
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.
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?
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.
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.
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. ;)
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?
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.
//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...
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/
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.
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.
Zitat
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.
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 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 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.
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.
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.
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.