コード例 #1
0
        public void Run()
        {
            // Setze Flag für "Thread läuft"
            this.running = true;
            // Hole den Stream für's schreiben
            theStream = this.connection.GetStream();

            // Stream zum lesen holen
            streamReader = new StreamReader(theStream);
            while (!stop)
            {
                try
                {
                    // Hole die Daten ab und schreibe sie in die "Console"
                    String data = streamReader.ReadLine();
                    if (data != null && data != "")
                    {
                        CmdConsole.instance().newMessages(data);
                    }
                }
                catch (Exception)
                {
                    // bis ein Fehler aufgetreten ist
                    stop = true;
                }
            }
            // Setze das Flag "Thread läuft" zurück
            this.running = false;
        }
コード例 #2
0
 public static CmdConsole instance()
 {
     if (uniqueInstance == null)
     {
         uniqueInstance = new CmdConsole();
     }
     return(uniqueInstance);
 }
コード例 #3
0
 public void send(Keys taste)
 {
     if (specialKeys.ContainsKey(taste))
     {
         SendKeys.Send(specialKeys[taste]);
         CmdConsole.instance().newMessages("Key gesendet: " + specialKeys[taste].ToString());
     }
     else
     {
         string tmp = taste.ToString();
         SendKeys.Send(tmp);
         CmdConsole.instance().newMessages("Key gesendet: " + tmp);
     }
 }
コード例 #4
0
 public void send(string theKey)
 {
     try
     {
         Keys key = (Keys)Enum.Parse(typeof(Keys), theKey, true);
         if (specialKeys.ContainsKey(key))
         {
             SendKeys.Send(specialKeys[key]);
             CmdConsole.instance().newMessages("Key gesendet: " + specialKeys[key].ToString());
         }
         else
         {
             SendKeys.Send(theKey);
             CmdConsole.instance().newMessages("Key gesendet: " + theKey.ToString());
         }
     }
     catch (Exception) { }
 }
コード例 #5
0
        // Verschiebe alle Ordner und Dateien in das destDir
        private bool mergeDirectory(string sourceDir, string destDir)
        {
            bool successful = true;

            try
            {
                DirectoryInfo source = new DirectoryInfo(sourceDir);
                DirectoryInfo target = new DirectoryInfo(destDir);

                if (source.FullName.ToLower() == target.FullName.ToLower())
                {
                    return(false);
                }

                // Check if the target directory exists, if not, create it.
                if (Directory.Exists(target.FullName) == false)
                {
                    Directory.CreateDirectory(target.FullName);
                }

                // Copy each file into it's new directory.
                foreach (FileInfo fi in source.GetFiles())
                {
                    if (!File.Exists(Path.Combine(target.ToString(), fi.Name)))
                    {
                        fi.MoveTo(Path.Combine(target.ToString(), fi.Name));
                    }
                }

                // Copy each subdirectory using recursion.
                foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())
                {
                    DirectoryInfo nextTargetSubDir = target.CreateSubdirectory(diSourceSubDir.Name);
                    successful = mergeDirectory(sourceDir + diSourceSubDir.ToString() + "\\", nextTargetSubDir.ToString());
                }
            }
            catch (Exception ex)
            {
                CmdConsole.instance().newMessages("Fehler beim verschieben: " + ex.Message);
                successful = false;
            }

            return(successful);
        }
コード例 #6
0
        public bool PreFilterMessage(ref Message m)
        {
            Keys keyCode = (Keys)(int)m.WParam & Keys.KeyCode;

            if (m.Msg == WM_KEYDOWN)
            {
                CmdConsole.instance().newMessages(keyCode.ToString());
                if (keyCode.ToString() == "V")
                {
                    return(false); //weitergeben der Taste
                }
                return(true);      //Nicht weitergeben der Taste
            }
            if (m.Msg == WM_KEYUP)
            {
                return(true);
            }

            return(false);
        }
コード例 #7
0
 public static CmdConsole instance()
 {
     if (uniqueInstance == null)
         uniqueInstance = new CmdConsole();
     return uniqueInstance;
 }
