Laden...

Forenbeiträge von jiM3op Ingesamt 24 Beiträge

01.04.2007 - 23:25 Uhr

Huhu!

Niemand ne Idee, oder Tip? X(

jimmie

31.03.2007 - 11:23 Uhr

Hallo zusammen,

ich würde gerne wissen, wie ich mit C#Zugriff auf die Daten einer NT4 Domäne nehmen kann. Ich möchte kurz erläutern was ich machen möchte:

Im Zuge einer Verlagerung vieler Benutzerprofile (ca. 1000) auf einen neuen Server möchte ich in der Domäne gerne auslesen, ob ein bestimmter Benutzer (ausgelesene Benutzerliste mit angegebenem Profilpfad --> aus Domäne) angemeldet ist, oder ob er eine Session auf sein Profilverzeichnis geöffnet hat. Sollte dies nicht der Fall sein, soll das Programm den Useraccount auf "disabled" setzen, so dass der Benutzer sich nicht einloggen kann. Anschließend möchte ich seine Daten verschieben bzw. kopieren, ein Script editieren und den Account wieder freischalten.

Leider habe ich keine Ahnung, wie ich auf die Domänendaten zugreifen kann. Habt ihr nen Tip für mich?

Vielen Dank,

jimmie

24.01.2007 - 11:12 Uhr

[EDIT]Bitte keine sachfremden Threads kapern. Abgetrennt Windows und Kommandozeilen Programm in einem[/EDIT]

Huhu!

ich habe mir gerade ein kleines Tool gebastelt, dass Eventlogs liest, diese in eine RichTextbox schreibt und dann per Mail an einen User verschickt. Alles funktioniert.

Da ich diesen Prozess gerne auch automatisieren möchte hatte ich folgende Idee:

Ich würde gerne das Programm per Kommadozeile aufrufen und gleich eine config.ini zum auslesen mitgeben. Dort stehen dann alle Parameter drinnen, die gebraucht werden. Der Aufruf sollte dann etwa "c:\programm.exe c:\test\config1.ini" lauten.

Zur Zeit habe ich das einlesen der ini mit einem "if exists" realisiert. Da ich aber gerne in der Lage wäre, unterschiedliche ini Dateien mitzugenen, wäre die Lösung über den Aufruf mit config Datei am schönsten.

Vielen Dank schon mal,

jimmie

23.01.2007 - 09:35 Uhr

Huhu!

Habe die selbe Anforderung wie der Thread-Starter. Könnte mir jemand ggf. ein wenig Beispielcode verfügbar machen? Ich weiss nicht genau wie ich's sonst lösen soll.

Danke!

jimmie

02.10.2006 - 16:30 Uhr

Hallo zusammen,

ich habe hier ein Problem mit einer unattended Installation von Windows 2000. Diese Installation nimmt immer sämtliche gefundenen SCSI Treiber mit in die endgültige Installation auf, so daß nachher anstatt dem einen wirklich vorhandenen Controller, 32 Stück angezeigt werden. Hierbei handelt es sich um ein Problem, dass MS bekannt ist und auch in einem KB Artikel als solches beschrieben wird.

Ich möchte nun gerne ein kleines GUI-gestütztes Programm basteln, dass die überflüssigen Geräte löscht und nach der letzten Löschung einen Reboot macht.

Meine Frage lautet deshalb: Wie kann ich mit C# auf den GeräteManager zugreifen, gibt's da was? Wäre nett, wenn mir jemand mit 'ner Antwort den Einstieg etwas erleichtern würde.... DANKE!

Beste Grüße,

jimmie

23.07.2006 - 16:06 Uhr

Huhu!

habe mal ne tool zum schnellen erstellen ebensolcher dateien gebastelt und auch mächtige probs gehabt, dass das ascii nachher hübsch aussah (bzgl. der verwendeten font)....

letztendlich lags bei mir am verwendeten encoding... weiss nicht ob du das schon mal in deine anwendung verwurstest hast..

Ich habs so gemacht und es funzt wunderbar:



System.IO.StreamWriter w= new StreamWriter(saveFileDialog1.FileName,false,System.Text.Encoding.Default)

....

this.Font = new Font("Terminal",9);


Hoffentlich hilfts dir,

jimmie

20.03.2006 - 21:58 Uhr

Huhu!

Process p = Process.Start(startInfo); 

weils dann eine Objekt ist??? Ist das der Unterschied?

Noch ne kleine Frage... Was ist wenn der Prozess schon beendet ist bevor das WaitForExit aufgerufen wurde?

jiM

20.03.2006 - 21:48 Uhr

Hi herbivore!

Super klasse!! Danke schön! Allerdings musste ich den Code umschreiben um überhaupt Process.WaitForExit nutzen zu können. Für einen Anfänger wie mich ist das etwas verwirrend.



        public string[] getxml(string infold, string filename, string xmlname)
        {

            string makeXMLexe = @"c:\vcdxminfo.exe";

            string argu = "-v -i -o ";

            string cmdline = makeXMLexe + "," + argu + xmlname + " " + infold +  "\\" + filename;


            Process p = new Process();

           
            

            p.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;

            p.StartInfo.UseShellExecute = true;

            p.StartInfo.FileName = makeXMLexe;
            p.StartInfo.Arguments = argu + xmlname + " " + infold + "\\" + filename;

            

            p.Start();

            p.WaitForExit();
            
            

            

            //while (startInfo.

            XmlTextReader reader = new XmlTextReader(xmlname);



So funktionierts jetzt wunderbar! Kannst du mir in knappen Worten erklären, wo der unterschied zum obrigen Code liegt?

Danke Danke und nomma danke 😁 👍

jiM

20.03.2006 - 21:20 Uhr

Hallo zusammen,

da ich über eine externe Anwendung eine xml-Datei erzeuge, die ich danach direkt wieder einlesen möchte, muss ich ja wissen, ob die Erstellung abgeschlossen wurde. Sonst bekomme ich natürlich ne File Not Found Exception....



        public string[] getxml(string infold, string filename, string xmlname)
        {

            string makeXMLexe = @"c:\vcdxminfo.exe";

            string argu = "-v -i -o ";

            string cmdline = makeXMLexe + "," + argu + xmlname + " " + infold +  "\\" + filename;

            


            ProcessStartInfo startInfo = new ProcessStartInfo(makeXMLexe);
            

            startInfo.WindowStyle = ProcessWindowStyle.Minimized;

            startInfo.UseShellExecute = true;

            startInfo.FileName = makeXMLexe;
            startInfo.Arguments = argu + xmlname + " " + infold + "\\" + filename;

            Process.Start(startInfo);

 // xml Reader start

            XmlTextReader reader = new XmlTextReader(xmlname);


Wenn ich's so mache, kommt besagte Fehlermeldung... Ich schätze ich muss irgendwie rauskriegen, ob der Prozess noch läuft und dann erst mit dem lesen der xml Datei weitermachen....

Kann mir jemand helfen oder nen Tip geben? Ach ja... WinApi kann ich überhaupt nicht mit umgehen, sorry.

Danke,

jiM

09.03.2006 - 21:09 Uhr

Hallo!

Ich habe ein Problemchen. Ich möchte gerne Informationen die in einer XML-Datei gespeichert sind in meine Anwendung übernehmen. Die Struktur der XML Datei ist immer gleich. Sie wird mit Hilfe eines Programmes erzeugt und sieht immer so aus:

 

<mpeg-info src="c:test.mpg">
  <mpeg-properties>
    <version>1</version>
    <playing-time>60.069989</playing-time>
    <pts-offset>0.340078</pts-offset>
    <packets>4526</packets>
    <bit-rate>1411200</bit-rate>
    <video-stream index="0">
       <!-- motion video stream -->
      <horizontal-size>352</horizontal-size>
      <vertical-size>240</vertical-size>
      <frame-rate>29.970030</frame-rate>
      <bit-rate>1150000</bit-rate>
    </video-stream>
    <audio-stream index="0">
       <!-- base audio stream -->
      <layer>2</layer>
      <sampling-frequency>44100</sampling-frequency>
      <bit-rate>229376</bit-rate>
      <mode>stereo</mode>
    </audio-stream>
  </mpeg-properties>
</mpeg-info>


Ich möchte nun gerne auf die Werte von "horizontal-size", "vertical-size" und "frame-rate" zugreifen und diese in Variablen speichern...

Ich habe im MSDN nachgeschaut und bekomme's einfach nicht auf die Reihe... Ich dachte immer xml sei so einfach abzugreifen, scheinbar (für mich) aber doch nicht.

Hat jemand nen Tip für mich?

Danke,

jimmie

06.03.2006 - 11:05 Uhr

Hallo!

Vielen Dank! Das funktioniert tadellos!! Super!

jimmie

05.03.2006 - 14:53 Uhr

Hi herbivore!

Danke für die schnelle Antwort. Leider blicke ich es noch nicht so ganz....

Mein Klasse / Methode sieht so aus...

  

    class info
    {
        
        string tool = "C:\\TheCooK\\RelCenter\\mpgtx.exe";
        string mpginfo = " -i ";
        string output = " >>C:\\test.txt\\";
        string demulti = " -d ";


        public string getinfo(string name)
        {


            string argu = mpginfo + name + output;

            Process myprocess = new Process();
            
            string[] ausgabe = new string[10];

            myprocess.StartInfo.FileName=tool;
            myprocess.StartInfo.UseShellExecute = true;
            ausgabe[0] = myprocess.StartInfo.RedirectStandardOutput.ToString();
            myprocess.Start();

            ausgabe[1] = myprocess.StartInfo.RedirectStandardOutput.ToString();

            MessageBox.Show(ausgabe[0]);
            MessageBox.Show(ausgabe[1]);

            return name;
        
        }

    }



Die "\" werden im Code-Fenster nicht richtig dargestellt. Es sind zwei Backslashes.

Wenn ich die MessageBox.Show aufrufe gibts als Ausgabe "false". Was mache ich falsch?

Gruß und dickes Danke,

jim

05.03.2006 - 14:26 Uhr

Hallo!

Ich stehe vor einem großen Problem... Ich möchte folgendes machen, und habe auch schon die Forumssuche bemüht.

Ich möchte per System.Diagnostics.Process.Start(Anwendung, Args) das Programm mpgtx.exe aufrufen. Dieses gibt (wenn man es mit dem Parameter -i aufruft) Informationen über eine mpg-Datei aus.

Diese Informationen werden im Consolen Fenster angezeigt. Ich hätte sie aber gerne in einem Array, um sie dann ausweten zu können und auch in einer RichTextBox anzuzeigen.

Ist soetwas möglich?

Ausserdem möchte ich meine Anwendung gerne solange disablen bis mpgtx.exe fertig ist.

Kann mir jemand 'nen Tip geben??

Vielen Dank schonmal!

jimmie

03.03.2006 - 18:24 Uhr

Huhu!

Sehe ich das richtig, dass sowohl auf dem Entwicklungsrechner als auch auf dem PC der das kompilierte Programm nachher benutzen soll ein Windows MediaPlayer 10 installiert sein muss? Oder ist dies nur auf der Entwicklungskiste notwendig?

Auch von mir schonmal ein "Hut Ab!!!" ---- nettes Ding!

jimmie

14.07.2005 - 12:39 Uhr

Hallo!

Auch auf die Gefahr hin, dass es nervig wird... Es geht nicht, weil keine URL ausgegeben wird sobald der Button geklickt wird. Ein Aufruf über

http://192.168.2.1/PPPstatus.html?ConStatus=1

funktioniert ebensowenig. Ich glaube man kann diesen Button wirklich nur über die Weboberfläche (aktiv) bedienen.

Ich hatte mir versucht mit einem Sendkey.Send zu helfen. Leider ging dies auch nicht wirklich, da das Fenster nach dem Aufruf zwar aktiv war, die Keys aber erst gesendet wurden, nachdem ich einmal mit der Maus auf das Fenster geklickt hatte (habe ca. 15 sekunden gewartet bis ich geklickt habe, um sicher zu sein, dass ich nicht zu ungeduldig bin)

jiM

14.07.2005 - 11:56 Uhr

Danke für den Tipp... ich kriegs aber nicht hin.... das Problem ist, dass diese html Datei alles ist, was ich sehen kann. Wie gesagt.. es handelt sich hier um einen Hardware Router. Ich kann leider nichts weiteres Aufrufen um mir bspw. die dahinterstehende Funktion anzusehen.

Im Anhang ist die komplette html-Datei... Wenn jemand weiss wie's geht.... BITTE!!!!! 😁

Danke!

ein genervter

jiM

13.07.2005 - 21:45 Uhr

Oh Mann....

das sah so super aus... leider hats micht nicht weitergebracht. Ich glaube es liegt daran, dass im Quelltext meines Routers kein Name für den Button angegeben ist. Die o.g. Klasse sucht aber den Quelltext nach einem Namen ab...

Shit!

13.07.2005 - 20:34 Uhr

Hallo!

Habe nun durch googlen scheinbar die absolute Lösung gefunden....

http://www.codeproject.com/csharp/mshtml_automation.asp

In meinem Quelltext (auf der Connect / Disconnect Page des Routers) steht

<input type="submit" value="Connect" onClick="isCon(1)">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="submit" value="Disconnect" onClick="isCon(0)">

Jetzt muss ich nur noch wissen, wie ich diese Events in dem o.g. Script trigger!

Gruß,

jim

13.07.2005 - 20:00 Uhr

Danke euch beiden...

dieses Problem habe ich nun gelöst! Ich habe die IP-Adresse einfach zerschnibbelt in die einzelnen Oktette und dann mit

string myipall = System.String.Copy(ipa+"." + ipb+"." +ipc+".");

einen neuen gebastelt! (Bei der Gelegenheit kann ich nur das Tool RegexBuddy empfehlen... das ist Goldes Wert).

Soweit funktioniert alles wunderbar... ABER... 🙁

Da ich nicht weiss, wie ich es schaffe, meinen Router zum "Disconnect / Connect" zu bewegen, habe ich mir mit einem aufgezeichneten Macro geholfen (MacroMachine 3.0). Das Öffnet den Browser, clickt die Buttons und schliesst den Browser wieder). Auch das funktioniert gut! Jedoch scheint es eine sehr schlechte Kombination zu ergeben:

Ich öffne das Macro mit

System.Diagnostics.Process.Start("d:\disco.mma");

Während das Macro ausgeführt wird, scheint das Programm aber weiter zu laufen (warum sollte es auch nicht?). Dadurch kann ich keine Überprüfungen mehr machen, ob die IP-Adresse korrekt ist... deshalb wird das Macro immer weiter ausgeführt.

Ich habe es mit einer while Schleife aufgerufgen:

while (myipall != "84.44.0." || myipall != "84.44.1." || myipall != "84.44.2." || myipall != "84.44.3.")

Das ist schade! Am liebstem möchte ich das connect / disconnect auch in c# machen und das Macro ganz weglassen... Leider besitzt der Router aber nur Submit Buttons, die ich nicht einfach aufrufen kann (ich weiss zumind. nicht wie).

Irgendwelche Tipps? Nochmals SUPER DANKE für die Hilfe bis hierhin... Spitzen Forum und User!

jimmie

13.07.2005 - 14:43 Uhr

Danke Programmierhans!

klappt ganz hervorragend... ich habe aber noch eine kurze Frage...

Wie kann ichs anstellen, dass ich nicht die ganze IP-Adresse sondern nur die drei ersten Oktette bekomme?

Also statt 127.0.0.1 möchte ich nur 127.0.0. ausgelesen haben...

Meine Vermutung ist, dass ich die Zeile

int end=str.IndexOf("<",begin);

anpassen muss... aber weiss nicht genau wie ich das machen soll!

Danke im Voraus,

jim

10.07.2005 - 13:37 Uhr

Danke an alle die geholfen haben....!

Es ist gelöst... hehe endlich! 🙂

Ich mussste nur die Zeile zur Ausgabe in die Datei anpassen....

System.IO.StreamWriter w= new StreamWriter(saveFileDialog1.FileName,false,System.Text.Encoding.Default);

Das wars dann!

Bis denne und schönen Sonntag!

jiM

09.07.2005 - 10:53 Uhr

Hallo!

Leider bekomm ichs nicht hin.... zum Verständnis:

So wie in der .jpg Datei soll es aussehen... Terminal Font (9) (OEM/DOS), und so sieht mein Output tatsächlich aus:

,’ ,‘ ,‘ ,‘ ,‘ ,‘ ,’
,“,’ ,‘ ,’,“
ø,“,’,‘ ,‘ ,‘ ,‘ ,‘,’,“ø
,’,‘ ,‘,’
,‘ Q P Q R Q O Q U Q D Q L Q Y Q Q P Q R Q E Q S Q E Q N Q T Q S Q ,‘

Hat jemand noch einen Vorschlag?

Danke schon mal!

jiM

07.07.2005 - 09:52 Uhr

Hallo!

Ich bin noch ziemlicher Neuling im Programmieren. Habe schon ein wenig Erfahrung sammeln können, aber nicht sonderlich viel.

Aus praktischen Gründen, und um weiter zu lernen, möchte ich gerne ein Programm schreiben. Dieses soll folgendes machen:

  • Herausfinden welche WAN-IP ich z.Zt. habe
  • Überprüfen ob diese IP einer bestimmten Maske entspricht
  • Maske stimmt überein = Ende
  • Maske stimmt nicht überein = Disconnect / Connect und von vorn

Wie kann ich sowas am besten angehen? Vor allem... wie kommuniziere ich mit meinem Router um die Connect / Disconnect Geschichte zu triggern?

Bin für jeden Tip dankbar!

jiM

07.07.2005 - 09:44 Uhr

Hallo!

Wenn ich eine selsterstellte Datei in Font "Terminal" ansehe, sieht das Ergebnis ordentlich aus (nfo-style mit ascii-art).

Wie kann ich meinem c# progrämmchen beibringen die Font per default zu verwenden? Visual Studio scheint die nicht benutzen zu wollen... wie gemein 🙂

Hat einer ne Idee? Danke!

jiM