Publié par Maxence le jeu, 13/10/2022 - 20:25
A l'occasion d'une formation iLogic que j'ai donné récemment, un stagiaire m'a demandé comment on pouvait récupérer la valeur la plus grande d'une liste de valeurs provenant d'un paramètre multivaleur.
.NET propose une fonction Max()
, mais elle ne prend que 2 arguments. Donc dans ce cas, j'utilise la méthode Max()
de Linq. J'ai essayé le code suivant :
Publié par Maxence le mer, 13/04/2022 - 15:15
Le lien entre une règle et un événement est établi via un jeu de iPropriété caché nommé _iLogicEventsRules
.
Publié par Maxence le lun, 16/03/2020 - 10:36
Microsoft vient d'annoncer que Visual Basic sera bien supporté dans .NET 5.0, ce qui semble être une bonne chose pour les développeurs utilisant ce langage, mais en même temps ils annoncent que le langage n'évoluera plus.
Visual Basic continuera donc à fonctionner sur Windows et sur les autres plateformes via .NET Core mais il ne bénéficiera plus des futures nouvelles fonctionnalités qui nécessiteront une modification du langage.
Publié par Maxence le mer, 06/08/2014 - 11:40
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!")
Publié par Maxence le ven, 03/08/2012 - 18:49
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
Publié par Maxence le jeu, 02/08/2012 - 16:19
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
Publié par Maxence le jeu, 29/07/2010 - 12:31
.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.
Publié par Maxence le jeu, 15/07/2010 - 10:42
Avec .NET, on peut obtenir la version de Windows avec le code suivant :
Dim osVersion As String = Environment.OSVersion.VersionString
Publié par Maxence le mer, 21/04/2010 - 19:08
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()