<?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>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71338.aspx</link><pubDate>Tue, 02 Oct 2012 21:47:43 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71338</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71338.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71338</wfw:commentRss><description>@Markos αστειεύομαι προφανώς :) Εξάλλου είχα πει από την αρχή οτι δεν κατέχω πολλά γυρω από το συγκεκριμένο θέμα&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;@Pkanavos ο "παλαίουρας" δεν είχε ποτέ μα ποτέ μεγάλη επαφή με windows apps. :)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71337.aspx</link><pubDate>Tue, 02 Oct 2012 21:27:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71337</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71337.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71337</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;cap:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Και γιατί με αφήσατε βρε παληκάρια και μπέρδεψα τον άνθρωπο χειρότερα και δεν μιλάγατε πιό νωρίς;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δεν σκέφτηκα καν οτι το dllhost δεν αφορά execution συγκεκριμένης εφαρμογής!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Πού να φανταστώ ότι ένας πάλιουρας θα είχε ξεχάσει τη VB6 και το OLE και πως λέγαμε πάλαι ποτέ πως ανοίγουν τα διάφορα extensions ???&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Μην πω τα τρικ στο registry που γίνονταν με το dllhost? (Δεν τα θυμάμαι, αλλά θυμάμαι ότι τα κάναμε)&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71336.aspx</link><pubDate>Tue, 02 Oct 2012 21:22:49 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71336</guid><dc:creator>Markos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71336.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71336</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;cap:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Και γιατί με αφήσατε βρε παληκάρια και μπέρδεψα τον άνθρωπο χειρότερα και δεν μιλάγατε πιό νωρίς;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δεν σκέφτηκα καν οτι το dllhost δεν αφορά execution συγκεκριμένης εφαρμογής!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Τρεις λόγοι:&lt;br&gt;&lt;ol&gt;&lt;li&gt;Διάβασα το thread για πρώτη φορά αργά χθες το απόγευμα.&lt;/li&gt;&lt;li&gt;Χρειάστηκε λίγο ψάξιμο (το οποίο θέλει και χρόνο), καθώς δεν τα ξέρουμε και όλα! Βασικά, θεωρώ ότι ξέρω μόνο τα... βασικά (κι αυτά, στοιχειωδώς!).&lt;/li&gt;&lt;li&gt;Όταν ένα μέλος απαντά σε μια ερώτηση, δεν είναι ευγενικό να παρεμβαίνεις αν δεν συντρέχει σοβαρός λόγος. Ιδίως όταν πρόκειται για τον administrator ή τους moderators ή παλαιότερα μέλη με περισσότερη εμπειρία και γνώσεις.&lt;br&gt;&lt;/li&gt;&lt;/ol&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71335.aspx</link><pubDate>Tue, 02 Oct 2012 20:21:14 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71335</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71335.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71335</wfw:commentRss><description>Και γιατί με αφήσατε βρε παληκάρια και μπέρδεψα τον άνθρωπο χειρότερα και δεν μιλάγατε πιό νωρίς;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Δεν σκέφτηκα καν οτι το dllhost δεν αφορά execution συγκεκριμένης εφαρμογής!&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71334.aspx</link><pubDate>Tue, 02 Oct 2012 20:01:41 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71334</guid><dc:creator>Markos</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71334.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71334</wfw:commentRss><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;&lt;img src="http://www.dotnetzone.gr/cs/Themes/default/images/icon-quote.gif"&gt; &lt;strong&gt;Παναγιώτης Καναβός:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Αντί να αφήνεις στην τύχη ποιά εφαρμογή θα εμφανιστεί, καλύτερα να δώσεις στο χρήστη τη δυνατότητα να επιλέξει την εφαρμογή που θα χρησιμοποιήσει μέσα από τα Preferences και να την ανοίξεις κανονικά δίνοντας το αρχείο ως παράμετρο.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Ο Παναγιώτης έχει δίκιο. Επίσης είναι καλή πρακτική να περνάς ένα &lt;a href="http://msdn.microsoft.com/en-us/library/bfbyhds5%28v=vs.100%29.aspx"&gt;ProcessStartInfo &lt;/a&gt;object σαν παράμετρο. Παραδείγματα θα βρεις &lt;a href="http://www.dotnetperls.com/process-start"&gt;εδώ&lt;/a&gt;. Τρεις χρήσιμες properties που είναι καλό να έχεις υπόψη σου, αν θες να κάνεις κάτι περισσότερο, είναι η &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.useshellexecute%28v=vs.100%29.aspx"&gt;UseShellExecute&lt;/a&gt;, η &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardinput%28v=vs.100%29.aspx"&gt;RedirectStandardInput &lt;/a&gt;και &lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.redirectstandardoutput%28v=vs.100%29.aspx"&gt;RedirectStandardOutput&lt;/a&gt;. Το documentation δίνει και παραδείγματα για τη χρήση τους.&lt;br&gt;&lt;/div&gt;&lt;br&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71333.aspx</link><pubDate>Tue, 02 Oct 2012 19:28:53 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71333</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71333.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71333</wfw:commentRss><description>&lt;div&gt;Το "πρόβλημα" είναι ότι καταρχήν δεν ξεκινάει καμμία εφαρμογή όταν δίνεις μόνο ένα data file. Αυτό που θα ξεκινήσει είναι το dllhost το οποίο θα πάει να βρει την εφαρμογή που θα χειριστεί το αρχείο και μετά θα κλείσει. Λογικό είναι το αποτέλεσμα της Process.Start να μην έχει νόημα.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αυτό που λες στο λειτουργικό είναι "άνοιξε το αρχείο και δεν με νοιάζει πως". Το πως φαίνεται από το registry και από τα registry verbs για κάθε τύπο, τα οποία άνετα μπορεί να λένε ότι μόνο ένα process θα σηκώνεται για όλα τα documents.&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αντί να αφήνεις στην τύχη ποιά εφαρμογή θα εμφανιστεί, καλύτερα να δώσεις στο χρήστη τη δυνατότητα να επιλέξει την εφαρμογή που θα χρησιμοποιήσει μέσα από τα Preferences και να την ανοίξεις κανονικά δίνοντας το αρχείο ως παράμετρο.&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;Ακόμα και αν βρεθεί τρόπος να ανοίξει η εφαρμογή, ο κώδικας είναι προβληματικός. Το Process.Start γίνεται μέσα σε μία μέθοδο η οποία τραβάει δεδομένα από τη βάση, η οποία απ' ότι φαίνεται χρησιμοποιεί (και μπλοκάρει) ένα connection το οποίο έχει ανοίξει απέξω.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71332.aspx</link><pubDate>Tue, 02 Oct 2012 14:08:54 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71332</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71332.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71332</wfw:commentRss><description>Ψάχνοντας αρκετά σε παραπλήσιες αναφορές από τρίτους, δεν βρήκα δυστυχώς κάποια "γιατρειά". Αυτό που λένε μερικοί είναι να σηκώνεις explicitly τις εφαρμογές (με όνομα), πράγμα που σημαίνει οτι θα πρέπει να ελέγχεις τον τύπο του αρχείου που επεξεργάζεσαι και να είσαι σίγουρος οτι η εφαρμογή υπάρχει στο μηχάνημα (πράγμα που φαντάζομαι δεν σε βολεύει και εξάλλου και πάλι δεν μου κανει "κλικ" οτι θα ξεπεράσει το πρόβλημα). Εχεις δοκιμάσει πάντως σε κάποια από τις δύο προσέγγίσεις; Εγώ θα δοκίμαζα (π.χ. με ένα συγκεκριμένο τύπο αρχείων) να φωνάξω μια συγκεκριμένη εφαρμογή και να δω τι γίνεται. Πάντως να το ξαναπώ για να μην παρεξηγηθώ - οι απαντήσεις μου είναι καθαρά hunches, δεν έχω πρακτική εμπειρία πάνω στο συγκεκριμένο θέμα. Εχω χρησιμοποιήσει και εγώ την Process για να φωνάξω εφαρμογές, αλλά όχι με αυτόν τον τρόπο.&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71331.aspx</link><pubDate>Tue, 02 Oct 2012 07:22:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71331</guid><dc:creator>Q-apprentice</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71331.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71331</wfw:commentRss><description>Οπότε μπορώ να κάνω κάτι για αυτό, ή να μην ασχοληθώ ;&lt;br&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71328.aspx</link><pubDate>Tue, 02 Oct 2012 00:50:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71328</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71328.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71328</wfw:commentRss><description>Αυτό κοιτούσα:&lt;div&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/e8zac0ca(VS.100).aspx"&gt;http://msdn.microsoft.com/en-us/library/e8zac0ca(VS.100).aspx&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;div&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;The other overloads of the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl11" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(VS.100).aspx" style="text-decoration:none;"&gt;Start&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;method are&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;span class="input" style="font-weight:700;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;members. You do not need to create an instance of the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl12" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" style="text-decoration:none;"&gt;Process&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;component before you call those overloads of the method. Instead, you can call&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl13" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(VS.100).aspx" style="text-decoration:none;"&gt;Start&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;for the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl14" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" style="text-decoration:none;"&gt;Process&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;class itself, and a new&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl15" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" style="text-decoration:none;"&gt;Process&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;component is created if the process was started. Or,&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;span class="input" style="font-weight:700;"&gt;&lt;/span&gt;&lt;span class="nu" style="display:inline;"&gt;a null reference (&lt;span class="input" style="font-weight:700;"&gt;Nothing&lt;/span&gt;&amp;nbsp;in Visual Basic)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;is returned if a process was reused. The process resource is automatically associated with the new&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl18" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process(VS.100).aspx" style="text-decoration:none;"&gt;Process&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;component that is returned by the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;a id="ctl00_MTCS_main_ctl94_ctl00_ctl19" href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(VS.100).aspx" style="text-decoration:none;"&gt;Start&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&amp;nbsp;method.&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:Verdana, Arial, Helvetica, sans-serif;font-size:11px;"&gt;&lt;br&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;Βασικά κουταμάρες σου έγραφα πριν για static/instance. Από ο,τι φαίνεται, όταν το process έχει εκκινηθεί ήδη ουσιαστικά παίρνεις null reference.&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71327.aspx</link><pubDate>Mon, 01 Oct 2012 22:45:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71327</guid><dc:creator>Q-apprentice</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71327.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71327</wfw:commentRss><description>Ο κώδικας που χρησιμοποιώ είναι ο ακόλουθος&lt;br&gt;&lt;br&gt;&lt;table style="background-color:#f2f2f2;border:solid 1px #e5e5e5;" border="0" cellpadding="0" cellspacing="0" width="100%"&gt;&lt;tr style="vertical-align:top;line-height:normal;"&gt;&lt;td style="width:40px;text-align:right;"&gt;&lt;pre style="font-family:courier new;font-size:11px;color:gray;margin:0px;padding:2px;border-right:solid 1px #e7e7e7;"&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
 &lt;/pre&gt;&lt;/td&gt;&lt;td&gt;&lt;pre style="margin:0px;padding:2px;padding-left:8px;"&gt;&lt;span style="color:Black;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Public&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/span&gt; GetFileFromDB(PKVar &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;, TableVar &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;, IDLocation &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;, PersonIDLocation &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;String&lt;/span&gt;)
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'select file from database...&lt;/span&gt;
        sqlComm &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"SELECT * FROM ["&lt;/span&gt; &amp;amp; TableVar &amp;amp; &lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"] WHERE FileID = @IDLocation AND PersonID = @PersonID"&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Command&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlCommand(sqlComm, Connection)

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;With&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Command&lt;/span&gt;.Parameters
            .&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Add&lt;/span&gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlParameter(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@IDLocation"&lt;/span&gt;, IDLocation))
            .&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Add&lt;/span&gt;(&lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; SqlParameter(&lt;span style="color:#666666;background-color:#e4e4e4;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;"@PersonID"&lt;/span&gt;, PersonIDLocation))
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;With&lt;/span&gt;

        DR &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Command&lt;/span&gt;.ExecuteReader()

        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;With&lt;/span&gt; DR.Read
            byteArray &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; DR(2) &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'το καθεαυτού αρχείο...&lt;/span&gt;
            fileExtension &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; DR(3).ToString &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'η προέκταση του αρχείου...&lt;/span&gt;
            fileName &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; DR(5).ToString &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'το όνομα του αρχείου&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;With&lt;/span&gt;
        DR.Close()

        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'-----------------------------------------------------------------------------------------------------------&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' Make a path for a temporary file&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'Dim myTempFilePath = System.IO.Path.Combine(System.IO.Path.GetTempPath(), Guid.NewGuid().ToString() + fileExtension)&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'getTempPath&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; myTempFilePath &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; System.IO.Path.Combine(getTempPath, fileName &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;+&lt;/span&gt; fileExtension)

        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' This will contain the edited file when the user close the program that have used to edit it&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; editedFileData &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Byte&lt;/span&gt;()
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Try&lt;/span&gt;
            System.IO.File.WriteAllBytes(myTempFilePath, byteArray)
            Using myProcess &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; System.Diagnostics.Process &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; Process.Start(myTempFilePath)
                &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' Wait for the user to close the program (editor) before continue&lt;/span&gt;
                &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;If&lt;/span&gt; &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Not&lt;/span&gt; myProcess &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Is&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Nothing&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Then&lt;/span&gt; myProcess.WaitForExit() &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Else&lt;/span&gt; 
            &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; Using
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Catch&lt;/span&gt; ex &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; Exception
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'&lt;/span&gt;
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Finally&lt;/span&gt;
            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' Take the edit file data&lt;/span&gt;
            editedFileData &lt;span style="color:Red;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;=&lt;/span&gt; System.IO.File.ReadAllBytes(myTempFilePath)

            &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' Clean up&lt;/span&gt;
            System.IO.File.Delete(myTempFilePath)
        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Try&lt;/span&gt;

        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;' Save back your edited data to the DB by using editedFileData&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'etc etc etc...&lt;/span&gt;
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'-----------------------------------------------------------------------------------------------------------&lt;/span&gt;


        &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Dim&lt;/span&gt; MStream &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;As&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;New&lt;/span&gt; MemoryStream(byteArray.Length)
        MStream.Read(byteArray, 0, byteArray.Length)
        &lt;span style="color:Green;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;'Process.Start(byteArray.ToString)&lt;/span&gt;


        ConnClose()
        MStream.Close()
        MStream.Dispose()

    &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;End&lt;/span&gt; &lt;span style="color:Blue;background-color:Transparent;font-family:Courier New;font-size:11px;font-weight:normal;"&gt;Sub&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;Όπως βλέπεις και εσύ ξεκινάω με process.start.... δεν ξέρω τιο είδες στο MSDN αλλά δώσε μου και κανένα link να υπάρχει. Ρίξε του μια ματιά και πές μου τη γνώμη σου...&lt;br&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71326.aspx</link><pubDate>Mon, 01 Oct 2012 22:25:38 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71326</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71326.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71326</wfw:commentRss><description>Μάλλον το dllhost.exe δεν είναι μοναδικό και το process δεν καταλαβαίνει.&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Χωρίς να έχω μεγάλη εμπειρία, διαβάζω οτι όταν το process είναι shared με άλλους, το WaitForExit() θα σου δώσει τα παπούτσια στο χέρι.&amp;nbsp;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Στο documentation στο msdn διαβάζω το εξής όμως:&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;If you use a&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&lt;span class="input" style="font-weight:700;"&gt;static&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&amp;nbsp;overload of the&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start.aspx" style="text-decoration:none;"&gt;Start&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&amp;nbsp;method to start a new system process, the method creates a new&amp;nbsp;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&lt;a href="http://msdn.microsoft.com/en-us/library/system.diagnostics.process.aspx" style="text-decoration:none;"&gt;Process&lt;/a&gt;&lt;/span&gt;&lt;span style="font-family:'Segoe UI', Verdana, Arial;font-size:11px;"&gt;&amp;nbsp;component and associates it with the process.&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Αρα λοιπόν μπορείς να ξεκινήσεις το process με το Process.Start() και όχι με το myInstance.Start() που ίσως έχεις κάνει εσύ (δημιουργείς ένα νέο instance και το κάνεις start;)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;&lt;div&gt;Χμ, μπαίνω σε νερά βαθύτερα από όσο έχω βουτήξει εδώ και δεν είμαι σίγουρος αν παω προς τη σωστή κατεύθυνση. Ομως δοκίμασε να το ξεκινάς με τη static method αν δεν το κάνεις ήδη, μπας και δουμε φως :)&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71325.aspx</link><pubDate>Mon, 01 Oct 2012 21:47:27 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71325</guid><dc:creator>Q-apprentice</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71325.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71325</wfw:commentRss><description>To process το οποίο τρέχει όταν ανοίγει ο Windows Photo Viewer είναι το dllhost.exe ...όταν λές για reuse ...τι ακριβώς μπορώ να κάνω ; δεν κατάλαβα ακριβώς τι πρέπει να γίνει. επίσης δουλεύω σε VB.net δεν ξέρω αν το είχα διευκρινίσει πριν. &lt;br&gt;Ευχαριστώ εκ των προτέρων...&lt;br&gt;</description></item><item><title>Απ: Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71324.aspx</link><pubDate>Mon, 01 Oct 2012 20:35:11 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71324</guid><dc:creator>cap</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71324.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71324</wfw:commentRss><description>Μήπως το process τρέχει ήδη και το κάνεις απλά reuse; Κοίτα μήπως ο windows photo viewer ειναι "ζωντανός" ως process όταν καλείς την Start().&amp;nbsp;&lt;div&gt;(Long shot, αλλά ποτέ δεν ξέρεις).&lt;/div&gt;&lt;div&gt;&lt;br&gt;&lt;/div&gt;</description></item><item><title>Process.WaitForExit() null reference exception</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/71322.aspx</link><pubDate>Mon, 01 Oct 2012 20:09:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:71322</guid><dc:creator>Q-apprentice</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/71322.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=12&amp;PostID=71322</wfw:commentRss><description>Καλημέρα σε όλους. Αντιμετωπίζω το εξής θέμα σε μια εφαρμογή που φτιαχνω. Ξεκινήσω να ανοίξω μέσω κώδικα ένα αρχείο (πχ μια φωτογραφία) μέσω της κλήσης του process.start και χτυπάει null reference exception γιατί το process δεν έχει value. Αυτό γιατί το default app (windows photo viewer) δεν δίνει τιμή. Αν αλλάξω το default app δουλεύει κανονικά. Ο σκοπός είναι αν μπορώ να το κάνω να δουλέψει χωρίς να χτυπάει , χωρίς να αλλάξω το default app. Το ίδιο έχει παρατηρηθεί και σε αρχεία τύπου mp3 ή video τα οποία έχουν σαν default app προγράμματα εκτός του windows media player . (πχ vlc ή Winamp) το δοκίμασα με κλήση του shell() αλλά κάνει το ίδιο. Έχει αντιμετωπίσει κανείς κάτι αντίστοιχο ;</description></item></channel></rss>