コード例 #8
0
        public void archiveFile()
        {
            //Root dirs können nicht archiviert werden
            if (!isJustARootForMultiDir)
            {
                //Die Datei wird archiviert, dazu wird der Rootordner in den Archiv Ordner verschoben
                //Sind mehrer Dateien im gleichen ordner verschiebe nicht den gesamten Ordner
                //Es wird nur das niedrigste Verzeichnis, dass keine anderen abspielbaren Dateien enthält verschoben
                //Sind keine anderen Dateien mehr vorhanden wird der Ordner mit allen anderen nicht abspielbaren Dateien/Ordnern verschoben
                string sourceFile    = filePath;
                string sourceRootDir = null;
                string destRootDir   = null;
                if (downloadRootDir != null)
                {
                    destRootDir   = Properties.Settings.Default.ArchivDir + "\\" + downloadRootDir + "\\";
                    sourceRootDir = Properties.Settings.Default.DownloadDir + "\\" + downloadRootDir + "\\";
                }
                string destFile = getDestinationFilePath();

                try
                {
                    //Erster Fall: kein Ordner im Downloadverzweichnis sondern nur einzelne Datei
                    //->Verschiebe diese einzelne Datei in den Archiv Ordner
                    if (sourceRootDir == null)
                    {
                        //Wenn Datei bereits vorhanden, einfach source löschen da Doppelung
                        if (File.Exists(destFile))
                        {
                            File.Delete(sourceFile);
                        }
                        else
                        {
                            File.Move(sourceFile, destFile);
                        }
                    }

                    //Zweiter Fall: Kein multiDir und Zieldirectory nicht vorhanden
                    //->Verschiebe den gesamten Ordner ins Archiv mit gesamten Inhalt
                    else if (!isMultiDirectory && !Directory.Exists(destRootDir))
                    {
                        Directory.Move(sourceRootDir, destRootDir);
                    }

                    //Dritter Fall: Kein multiDir aber Zielordner ist bereits vorhanden, es war evtl. ein multiDir
                    //->Prüfe jede Ordner-Ebene bis zur Datei und verschiebe alle vorhandenen Ordner und Dateien
                    else if (!isMultiDirectory && Directory.Exists(destRootDir))
                    {
                        if (mergeDirectory(sourceRootDir, destRootDir))
                        {
                            Directory.Delete(sourceRootDir, true);
                        }
                    }

                    //Vierter Fall: multiDir
                    //->Belasse die anderen abspielbaren Dateien im Ordner aber verschiebe die maximale Ordnerebene mit nur einer abspielbaren Datei
                    else if (isMultiDirectory)
                    {
                        if (!Directory.Exists(destRootDir))
                        {
                            Directory.CreateDirectory(destRootDir);
                        }
                        string   tmpDestFile    = destFile.Remove(0, destRootDir.Length);
                        string[] destDirectorys = tmpDestFile.Split('\\');

                        //Verschiebe die Datei da es keine weiteren Ordner gibt
                        if (destDirectorys.Length == 1)
                        {
                            File.Move(sourceFile, destFile);
                        }
                        //Gehe jeden weiteren Ordner durch und prüfe ob noch andere abspielbare Dateien vorhanden sind
                        //Sobald keine mehr vorhanden sind, verschiebe den Ordner oder Datei
                        else
                        {
                            string actualDestDir   = destRootDir;
                            string actualSourceDir = sourceRootDir;

                            for (int i = 0; i < destDirectorys.Length - 1; i++)
                            {
                                //Speicher aktuelle Ordner Ebene ab
                                actualDestDir   += destDirectorys[i] + "\\";
                                actualSourceDir += destDirectorys[i] + "\\";

                                //Erstelle Zielordner falls nicht vorhanden
                                if (!Directory.Exists(actualDestDir))
                                {
                                    Directory.CreateDirectory(actualDestDir);
                                }

                                //Suche andere Dateien
                                String[] mkvFiles = System.IO.Directory.GetFiles(actualDestDir, "*.mkv", System.IO.SearchOption.AllDirectories);
                                String[] aviFiles = System.IO.Directory.GetFiles(actualDestDir, "*.avi", System.IO.SearchOption.AllDirectories);

                                //Sind keine anderen Dateien vorhanden verschiebe den ganzen Ordner
                                if (mkvFiles.Length == 0 && aviFiles.Length == 0)
                                {
                                    if (mergeDirectory(actualSourceDir, actualDestDir))
                                    {
                                        Directory.Delete(actualSourceDir);
                                    }
                                }
                                //Wenn Dateien vorhanden sind aber es keinen weiteren Ordner gibt, verschiebe nur die einzelne Datei
                                else if (i + 2 == destDirectorys.Length)
                                {
                                    File.Move(sourceFile, destFile);
                                }
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    CmdConsole.instance().newMessages("Fehler beim kopieren ins Archiv " + ex.Message);
                }
            }
        }