@JAck30lena:
Ich habe das mit der Buffergrösse versucht, aber konnte keine Veränderung feststellen. Habe sie bis auf 20 heruntergesetzt, trotzdem habe ich nach der zweiten Karte die gesamten Daten zweimal erhalten 🤔
@ujr:
Vielen Dank für deinen Lösungsvorschlag. Leider ist es jedoch so, dass ich seit 2 Jahren kein C# mehr programmiert habe, da ich mittlerweile im Support tätig bin.
Deshalb bräuchte ich einiges an Zeit, mich wieder in die ganze Geschichte einzuarbeiten. Zeit, die ich im Moment leider schlichtweg nicht habe.
Ich habe mich deshalb nun mit folgendem Workarround zufriedengegeben:
Der User muss nun halt die Karte zweimal durch den Leser ziehen. Sobald der Event dann ausgelöst wird, nehme ich mir aus dem (zu langen) Input das, was ich benötige heraus.
Ich weiss dass das ein bisschen hingekotzt ist, aber wie gesagt.. einfach keine Zeit für eine saubere Lösung... 🙁
Trotzdem vielen Dank für eure Hilfe!
Grüsse aus der Schweiz 🙂
Hallo Zusammen
Ich habe ein ähnliches Problem wie 'theGecco' und mache deshalb nicht einen neuen Thread auf.
Ich habe einen Magnetkartenleser seriell angeschlossen. Sobald man eine Karte durchzieht, werden die Daten (Text) gesendet und der Event 'serialPort.DataReceived()' wird ausgelöst.
Dies hat bis jetzt einwandfrei funktioniert (die Applikation ist schon 2 Jahre im Einsatz). Jetzt haben wir jedoch einen neuen Typ Kartenleser bekommen und nun habe ich folgendes Problem:
Der Event wird erst nach der zweiten Karte ausgelöst. Der Empfangene String enthält dann auch die Daten beider Karten.
Ich habe jedoch durch testen gmerkt, dass die Kartendaten schon nach der ersten Karte im Buffer sind, jedoch einfach der Event nicht ausgelöst wird.
Da 'JAck30lena' oben schon erwähnt hat, dass dieser Event nicht wirklich zuverlässig ist, stellt sich mir nun die Frage, wie ich sonst auf Empfangene Daten reagieren kann, ohne den 'DataReceived'-Event?
Ich kann ja schlecht ununterbrochen in einer Schlaufe den Buffer abfragen und reagieren wenn er nicht mehr leer ist 🤔
Wenn ich übrigens mit dem HyperTerminal teste, dann werden die Daten ohne Probleme nach der ersten Karte schon angezeigt..
Bin dankbar für Vorschläge 🙂
Hallo zusammen
Ich bin auf der Suche nach etwas Ähnlichem.
Was ich benötige ist keine Spracherkennung, die gesprochene Worte in Text überträgt, sondern lediglich vorher definierte Sprachbefehle erkennt.
Ich denke das ist auch in Etwa das, was Nullpunkt mit dem 'Klangwert' gemeint hat.
Was mir vorschwebt ist eine simple Benutzeroberfläche mit der Möglichkeit, kurze Sprachbefehle wie z.B. 'Sound', 'Play', 'Stop', 'Google', 'myCSharp' usw. zu definieren und einer der folgenden Aktionen zuzuordnen:- öffnen eines Programms/Files/Ordners
Ich habe deshalb zuerst im Netz etwas nachgeforscht und bin auf verschiedene Software gestossen, bei denen jedoch überall der Schwerpunkt auf dem du-sprichst-und-ich-schreibe-für-dich-teil liegt.
Leider sind diese Software-Lösungen nicht gerade zu Schnäppchenpreisen zu haben, und dass ich nicht gewillt bin, mehrere hundert Euro für eine Software auszugeben, von der ich nur einen kleinen Teil benötige ist sicher verständlich.
Ich habe mir deshalb überlegt, ob es für .net nicht irgendwelche Libraries mit einer solchen Funktionalität gibt, die man in ein eigenes Projekt einbinden könnte.
Oder kenn jemand hier eine Software zu einem 'angemessenen' Preis, die diese Funktionalität bietet?
Danke im Voraus für Antworten 🙂
Meiner Meinung nach helfen sinnvoll gewählte Tastenkürzel sehr beim effektiven arbeiten. Ich persönlich habe mir sehr viele Kürzel beim Arbeiten mit Windows selber, sowie auch z.b. im VS 2005 angewöhnt.
Auch solche mit mehr als zwei Tasten (Bsp. ctrl+shift+esc für den Taskmanager, oder im VS2005 shift+alt+enter für Vollbild oder ctrl+E+C / ctrl+E+U fürs kommentieren / 'entkommentieren' etc.) finde ich sehr praktisch, wenn man sich mal daran gewöhnt hat.
Es erspart einem doch so manchen unnötigen Griff zur Maus.
Natürlich sollte man darauf achten, damit nicht die Standard-Shortcuts kaputtzumachen, wie beim Beispiel mit ctrl+C 😉
Hallo zusammen
Mein Programm kann mit einem Parameter gestartet werden. Das funktioniert ohne Probleme.
Allerdings habe ich dazu bis jetzt immer eine Verknüpfung der kompilierten *.exe-Datei gemacht und dort im Pfad den Parameter eingegeben und dann so gestartet.
Das hat bis jetzt seinen Zweck erfüllt.
Jetzt bin ich aber an einem Punkt angelangt, an dem ich das Programm gerne mit Parametern starten und dann debuggen möchte.
Also halt einfach das Programm schon in der Entwicklungsumgebung mit Parametern starten. Ist das irgendwie möglich?
Ich habe mich noch in anderen Foren schlau gemacht, und es sieht ganz so aus als ob es sich um ein Win2k-Problem handelt. Unter WinXP scheint das Icon ohne Probleme dargestellt zu werden.
Tja, dann eben nicht... 🙁
Ja, auch das habe ich gemacht. Ich habe unter Form.Icon das Icon ausgewählt und auch in den Properties des Projektes unter 'Ressources'.
<ot>
btw., das mit dem Splitten der Funktion und dem verwendet des Timers funktioniert einwandfrei 😉
</ot>
Hallo herbivore
Das habe ich schon probiert. Funzt leider auch nicht. ShowInTaskbar blendet einfach den Task in der Taskleiste ein/aus, verändert aber nicht das Aussehen desselben.
Nachdem mir vorhin grad von herbivore geholfen wurde, gleich noch eine Frage zu der ich noch keine Antwort gefunden habe.
Meine Form ist nicht eckig und hat deshalb die Eigenschaft 'FormBorderStyle' auf 'none'.
Leider wird nun in der Taskleiste das Programmicon nicht mehr angezeigt. Wenn ich den FormBorder wieder einblende erscheint auch das Icon wieder.
Aber es muss doch eine Lösung geben damit das Icon trotzdem angezeigt wird (siehe GUI's wie z.B. das von Nero StartSmart, bei denen es ja auch funktioniert).
Hmm... naja, irgendwie schade. Ich dachte es gibt eine schönere Lösung dafür. Aber ok, dann werde ich das wohl so machen.
Auf jeden Fall vielen Dank für deine Hilfe herbivore! 👍
Hallo zusammen
Ich habe ein Programm, dass mit Process.Start(...) eine *.exe aufruft. Davor möchte ich jedoch eine kleine Pause (1 Sek.) einbauen, um dem User das lesen eines Textes zu ermöglichen.
Hier mal kurz der Code, damit ihr wisst, wovon ich rede:
/*
* Angemeldeter User überprüfen
* -> wenn korrekt: Applikation starten
* -> wenn nicht korrekt: Anmelde-Controls anzeigen
*/
public void Start()
{
SetStatusText("Benutzer wird überprüft...", Color.GreenYellow); //Statustext ändern
// -> 1 sek. PAUSE!
if (CheckUser(Environment.UserName))
{
SetStatusText("User akzeptiert. PACS wird gestartet...", Color.GreenYellow); //Statustext ändern
// -> 1 sek. PAUSE!
StartApplication(); //Applikation starten
}
else
{
SetStatusText("User nicht akzeptiert. Bitte gültigen User angeben.", Color.Red); //Statustext ändern
ChangeLoginContolVisibility(true); //Loginfelder anzeigen
}
}
/*
* Statustext und Textfarbe anpassen
*/
private void SetStatusText(string text_, Color color_)
{
lblStatusText.ForeColor = color_; //Schriftfarbe anpassen (Standard: ButtonFace / Red);
lblStatusText.Text = text_;
}
Wenn ich es so mache wie der Code jetz da steht geht das Ganze einfach viel zu schnell, und sie deshalb komisch aus, da das GUI quasi nur schnell aufblitzt bevor das andere Programm gestartet wird. Deshalb möchte ich, dass das Programm nach dem ändern des Statustextes eine Sekunde 'Pause macht', und erst dann weitermacht.
Ich habe lange hier im Forum gesucht, aber nichts passendes gefunden.
Zuerst habe ich es mit "Thread.Sleep(1000);" versucht. Das klappt jedoch nich so wie ich das will. Das Programm wartet zwar eine Sekunde, jedoch ist in dieser Zeit das GUI nicht sichtbar. Auch wenn ich noch Application.DoEvents() benutze.
Abgesehen davon wird hier ja einstimmig von Thread.Sleep im GUI-Thread sowie von Application.DoEvents() abgeraten und stattdessen ein Timer empfohlen.
Allerdings sehe ich nicht ganz, wie ich das Ganze mit einem Timer lösen könnte, ohne meine void in zwei aufzuteilen... 🤔
Ich würde das dann so machen, dass ich die erste Funktion aufrufe, und am Schluss den Timer auf enabled stelle und dann im Tick-Event des Timers die zweite Hälfte laufen lasse.
Aber meines Erachtens ist das keine saubere Lösung...
Kann mir bitte jemand auf die Sprünge helfen? Ich stehe irgendwie auf dem Schlauch. 🙁
Danke im Voraus für jede Hilfe 🙂
hey, vielen dank herbivore. 👍
hat super geklappt.
darauf hätte ich eigentlich selber kommen müssen schäm
hallo herbivore
danke für die antwort.
ich habs mir angeschaut:
das problem scheint also beim hinzufügen des labels zum container der pictureBox zu liegen.
habe es übrigens auch schon mit 'pictureBox1.SendToBack()' im form_load probiert, hat auch nichts gebracht.
<edit>
noch eine andere frage: muss man das control (in meinem fall das label) von hand erstellen, oder gibt es auch im designer eine möglichkeit, es dem control-container eines anderen controls zuzuweisen?
</edit>
[EDIT]Abgetrennt von transparentes Label[/EDIT]
hallo zusammen
ich hatte das selbe problem und hier die lösung relativ schnell gefunden.
ich habe also probiert, das label selber zu erstellen und dem control-container der darunterliegenden pictureBox hinzuzufügen.
jedoch bekomme ich es irgendwie nicht hin, das control selber zu erstellen.
auch wenn ich es dem normalen container der form zuweise, sehe ich nichts von meinem label. ich kann zwar darauf zugreifen und es verändern (z.b. den text), aber sehen tu ich's nicht 🙁
ich sehe meinen fehler einfach nicht. ich würde meinen, ich hätte alles genau so gemacht, wie es auch der designer machen würde.
d.h.:
die definition
-->
private System.Windows.Forms.Label lblPID;
und eine zweite methode 'InitializeMyComponents()', die ich im Konstruktor der frmMain direkt nach 'InitializeComponents()' aufrufe.
-->
this.lblPID = new System.Windows.Forms.Label();
//
// lblPID
//
this.lblPID.AutoSize = true;
this.lblPID.BackColor = System.Drawing.Color.Transparent;
this.lblPID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblPID.ForeColor = System.Drawing.Color.White;
this.lblPID.Location = new System.Drawing.Point(14, 41);
this.lblPID.Name = "lblPID";
this.lblPID.Size = new System.Drawing.Size(31, 13);
this.lblPID.TabIndex = 6;
this.lblPID.Text = "11020349";
//this.pictureBox1.Controls.Add(this.lblPID);
this.Controls.Add(this.lblPID);
kann mir jemand sagen was ich übersehen habe? ich habe den eigenen code mit dem verglichen, den der designer erstellt, und sehe beim besten willen keinen unterschied, ausser dass sich der code für mein label halt in einer anderen methode befindet. 🤔
Nur so als Zusatz-Tipp:
Wenn ich eine Form habe, die eine fixe grösse haben soll, dann schreibe ich von anfang an diese beiden Zeilen ins Form_Load()
this.MaximumSize = this.Size;
this.MinimumSize = this.Size;
anstatt die Grösse fix im Designer anzugeben.
So muss nichts angepasst werden wenn die Formgrösse im Designer mal verändert wird 😉
@herbivore: sry, aber ich schnall's immer noch nicht ganz. aber bevor ich hier weitere fragen stelle, werde ich mich mal darüber schlau machen. habe gemerkt dass ich bei diesem thema noch ein wenig nachholbedarf habe 🙂
trotzdem vielen dank für die erklärungsversuche 👍
Soweit ich weiss bezieht sich public/private darauf ob eine Klasse ausserhalb der DLL sichtbar ist.
naja, das habe ich auch gedacht, aber wenn private-klassen nur innerhalb der dll sichtbar sind, dann sollte es ja auch funktionieren wenn die Settings-Klasse nicht public ist.
Wenn du durch eine public Property oder Methode ein Objekt nach außen gibst, dann muss auch der Typ dieses Objekt außen bekannt sein
das hab ich soweit schon begriffen. meine frage ist, wieso die klasse eben nicht sichtbar ist, wenn sie private ist, obwohl sie sich ja im selben namespace befindet.
<ot>
@bubblez: gschnallt wem do grad am tipps geh bisch? 😉
</ot>
Also innerhalb einer Klasse ist es doch so, dass z.b. eine Variable, die private ist, nur in der entsprechenden Klasse sichtbar/gültig ist, und eine public-Variable auch von aussen.
Aber wie ist das bei einer Klasse? Bis wo ist eine private-, bzw. public-class sichtbar?
btw: danka, ueli 😁
Hallo zusammen
Sry für den Titel, ich hab's nicht so mit der Titelwahl von Threads 😉
Meine Frage ist folgende:
Ich hatte folgende drei Klassen:
Das Programm startet mit der Form 'frmMain'. Dort erzeuge ich als erstes eine Instanz der Klasse 'Settings'.
public Settings LeserSettings = new Settings(Application.StartupPath);
Diese Liest beim Instanzieren einige Daten aus und schreibt diese in ihre eigenen public-Variablen.
Sie stellt also einen Pool dar, die die Einstellungen meines Programmes beinhalten.
Danach nehme ich mir die benötigten Daten aus dieser Instanz zum füllen des GUI und zum anpassen gewisser Einstellungen (ein Beispiel ist z.b. das Einrichten eines Com-Ports aufgrund der Angabe in der Settings-Instanz).
Okay, so wei so gut. Um diese Einstellungen jetz aber zu ändern, öffne ich über ein Menü die zweite Form (frmStammdaten). Diese Erwartet im Konstruktor als Parameter eine Instanz der Settings-Klasse. Die wird gebraucht, um alle Einstellungen im GUI abzubilden.
Allerdings bekam ich da einen Fehler. Irgendwas mit 'less Accessible...'. Hab dann ein bisschen hier im Forum gesucht und relativ schnell gemerkt, dass die Settings-Klasse selber public sein muss, also so:
public class Settings
{
...
}
Problem also gelöst, nur leider weiss ich nicht wieso? 🤔
Ich meine, wieso kann ich die Instanz LeserSettings der anderen Form nur übergeben wenn die Settings-Klasse selber public mache?
Und anders herum:
Wenn ich nun nichts übergebe an die zweite Form, wieso kann ich nicht über
frmMain.LeserSettings...
auf die Instanz zugreifen?
Ich stehe irgendwie auf dem Schlauch... 🙁
Original von scarp
Ich würde sagen, ja!
ähem. danke für die ausführliche antwort. 😉
aber auf welche meiner fragen ist sie bezogen? 🤔
@Jrotten: super, so wirds wohl am einfachsten gehen
vielen dank und gruss
RIDI2oo6
Hallo zusammen
Kleines Problem mit dem TreeView. Die Forensuche half mir leider nicht weiter 🙁
Ich benutze in meinem TreeView das AfterSelect-Event, um aufgrund des markierten Nodes entsprechend Daten anzuzeigen.
So weit so gut. Wenn ich jetz jedoch den Focus mit Hilfe der Shift-Taste auf das TreeView-Steuerelement setze, wird der AfterSelect-Event ebenfalls ausgeführt, obwohl noch gar kein Node selektiert ist. Ich bekomme dann natürlich einen Fehler, weil ich auf 'TreeView.SelectedNode' zugreife.
Ist das normal? Oder anders gefragt, benutze ich den falschen Event, wenn ich will, dass eine Aktion ausgeführt wird, nachdem ein Node markiert wurde?
Klar, ich kann das Ganze abfangen mit einer Überprüfung, oder einem try-catch, aber ist das Sinn und Zweck?
Danke für Antworten
grz RIDI2oo6
hey super jungs!
war genau wie ihr gesagt habt.
echt fies manchmal... einen halben tag verschwendet wegen einer zeile 🙁
naja, nachher ist man immer schlauer 😉
auf jeden fall vielen dank!
hehe, das habe ich auch gedacht. aber irgendwie scheint das doch nicht so zu sein. ich habe nämlich das ganze durchlaufen lassen, und dann einen haltepunkt vor dem beenden des programms gesetzt.
wenn ich dann das control im debugg-modus anschaue, ist 'selectedItems.count' = 1, und das selektierte item ist auch das richtige (man kann ja im debugg-modus alle eigenschaften etc. eines objektes anschauen).
es ist also definitiv selektiert, nur sieht man es nicht auf dem GUI.
das ist es ja, was ich so unlogisch finde 🤔
hallo pietsche
dein txt-file schreit geradezu nach xml 😉
wenn du die daten deines rechtecks in einem xml-file speichern würdes hättest du keine probleme mehr mit dem auslesen. xml's sind sehr einfach zu 'bedienen'. alle klassen dazu findest du im namespace 'System.XML'. tutorials findest du über die Forensuche.
Ist natürlich nur ein vorschlag =)
hallo zusammen
ich stecke wieder mal fest. 🙁
es ist etwas schwer zu erklären, aber ich versuchs mal...
mein programm ist wie ein assistent aufgebaut. auf 'seite 1' kann man aus einer listView einen eintrag uswählen. beim 'listView_SelectedIndexChanged'-Event speichere ich den Index des ausgewählten elements in eine int-variable ('selectedTelUserIndex_'). wenn man nun auf den button 'weiter' klickt, kommt man auf die 'nächste seite'. jedoch nur theoretisch, denn auch auf seite 2 muss man etwas aus einer listView auswählen. ich nehme dazu dieselbe listView, die ich einfach mit anderen werten fülle. wenn man nun wieder auf die erste seite wechseln will, sollte natürlich der zuvor ausgewählte eintrag automatisch wieder angewählt werden.
und da liegt das problem. beim zurückwechseln zu seite 1 fülle ich die listView wieder mit den seite-1-werten und danach wird folgender code ausgeführt:
//Benutzer selektieren
listView.Items[selectedTelUserIndex_].Selected = true;
danach wird natürlich wieder das 'listView_SelectedIndexChanged'-Event ausgelöst, was aber kein problem sein sollte, da dieses ja nur die variable 'selectedTelUserIndex_' aktualisiert. daher bleibt diese natürlich gleich.
nach dem ausführen des ganzen erscheint die listView mit allen einträgen, jedoch ist keiner davon markiert.
wenn ich jedoch debugge, ist das entsprechende item selected=true.
er ist also im code eindeutig selektiert, wird aber auf dem GUI nicht selektiert angezeigt.
wie ist sowas möglich? ich bin nun schon seit über einer stunde am debuggen und finden den fehler einfach nicht 🤔
ich hoffe ich habe mein problem einigermassen klar beschrieben. ansonsten, einfach fragen.
grz & danke im voraus
RIDI2oo6
hey super. hat mir sehr geholfen.
vielen dank.
grüsse aus der schweiz (ja, wir haben schon pc's! 😉 )
RIDI2oo6
hallo zusammen
ich möchte gerne einen einfachen event erstellen, der reagiert, wenn eine int-variable ihren wert ändert. ich habe leider in der forensuche nichts passendes gefunden.
versteht mich nicht falsch, ich will nicht unbedingt fertigen code. ein wink in die richtige richtung würde mir schon reichen 😉
ich weiss, dass ich etwas mit delegates o.ä machen muss.
bin für jeden tipp dankbar
gruss
RIDI2oo6
verdammt, seid ihr schnell 😁
vielen dank, herbivore, wird mir bestimmt weiter helfen 👍
Hallo zusammen
Ich habe in meiner Ausbildung immer mit dem Microsoft Visual Studio .net entwickelt.
Dort gab es das Control DataGridView meines Wissens noch nicht (jedenfalls nicht in der Toolbox).
Jetzt habe ich am Arbeitsplatz das Microsoft Visual Studio 2005 installiert, und dort habe ich nun in der Toolbox nur noch das DataGridView-Control.
Das DataGrid ist natürlich noch in 'System.Windows.Forms' vorhanden, aber es ist doch etwas lästig, das ganze auszuprogrammieren, finde ich. Wozu hat's schliesslich einen Designer? 😉
Also meine Fragen:
Gruss & vielen Dank im Voraus
RIDI2oo6
wie wärs wenn du deinen eigenen kleinen verschlüsselungsalgorithmus schreibst und in dein programm einbaust?
informationen und ideen dazu findest du überall im netz. ich hab' das auch mal gemacht, ist wirklich spannend!
du verschlüsselst einfach den connection-string, schreibst ihn ins config-file und beim auslesen entschlüsselst du ihn.
bei den meisten programmen wird nämlich nicht unbedingt eine weiss-ich-wieviel-bit-verschlüsselung gebraucht.
grz
RIDI2oo6
hi
also ich neheme dazu meistens die hände...
grz, RIDI2oo5
?
so einfach? ok, na dann dank ich mal schön 😁
hallo zusammen
bei windows forms-anwendungen gibt es doch das Application-objekt, das unter anderem auch die property 'StartupPath' enthält.
bei konsolenanwendungen gibt es jedoch kein Application-objekt. wie kann ich dennoch den pfad auslesen, von dem aus die *.exe gestartet wurde?
thx im voraus
RIDI2oo5
so, wiedermal ein kleines problem
per OleDbDataReader (und natürlich OleDbCommand/OleDbConnection) lese ich daten aus einer excel-tabelle. dies funktioniert einwandfrei.
jedoch kann funzt das schreiben oder löschen von daten mit folgendem code nicht:
OleDbConnection myLogConn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VS Projects\HostStandorte\HostStandorte\bin\Debug\HostListe.xls;Extended Properties=""Excel 8.0;HDR=Yes;IMEX=1""");
OleDbCommand myLogComm = new OleDbCommand("DELETE * FROM [Tabelle1$]", myLogConn);
myLogConn.Open();
myLogComm.ExecuteNonQuery();
myLogConn.Close();
ich benutze den gleichen connectionstring wie beim auslesen. der commandtext sollte eigentlich auch stimmen ("[Tabelle1$]").
beim execute passiert dann (ganz normale OleDbException). kann es sein dass man per OleDb nur auslesen, aber nicht schreiben oder löschen kann?
thx für antworten
<edit>
oh, ich sehe gerade dass beim pfad der *.xls-datei die backslash fehlen. naja, einfach nicht beachten. am pfad liegt es bestimmt nicht 😉
</edit>
danke euch für die antworten! 😁 👍
aber ich habe noch einen kurzen einwand:
ist es nicht so dass, wenn sich der angegebene pfad beim directory.exists(...) im netz befindet, im hintergrund automatisch gepingt wird?
ich auf jeden fall noch versuchen 'von hand' zu pingen, ma schaun obs schneller wird.
thx & greeze
RIDI2oo5
hallo zusammen
ich habe ein kleines problem mit dem zugriff auf netzwerkrechner. ich arbeite an einem kleinen projekt bei dem ich per remote auf alle rechner im netzwerk des spitals, in dem ich arbeite, einen registry-eintrag schreibe.
aus einer excel-tabelle hole ich jeweils den hostnamen eines pc's sowie der dazugehörige wert, der in die registry soll (nummer des raums, in dem sich der pc befindet). aufgrund dieser daten schreibe ich dann per remote den registry-eintrag auf den rechner.
jedoch sind dies weit über 1000 rechner, weshalb natürlich niemals alle eingeschaltet sind. ich will deshalb in einem kleinen logfile die hostnummern der pc's schreiben, die nicht eingeschaltet sind, damit ich weiss, welche ich noch nachholen muss.
mein problem liegt bei der überprüfung, ob ein netzwerk-rechner nun eingeschaltet ist oder nicht.
bisher habe ich es mit 'Directory.Exists(@"\" + hostname+ @"\d$")' gelöst, da das d:\ immer freigegeben ist. diese methode braucht jedoch ca. 20 sekunden um festzustellen, dass ein directory nicht existiert.
meine frage: geht dies auch irgendwie anders/schneller als mit directory.exists?
und wenn gar nichts hilft: screenshot und zurechtschneiden 😁
LOL, genau das habe ich auch gemacht.
ist ja eigentlich auch logisch. wenn siche das projekt auf einem netzlaufwerk befindet, wird logischerweise auch die *.exe dahin generiert. und dass man von einem netzlaufwerk nicht auf ein "C:" zugreifen kann ist ja logisch.
hab's jetz auf die lokale festplatte kopiert und jetz funzt's einwandfrei.
danke für eure antworten.
greeze RIDI2oo5
zuerst mal: danke für die raschen antworten! 👍
@-acid-: das habe ich beides schon probiert, funz auch beides nicht.
@cmpxchq: ich arbeite im firmennetzwerk. es ist so, dass das VS.net auf meinem lokalen rechner installiert ist, ich mich aber an diesem rechner mit meinem login am netz anmelde. das projekt befindet sich auf einem netzlaufwerk.
aber da das VS.net lokal installiert ist denke ich nicht dass es daran liegt. aber andererseits kann ich mir fast nichts anderes vorstellen.
wie kann ich das überprüfen?
hallo zusammen
ich benutze in einem programm die methode Directory.Exists. wie sie verwendet wird weiss ich, aber es ist mir nicht klar wieso er bei jedem pfad den ich ihm angebe 'false' zurückgibt.
als bsp:
bool i = Directory.Exists(@"C:\");
dieser pfad existiert logischerweise auf meinem pc, trotzdem ist i immer false...
kann mir jemand helfen? bestimmt mache ich irgendwas falsch, aber was??
und wie kann ich sonst noch überprüfen, ob ein angegebener pfad (ohne datei!) existiert?
thx im voraus für antworten.
RIDI2oo5
hehe, wer vertraut schon seiner eigenen verwandschaft?!? 🤔
noch 'ne frage: wieviel verlangst du nach der testperiode von deinen lieben verwandten? 😁
nein, mal im ernst, die testperiode anhand der anzahl gesendeter sms festzulegen wäre doch die einfachste lösung!?
Alternativ-Idee:
Wieso machst du anstatt der 30-Tage-Limite nicht einfach eine Limite von z.B. 50 SMS?
Dann wäre das ganze Problem gelöst... 😉
ok, habs gefunden.
(dieses kopfhau-smiley ist wirklich unbedingt nötig!! 😄)
muss die argumente umgekehrt angeben... also z.b. :
System.Diagnostics.Process.Start(@"C:\\WINDOWS\\system32\\notepad.exe", @"C:\\WINDOWS\\bootstat.dat");
danke für die geduld 😉
hmm... scheint irgendwie nicht zu klappen 🙁
wenn ich z.b. folgendes mache:
System.Diagnostics.Process.Start(@"C:\\testODBC.udl", @"C:\WINDOWS\system32\notepad.exe");
öffnet sich die *.udl trotzdem normal (mit dem fenster 'datenverknüpfungseigenschaften'). was mache ich falsch?
<edit>
und wenn ich z.b. eine *.dat-datei, die ja keiner anwendung zugeordnet ist, öffne, bekomme ich logischerweise die fehlermeldung:
Der angegebenen Datei ist keine Anwendung zugeordnet.
</edit>
super ridi...^^ wiedermal verdammt weit geschaut... 😁
(ich wär halt immer noch für ein smiley dass sich selber mit einem riesengrossen hammer den schädel einhaut 😁 )
vielen dank franky 👍
hi zusammen
hab wieder mal ein kl. problem. ich möchte von meinem programm aus video-dateien öffnen.
dies mache ich momentan so:
System.Diagnostics.Process.Start(@"D:\\Daten\\Sonstiges\\beispiel.avi");
das funzt auch.
aber mit diesem aufruf wird das video halt nur mit dem standard-programm, das der datei unter windows zugeordnet ist, geöffnet. in meiner anwendung soll der benutzer aber auswählen können, mit welchem player er die datei abspielen will.
wie kann ich also eine datei mit einem bestimmten programm öffnen?
p.s.: falls die frage schon mal gestellt wurde: sry, hab die forensuche benutzt, aber nichts gefunden 🤔
aber darauf achten dass die aufzurufende methode public ist!
du kannst in einer textBox nicht mit '\n' arbeiten.
nimm mal das als ansatz:
string[] zeilen = new string[2] {"Zeile1", "Zeile2"};
textBox2.Lines = zeilen;
vielleicht hilft dir das weiter. kannst ja deinen string nach einem trennzeichen splitten und dann den erhaltenen string[] als 'Lines' angeben...
hab'ich mich auch grad gefragt.
das würde dann in etwa so aussehen:
string[] a = new string[5] {"a", "b", "c", "d", "e"};
MessageBox.Show(String.Join("\n", a));
die ausgabe in der MessageBox würde dann so aussehen:
a
b
c
d
e
so, ich habe jetzt einen neuen ansatz gewählt.
alter ansatz:
neuer ansatz:
so muss ich mir um die ordnung keine sorgen mehr machen, da ich den tree in der reihenfolge fülle, aus der ich auch aus der datenbank lese 8)