mercoledì, ottobre 10, 2007

Advanced breackpoint in visual studio net

Una nuova funzionalità poco pubblicizzata e quindi poco conosciuta e sfruttata sono i breakpoint condizionali.

Quando capita di dover debuggare solo in certe condizioni, ad esempio dentro a un ciclo, o solo quando si verifica una particolare condizione, è possibile impostare un breackpoint condizionale, che interrompe l'esecuzione del codice solo all'avverarsi di un particolare condizione.



Inserire il breackpoint alla riga desiderata, right-click sul tondo rosso che compare e selezionare dal menù a tendina "condition" apparirà questa finestra.

é possibile inserire una condizione boleana, ad esempio, il contatore del ciclo sia a 100, oppure digitando una espressione, e selezionando has changed il breackpoint scatterà solo se il valore è cambiato.
Altre opzioni dei breackpoint:
Hit Count: il breackpoint si attiva solo all'ennesimo passaggio
Filter: il breackpoint si attiva solo per particolari condizioni, es: nome della macchina, del thread, id del thread,ecc
When hit: quando l'esecuzione passa dal breackpoint è possibile eseguire un logging dell'operazione o eseguire una macro di visual studio, decidendo se lasciar proseguire o bloccare l'esecuzione sull'istruzione corrente

martedì, ottobre 02, 2007

Eseguire la propria applicazione da un link

Creando particolari chiavi di registro è possibile da un link posizione su una pagina web eseguire la propria applicazione passando parametri.
Esattamente come fa Emule quando si clicca su un link ed2k://filedascaricare.
Create un file di registro con questo contenuto (personalizzatelo secondo le vostre esigenze) e importatelo nel vostro registro di sistema

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE]
@="URL: ESTENSIONE Protocol"
"URL Protocol"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\DefaultIcon]
@="c:\\programmi\\percorso\\programma.exe"
"OldIcon"="c:\\programmi\\percorso\\programma.exe,1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell]
@="open"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell\open]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\ESTENSIONE\shell\open\command]
@="\"c:\\programmi\\percorso\\programma.exe\" \"%1\""
"OldDefault"="\"c:\\programmi\\percorso\\programma.exe\" \"%1\""


Dove "ESTENSIONE" è il protocollo da associare alla propria applicazione

A questo punto per verificare che l'operazione sia andata a buon fine aprite internet explorer e come indirizzo impostate "estensione://"
Mentre nei vostri link HTML saranno molto semplicemente Link al software

Aprire file associati nell'istanza corrente

Quando la propria applicazione window form è registrata per l'apertura di una tipologia di file è utile aprire i file all'interno di una stessa istanza, anche se il programma è già in esecuzione così da integrarsi alla perfezione con windows.
L'associazione è valida sia per estensioni sia per link es: miolink://

Al nostro scopo, è necessario che l'applicazione sia definita come single istance; in seguito cliccate sul bottone "View Application Events"


Verrà aggiunto al progetto il file ApplicationEvents.vb, selezionare dal menu degli eventi la voce StartupNextInstance in questo modo:


Il parametro Sender sarà la nuova istanza e il parametro e conterrà alcuni dettagli tra cui la command line passata!

A questo punto abbiamo tutte le informazioni necessarie per aprire il file richiesto nell'istanza corrente.


#