Posts Tagged “Programmazione”

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.

Comments 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.

Comments 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;
 }

Comments 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 :D

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.

rar_icon FInt.rar

Comments 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 »

Comments Nessun Commento »