VB.NET

Piloter OpenOffice Calc en VB.net

Le code suivant démarre une instance de Calc et écrit dans la cellule A1 de la première feuille :

Dim servManager = CreateObject("com.sun.star.ServiceManager")
Dim desktop = servManager.createInstance("com.sun.star.frame.Desktop")
Dim arguments As Object() = {}
Dim document = desktop.loadComponentFromURL("private:factory/scalc", "_blank", 0, arguments)
Dim firstSheet = document.Sheets.getByIndex(0)
firstSheet.getCellbyPosition(0, 0).setString("Hello world!")

Etiquettes:

Get the name of the active AutoCAD document with .NET

Here's a little sample code to detect if AutoCAD is running. If it does, it displays the full path of the active drawing.

The code use COM (out of process).

VB.NET

Imports System.Runtime.InteropServices

Module Module1

    Sub Main()
        Try
            Dim acad = Marshal.GetActiveObject("AutoCAD.Application")
            Dim activeDocument = acad.ActiveDocument
            MsgBox("Le chemin complet du document actif est : " & activeDocument.FullName)
        Catch ex As COMException
            Const MK_E_UNAVAILABLE As Integer = &H800401E3
            If ex.ErrorCode = MK_E_UNAVAILABLE Then
                MsgBox("AutoCAD n'est pas en cours d'exécution.")
            Else
                Throw
            End If
        End Try
    End Sub

End Module

Récupérer le nom du dessin AutoCAD actif en .NET

Voici un petit exemple de code qui permet de détecter si AutoCAD est en cours d'exécution. Si c'est le cas, il affiche le chemin complet du dessin ouvert.

Le code utilise COM (out of process).

VB.NET

Imports System.Runtime.InteropServices

Module Module1

    Sub Main()
        Try
            Dim acad = Marshal.GetActiveObject("AutoCAD.Application")
            Dim activeDocument = acad.ActiveDocument
            MsgBox("Le chemin complet du document actif est : " & activeDocument.FullName)
        Catch ex As COMException
            Const MK_E_UNAVAILABLE As Integer = &H800401E3
            If ex.ErrorCode = MK_E_UNAVAILABLE Then
                MsgBox("AutoCAD n'est pas en cours d'exécution.")
            Else
                Throw
            End If
        End Try
    End Sub

End Module

Exécuter du code .NET sous un autre nom d'utilisateur

.NET dispose d'une fonctionnalité qui permet d'exécuter du code sous un autre nom d'utilisateur que celui qui a lancé le programme à l'origine (une sorte de RUNAS). C'est un peu compliqué à utiliser car il faut notamment P/Invoker des fonctions de l'API Windows.

Voici un portage du code C# originellement publié par Michiel van Otegem en VB.NET. Cette classe permet de simplifier le basculement de contexte.

Etiquettes:

Retrouver le nom commercial de la version de Windows avec .NET

Avec .NET, on peut obtenir la version de Windows avec le code suivant :

Dim osVersion As String = Environment.OSVersion.VersionString

Etiquettes:

Charger un document Xml encodé en ANSI

J'ai pas trouvé mieux :

Dim doc As XmlDocument = New XmlDocument()
Dim sr As StreamReader = New StreamReader(path, ASCIIEncoding.Default)
Dim xr As XmlReader = XmlReader.Create(sr)
doc.Load(xr)
' Traitement
xr.Close()
sr.Close()

Etiquettes:

Subscribe to RSS - VB.NET