<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>WinForms</title><link>https://www.dotnetzone.gr:443/cs/forums/12/ShowForum.aspx</link><description>Θέματα για rich client / windows εφαρμογές, σε οποιαδήποτε γλώσσα (VB.NET, C#, managed C++, κ.α.)</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: c# Mini Media Player, arguments input</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59122.aspx</link><pubDate>Tue, 15 Jun 2010 05:14:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59122</guid><dc:creator>icecbr</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59122.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=59122</wfw:commentRss><description>Φιλε μου εγραψες!!&lt;br&gt;&lt;br&gt;ti worked like a charm!!! :)&lt;br&gt;&lt;br&gt;many many thanks!!!&lt;br&gt;</description></item><item><title>Απ: c# Mini Media Player, arguments input</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59113.aspx</link><pubDate>Mon, 14 Jun 2010 20:05:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59113</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59113.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=59113</wfw:commentRss><description>&lt;P&gt;Υποψιάζομαι ότι υπάρχει μία παρανόηση σχετικά με το τί κάνει η εφαρμογή, τί κάνει ο Explorer και πως περνάς παραμέτρους σε ένα πρόγραμμα. &lt;/P&gt;
&lt;P&gt;Όταν κάνεις διπλό κλικ σε ένα αρχείο ο Explorer ψάχνει να βρει με βάση την κατάληξη του αρχείου αν έχει οριστεί κάποιο πρόγραμμα το οποίο μπορεί να το ανοίξει. Όταν το βρει το εκτελεί και περνάει σε αυτό ως πρώτη παράμετρο το όνομα του αρχείου. Όταν εσύ κάνεις διπλό κλικ σε άλλο αρχείο θα γίνει ακριβώς το ίδιο και ο explorer θα ξεκινήσει ένα δεύτερο instance. &lt;/P&gt;
&lt;P&gt;Το ερώτημα σου στην πραγματικότητα είναι δύο ερωτήματα: Πως μπορώ να αποφύγω την εκτέλεση του δεύτερου instance και πως μπορώ να περάσω το όνομα του δεύτερου αρχείου στο πρώτο instance. Ευτυχώς, ο Scott Hanselman περιγράφει &lt;A href="http://www.hanselman.com/blog/TheWeeklySourceCode31SingleInstanceWinFormsAndMicrosoftVisualBasicdll.aspx"&gt;πως να λύσεις και τα δ&lt;/A&gt;ύο χρησιμοποιώντας το Microsoft.VisualBasic.dll και 10-15 γραμμές κώδικα. Ο κώδικας λέει στα Windows ότι θα υπάρχει μόνο ένα instance της εφαρμογής τη φορά.&amp;nbsp;Όταν δοκιμάσεις να σηκώσεις το δεύτερο instance τα Windows θα ειδοποιήσουν το πρώτο δίνοντας ως παράμετρο το αρχείο που έκανες double click. Ο κώδικας είναι ο παρακάτω. Ουσιαστικά αντικαθιστάς την Application.Run με την SingleInstanceController.Run και ... καθάρισες:&lt;/P&gt;&lt;PRE&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:black;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; System.Windows.Forms;
&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;using&lt;/SPAN&gt; Microsoft.VisualBasic.ApplicationServices;

&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;namespace&lt;/SPAN&gt; SuperSingleInstance
{
    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; Program
    {
        [STAThread]
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;static&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;false&lt;/SPAN&gt;);
            &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;string&lt;/SPAN&gt;[] args &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; Environment.GetCommandLineArgs();
            SingleInstanceController controller &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; SingleInstanceController();
            controller.Run(args);
        }
    }

    &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;class&lt;/SPAN&gt; SingleInstanceController : WindowsFormsApplicationBase
    {
        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;public&lt;/SPAN&gt; SingleInstanceController()
        {
            IsSingleInstance &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;true&lt;/SPAN&gt;;

            StartupNextInstance += this_StartupNextInstance;
        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; this_StartupNextInstance(&lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;object&lt;/SPAN&gt; sender, StartupNextInstanceEventArgs e)
        {
            Form1 form &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; MainForm &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;as&lt;/SPAN&gt; Form1; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:green;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;//My derived form type&lt;/SPAN&gt;
            form.LoadFile(e.CommandLine[1]);
        }

        &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;protected&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;override&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;void&lt;/SPAN&gt; OnCreateMainForm()
        {
            MainForm &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:red;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;=&lt;/SPAN&gt; &lt;SPAN style="BACKGROUND-COLOR:transparent;FONT-FAMILY:Courier New;COLOR:blue;FONT-SIZE:11px;FONT-WEIGHT:normal;"&gt;new&lt;/SPAN&gt; Form1();
        }
    }
}&lt;/SPAN&gt;&lt;/PRE&gt;</description></item><item><title>Απ: c# Mini Media Player, arguments input</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59109.aspx</link><pubDate>Mon, 14 Jun 2010 19:37:35 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59109</guid><dc:creator>KelMan</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59109.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=59109</wfw:commentRss><description>&lt;P&gt;Αυτό το νέο διπλό κλικ που κάνεις, που ακριβώς το κάνεις; Μέσα στην εφαρμογή σε κάποια λίστα ας πούμε που δείχνει τα mp3s ή στο shell σε κάποιο αρχείο;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description></item><item><title>c# Mini Media Player, arguments input</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/59105.aspx</link><pubDate>Mon, 14 Jun 2010 05:52:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:59105</guid><dc:creator>icecbr</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/59105.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=59105</wfw:commentRss><description>Γεια χαρα σε όλους&lt;br&gt;&lt;br&gt;εχω φτιάξει ένα Mini Media Player για μουσικά αρχεία.&lt;br&gt;&lt;br&gt;εχω κανει τα mp3 να ανοίγουν με αυτό με την string[] args = Environment.GetCommandLineArgs(); κτλ...&lt;br&gt;&lt;br&gt;ανοιγει λοιπόν και το παιζει το mp3... &lt;br&gt;οταν ομως 2πλοκλικαρω ενα άλλo mp3 θέλω να παίρνει σαν όρισμα το new mp3 και να το παιζει...&lt;br&gt;(δηλ ενω παίζει ο player να φορτώσει το νεο που ζητήθηκε...)&lt;br&gt;&lt;br&gt;πως θα το κάνω αυτό ?&lt;br&gt;</description></item></channel></rss>