<?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; Client Server</title>
	<atom:link href="http://diegolamonica.info/etichetta/client-server/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>
	</channel>
</rss>

