faretesto > comp.lang.* > comp.lang.visual-basic

Daniele Pinna (05.11.2017, 15:20)
Salve a tutti :-)

A volte in un programma mi serve sapere se sono in progettazione o meno...

Con VB6 avevo creato una SUB che faceva
Debug.Print (1/0)

Se Err.Number era = 11 aveva generato l'errore quindi ero un
progettazione (Debug.Print non funziona se compilato).

Ora però in VB.NET non mi crea l'errore... probabilmente perché riesce a
calcolare il risultato di quell'operazione ( nella finestra di
controllo immediati mi da infatti come risultato 1.#INF )

C'è qualche altro modo per determinare se sono in progettazione?

Ringrazio Anticipatamente per le Risposte :-)
Daniele Pinna (05.11.2017, 18:06)
Il 05/11/2017 14:20, Daniele Pinna ha scritto:
[..]
> controllo immediati mi da infatti come risultato  1.#INF )
> C'è qualche altro modo per determinare se sono in progettazione?
> Ringrazio Anticipatamente per le Risposte :-)


Ho trovato una soluzione... anche se non è perfetta.

On Error Resume Next

Dim number1 As Integer = 3000
Dim number2 As Integer = 0

Debug.Print(CInt(number1 / number2))

Result = (Err.Number = 6)

Se Result = True sono in progettazione, altrimenti no.

L'unico problema è se avvio l'eseguibile presente nella cartella Debug,
li risulta ancora in progettazione... poco male
Luca D (05.11.2017, 18:12)
On Sunday, November 5, 2017 at 2:20:59 PM UTC+1, Daniele Pinna wrote:
> Salve a tutti :-)
> A volte in un programma mi serve sapere se sono in progettazione o meno...


If Debugger.IsAttached Then
'...
End If
Daniele Pinna (05.11.2017, 18:43)
Il 05/11/2017 17:12, Luca D ha scritto:
> On Sunday, November 5, 2017 at 2:20:59 PM UTC+1, Daniele Pinna wrote:
>> Salve a tutti :-)
>> A volte in un programma mi serve sapere se sono in progettazione o meno...

> If Debugger.IsAttached Then
> '...
> End If


Perfetto!!!
Funziona benissimo, anche con l'eseguibile nella cartella Debug!

Grazie :-D
fifisio fifisio (07.12.2017, 12:13)
Il giorno domenica 5 novembre 2017 14:20:59 UTC+1, Daniele Pinna ha scritto:
[..]
>
> -----
> *** Powered by Linux KUbuntu 16.04.1 LTS (Xenial Xerus) ***


in un modulo bas uso questo:

Imports System
Imports System.Diagnostics
Imports System.Runtime.InteropServices
Module _bas_pro_glo_debug

<DllImport("kernel32.dll", CharSet:=CharSet.Auto, ExactSpelling:=True)> _
Private Function IsDebuggerPresent() As Boolean
End Function

Public Function IsInVS() As Boolean

Return IsDebuggerPresent()

End Function

End Module
Daniele Pinna (10.12.2017, 11:41)
Il 07/12/2017 11:13, fifisio fifisio ha scritto:
> Il giorno domenica 5 novembre 2017 14:20:59 UTC+1, Daniele Pinna ha scritto:
>> Salve a tutti :-)


[..]
> Return IsDebuggerPresent()
> End Function
> End Module


Grazie :-)
Discussioni simili