Code & Snippet
Esempi di codice e Snippet
Ci sono vari metodi di farlo ad esempio usare SQL-DMO (SQL Server 2000) o meglio ancora SMO (SQL Server 2005). Ma questi due metodi prevedono di installare sui client le relative dll.
Un altro modo invece è quello di usare MC-SQLR ovvero il SQL Server Resolution Protocol e quindi di inviare un pacchetto
CLNT_BCAST_EX e analizzare i pacchetti di risposta di risposta server SVR_RESP.
Qui trovate un esempio Locate SQL Server instances on the local network, l'autore aveva analizzato il traffico di rete per capire come funzionava il protocollo ora con la pubblicazione delle specifiche dei protocolli Microsoft non è più necessario: MC-SQLR]:...
Una delle impostazioni che possibile fare su un'istanza di SQL Server è quella del percorso di default in cui memorizzare file dati e logs di un nuovo database. Ho fatto diverse ricerca, ma non trovato un modo semplice per ricavare tramite T-SQL tali informazioni.
A quanto sembra se si modificano tali percorsi questi vengono memorizzati nelle chiavi di registry:
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultData
HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer\DefaultLog
In caso contrario i path è quello specificato durante l'installazione per i File di dati quindi si può pensare di ricavarli dai path dei file mdf e ldf del database master.
Di seguito uno...
A volte mi capita di dover mettere mano a codice .NET 1.1 su Visual Studio 2003 e in questa versione la griglia nativa il DataGrid non era ricco di funzionalità. L'ultima richiesta che mi è arrivata è come realizzare l'autosizing delle righe per vedere completamente il contenuto delle righe le cui colonne vano su più righe. Manualment la cosa è possibiole quindi la funzionalità in effetti c'è ma non è esposta e quindi occorre utilizzare la reflection come indicato in questo link http://www.syncfusion.com/FAQ/winforms/FAQ_c44c.aspx
Di seguito la versione che ho realizzato:
Private Sub AutoSizeRows(ByVal columnStyle As System.Windows.Forms.DataGridColumnStyle)
Dim dataGrid As System.Windows.Forms.DataGrid = columnStyle.DataGridTableStyle.DataGrid
...
Lo script in se non è nulla di che nel senso basta utilizzare WMI per leggere la proprietà SerialNumeber della classe Win32_BIOS, inrealtà lo scopo di questo script è quello di creare una template per simili esigenze ovvero:
Gestire script utilizzabili da riga di comando con possibilità di richiedere dati all'utente
Utilizzare WMI
Connettersi anche a computer remoti
Visualizzare in forma tabellare i risultati
Tutte queste esigenze di fatto sono semplicemente realizzabili se si utilizza l'oggetto Microsoft.CmdLib disponibile in Windows XP e Windows 2003 Server,...
In questo articolo ho raccolto alcune riflessioni su come inviare mail tramite .NET Framework 1.1 e 2.0 utilizzando Exchange 2003 e Exchange 2007 analizzando le differenze relative alla gestione dell'autenticazione in .NET 1.1 e 2.0 e le modifiche apportate in Exchange 2007 rispetto a Exchange 2003.
A volte in uno script amministrativo può essere necessario dover comprimere un file e in tal caso una possibilità è quella di usare le cartelle comprese presenti a partire da XP.
[Update] Si tenga conto che Le cartelle compresse di XP hanno il limite di 4 GB
Option Explicit
Dim strScriptFullName, strCurrentPath, strZipFilePath, strAddFilePath
strScriptFullName = wscript.scriptfullname
strCurrentPath = Left(strscriptfullname, InStrRev(strScriptFullName, "\"))
strZipFilePath = strCurrentPath & "test.zip"
strAddFilePath = strCurrentPath & "test.txt"
'Crea un file zip vuoto
If CreateEmptyZip(strZipFilePath) Then
'Aggiunge un file all'archivio zip
Call AddFile2Zip(strZipFilePath, strAddFilePath)
End If
Function CreateEmptyZip(strZipFilePath)
On Error Resume Next
'Apertura file in scrittura
Dim objFso, objFile
Const ForWriting = 2
Set objFso = CreateObject("Scripting.FileSystemObject")
...
Mi sono cimentato nella realizzazione di una Sezione per MWPSK che mi permettesse di realizzare la funzionalità "Dove siamo"/"Where we are" presente nella maggior parte siti in modo più dinamico tramite una mappa di Virtual Earth.
La scelta è caduta su una Section perchè rispetto agli Easy Control permettono di avere dei dati di configurazione che possono essere poi salvati anche se l'implementazione di una Section è maggiormente complessa rispetto a quella di un Easy Control. In questo modo però è posiibile dare all'utente la possibilità di configurare la mappa consentendo la possibiltà di inserire latitudine e longitudine del centro mappa,...
Leggendo questo post di Corrado mi è venuto in mente un modo per formattare i valori booleani partendo dal fatto che CInt(True ) è -1 e CInt(False) è 0:
String.Format("Il valore è {0:Falso;Vero}.",CInt(booleanValue))
Per fare il preview di uno Screensaver in un oggetto container è possibile utilizzare il parametro /p dello stesso. Di seguito il codice per visualizzare uno Screensaver in una PictureBox:
Private Const ScreenSaverName As String = "ssbezier.scr"Private screenSaverProcess As System.Diagnostics.Process
Dim startInfo As New System.Diagnostics.ProcessStartInfostartInfo.Arguments = "/p " & Me.PictureBox1.Handle.ToString()startInfo.FileName = ScreenSaverNamestartInfo.UseShellExecute = FalsescreenSaverProcess = System.Diagnostics.Process.Start(startInfo)
Per arrestare la visualizzazione dello Screensaver basterà terminare il processo:screenSaverProcess.Kill()screenSaverProcess.Close()screenSaverProcess.Dispose()
Per ricavare la porta di una stampante in VS 2003 è possibile utilizzare WMI e in particolare la classe Win32_Printer :
Public Shared Function GetPrinterPortName(ByVal printerName As String) As String Dim portName As String = String.Empty Dim path As String = String.Format("Win32_Printer.DeviceID='{0}'", printerName) Dim p As New System.Management.ManagementObject(path)
p.Get() portName = p("PortName").ToString() p.Dispose() : p = Nothing
Return portNameEnd Function
Per utilizzare il codice occcore aggiungere un reference a System.Management.
In VS 2005 non ho trovato funzionalità native per ricavare la porta della stampante anche se inizialmente era previsto un My.Computer.Printers come si può leggere nel seguente articolo http://msdn.microsoft.com/msdnmag/issues/04/05/VisualBasic2005/ ma nella versione definitiva pare non sia poi stato implementato chissà se conteneva...
Full Code & Snippet Archive