<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Diego La Monica &#187; Networking</title>
	<atom:link href="http://diegolamonica.info/categoria/knowledge-base/visual-basic/networking/feed/" rel="self" type="application/rss+xml" />
	<link>http://diegolamonica.info</link>
	<description>Software, standards, accessibilità, usabilità &#38; Web 2.0</description>
	<lastBuildDate>Wed, 28 Mar 2012 08:00:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Come determinare se una cartella è condivisa</title>
		<link>http://diegolamonica.info/come-determinare-se-una-cartella-e-condivisa/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=come-determinare-se-una-cartella-e-condivisa</link>
		<comments>http://diegolamonica.info/come-determinare-se-una-cartella-e-condivisa/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:17:42 +0000</pubDate>
		<dc:creator>Diego La Monica</dc:creator>
				<category><![CDATA[Knowledge Base]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Client Server]]></category>
		<category><![CDATA[Condivisioni]]></category>
		<category><![CDATA[Microsoft Visual Basic]]></category>
		<category><![CDATA[Sviluppo lato Client]]></category>

		<guid isPermaLink="false">http://diegolamonica.info/?page_id=76</guid>
		<description><![CDATA[Talvolta quando si creano degli applicativi che devono lavorare in background senza l&#8217;intervento dell&#8217;utente, è bene prevedere qualsiasi anomalia senza però segnalare con un alert (magari su un server) la situazione anomala e comunque senza mandare in crash l&#8217;intera applicazione per una condizione non verificatasi. Tempo addietro mi capitò sviluppando una procedura batch che un [...]]]></description>
			<content:encoded><![CDATA[<p>Talvolta quando si creano degli applicativi che devono lavorare in background senza l&#8217;intervento dell&#8217;utente, è bene prevedere qualsiasi anomalia senza però segnalare con un alert (magari su un server) la situazione anomala e comunque senza mandare in crash l&#8217;intera applicazione per una condizione non verificatasi.</p>
<p>Tempo addietro mi capitò sviluppando una procedura batch che un sistema generava dei files e che questi dovevano essere trasferiti in una cartella condivisa sul server per cui mi serviva un metodo per capire se effettivamente tale cartella era condivisa o meno.<span id="more-76"></span></p>
<p>Il codice che segue mi ha aiutato nella risoluzione del problema:</p>
<pre>Type SHFILEINFO
 hIcon As Long
 iIcon As Long
 dwAttributes As Long
 szDisplayName As String * MAX_PATH
 szTypeName As String * 80
End Type

Public Const SHGFI_ATTRIBUTES = &amp;H800
Public Const SFGAO_SHARE = &amp;H20000
Public Declare Function SHGetFileInfo Lib  "shell32.<dfn title="Dynamic Linked Library">dll</dfn>" Alias "SHGetFileInfoA" _
 (ByVal pszPath As String, ByVal swFileAttributes As Long, _
 psfi As SHFILEINFO, ByVal cbFileInfo As Long, ByVal uFlags As Long) As Long

Public Function IsSharedThisFolder(ByVal Path As String) As Boolean
 Dim sfi As SHFILEINFO

 SHGetFileInfo Path, 0, sfi, Len(sfi), SHGFI_ATTRIBUTES
 IsSharedThisFolder=(sfi.dwAttributes And SFGAO_SHARE)
End Function</pre>
]]></content:encoded>
			<wfw:commentRss>http://diegolamonica.info/come-determinare-se-una-cartella-e-condivisa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Come eseguire il download di un file da Internet</title>
		<link>http://diegolamonica.info/71-2/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=71-2</link>
		<comments>http://diegolamonica.info/71-2/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 09:13:29 +0000</pubDate>
		<dc:creator>Diego La Monica</dc:creator>
				<category><![CDATA[Knowledge Base]]></category>
		<category><![CDATA[Networking]]></category>
		<category><![CDATA[Visual Basic]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Microsoft Visual Basic]]></category>
		<category><![CDATA[Sviluppo lato Client]]></category>

		<guid isPermaLink="false">http://diegolamonica.info/?page_id=71</guid>
		<description><![CDATA[Diverso tempo fa mi trovai a dover affrontare il problema dell&#8217;aggiornamento di un applicazione via internet costituita da una serie di files e visto che non volevo che i miei clienti si scomodassero a scaricare corposi messaggi di posta elettronica (causandogli magari la saturazione della casella) e comunque volevo evitare che il personale potesse fare [...]]]></description>
			<content:encoded><![CDATA[<p>Diverso tempo fa mi trovai a dover affrontare il problema dell&#8217;aggiornamento di un applicazione via internet costituita da una serie di files e visto che non volevo che i miei clienti si scomodassero a scaricare corposi messaggi di posta elettronica (causandogli magari la saturazione della casella) e comunque volevo evitare che il personale potesse fare dei &#8220;copia &amp; incolla&#8221; sbagliati e fondamentalmente non volevo ritrovarmi ore ed ore al telefono per dire&#8230; vai su&#8230; copia il file&#8230; incollalo in&#8230; sposta questo&#8230; insomma ci siamo capiti! <img src="http://old.diegolamonica.info/images/smiles/smile.gif" alt=":)" /></p>
<p><span id="more-71"></span>Per ovviare a quanto previsto ho cercato un po&#8217; in giro su internet una serie di possibili soluzioni e trovandone una l&#8217;ho poi adattata alle mie esigenze.</p>
<p>Di seguito c&#8217;è un estratto di codice sviluppato con Microsoft Visual Basic 6.0 adattato genericamente a scaricare l&#8217;immagine <a title="Apri l'immagine di esempio" href="http://www.diegolamonica.info/images/diegolamonica.jpg">http://www.diegolamonica.info/images/diegolamonica.jpg</a> da questo sito e collocarla nella root del disco rigido.</p>
<pre>Private Declare Function URLDownloadToFile Lib "urlmon" Alias _
 "URLDownloadToFileA" (ByVal pCaller As Long, _
 ByVal szURL As String, _
 ByVal szFileName As String, _
 ByVal dwReserved As Long, _
 ByVal lpfnCB As Long) As Long
 Public Function DownloadFile(URL As String, _
 LocalFilename As String) As Boolean

 Dim lngRetVal As Long

 lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)

 If lngRetVal = 0 Then DownloadFile = True
 End Function

 Private Sub Form_Load()

 ' Sostituire il primo parametro con il file che si vuole scaricare
 ' ed il secondo argomento con il nome del file locale nel quale vuoi salvarlo.

 ret = DownloadFile("http://diegolamonica.info/images/diegolamonica.jpg", "c:\logo_diego.jpg")
 End Sub</pre>
]]></content:encoded>
			<wfw:commentRss>http://diegolamonica.info/71-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

