
Devo proprio dirlo, VBScript è un linguaggio di scripting veramente potente, offre moltissime classe che possono manipolare le impostazioni avanzate del sistema operativo. Oggi ho creato un piccolo VBScript che attiva e disattiva il servizio di Hamachi e la scheda di rete virtuale che crea. Il solito prerequisito è che il servizio “Hamachi2Svc” e la scheda di rete “Hamachi Network Interface” siano disattivi.
Lo script è scaricabile a questo indirizzo.
Nessun Commento »

PunkBuster è un sistema anti-cheating che protegge i giocatori in modalità multiplayer da possibili utenti disonesti che altrimenti userebbero dei bot, aimbot, ecc. Il brutto di questo sistema è che i servizi PnkBstrA e B che permettono il corretto funzionamento del programma restano sempre attivi, e quindi ci troveremmo con due processi inutili nel caso non volessimo giocare a niente. Secondo voi io potevo sprecare ben 4MB di RAM per tale motivo? Ovviamente no.
Proprio per questo motivo ho realizzato 2 piccoli script in VBScript. Il primo avvia i due servizi di PunkBuster, avvia il gioco ( nel mio caso Call of Duty: Modern Warfare ) e quando la sessione di gioco è terminata disattiva i servizi. I prerequisiti per questo plugin sono due. Per prima cosa i servizi PnkBstrA e PnkBstrB devono essere impostati su avvio manuale. Per fare questo andare sui servizi di Windows e cambiate l’avvio dei due servizi da automatico a manuale. Poi dovete editare lo script, modificando il path ( inserendo quello della cartella dove avete installato il gioco ) e modificare il nome dell’exe di avvio del gioco.
Il secondo script ( quello che uso io ) è molto più semplice e attiva o disattiva i due servizi con un semplice click. Anche questo necessita che i servizi siano impostati su avvio manuale.
Gli script sono liberamente consultabili e modificabili. Forse non sono perfetti, ma funzionano. Inoltre questa è la prima volta che mi cimento con VBScript. =)
Ecco gli indirizzi per il download.
VBScript-punkbuster-1.1 (13/02/2010)
VBScript-punkbuster-1.0 (15/02/2010)
UPDATE 2010/02/15
Ho modificato leggermente gli script. Ho notato che il servizio PunkBusterB dopo essere spento ritorna in modalità automatica, quindo questo nuovo script lo utilizza e poi lo rimette in modalità manuale. Inoltre ho aggiunto 2 popup, in modo che l’utente sappia cosa sta realmente facendo lo script. Ecco qua la nuova versione.
Nessun Commento »
Evidentemente non ho niente di meglio da fare nel giorno di natale.
Vediamo un po’ a cosa serve questo algoritmo.
Se avete un po’ di basi di programmazione sapreste che scambiare il valore contenuto in due variabili è un operazione comunissima. Il modo più semplice per effettuare questa operazione è di usare una variabile d’appoggio per contenere uno dei due valori e poi fare lo scambio.
tmp := A
A := B
B := tmp
Direi quasi banale, no? Senonché questo modo prevede la creazione di una variabile temporanea. Esiste tuttavia un algoritmo che fa lo stesso lavoro e non richiede nessuna variabile temporanea. Sto parlando dello Xor Swap, il nome deriva appunto da scambio con OR esclusive ( operazione bit a bit XOR ). Vediamo l’algoritmo:
X := X XOR Y
Y := X XOR Y
X := X XOR Y
Il bello di questo algoritmo è l’efficienza e la facilità nel ricordarlo. Vediamone un’implementazione in Java ed in C.
public static void main(String[] args)
{
int x = 10;
int y = 20;
System.out.println("x = " + x + " y = " + y);
x = x^y;
y = x^y;
x = x^y;
System.out.println("x = " + x + " y = " + y);
} //[main]
void xorSwap (int *x, int *y)
{
*x ^= *y;
*y ^= *x;
*x ^= *y;
}
Nessun Commento »
Le operazioni che coinvolgono i file sul C ogni tanto possono dare qualche problemuccio, ho quindi realizzato questa interfaccia, con lo scopo di facilitare la gestione dei file. Ovviamente se siete dei guru in C questa interfaccia non vi servirà praticamente a niente
Per poterla utilizzare basterà copiare il file .c e .h nella cartella in cui si troveranno i file che utilizzeranno le funzioni messe a disposizione dall’interfaccia. Basterà poi includere il file .h nel vostro progetto e potrete usare tutte le funzioni qui elencate:
int FI_INIT ( FI_FILE *file, char *fname, long size );
int FI_OPEN ( FI_FILE *file );
int FI_CLOSE ( FI_FILE *file );
int FI_WRITE ( FI_FILE *file , void *userData );
int FI_READ ( FI_FILE *file , void *userData );
int FI_SEEK ( FI_FILE *file , long rec, int pos );
int FI_EOF ( FI_FILE *file );
Nel file FInt.h ( FInt = File Interface =D ) troverete la spiegazione ed un esempio di cosa fa ciascuna funzione.
Ultima cosa, io l’interfaccia la ho realizzata utilizzando il Dev-c++, dovrebbe andare anche con gcc e altri compilatori.
FInt.rar
Nessun Commento »
Questo pomeriggio mi è arrivata una notifica per il rilascio della nuova versione di Notepad++ la 5.1.4, così mi è venuto in mente di parlare un po’ di questa applicazione in un articolo dedicato.
Leggi il resto di questo articolo »
Nessun Commento »