Salve a tutti!
Ho qualche problema di conversione; non riesco ad ottenere perfettamente dei caratteri che passo ad una funzione della api di windows. Praticamente ho definito un altra funzione in cui il suo funzionamento è il seguente:
void macchinetta(char *str)
{
int i=0;
while( i <= ( strlen(str)-1 ) )
{
keybd_event( *(str+i)-32, 0, 0, 0 );
keybd_event( *(str+i)-32, 0, KEYEVENTF_KEYUP, 0 );
Sleep(100);
i++;
}
}
Quindi noterete che la mia funzione deve ricevere una stringa e carattere per carattere deve simulare un input tramite la funzione keybd_event.
Il problema, e che il primo argomento di keybd_event è di tipo BYTE. Di conseguenza la stringa che io passo è fatta di char. Avendo monitorato l'output se io passo a questa funzione la stringa "ciao" avrò correttamente il suo output. Le cose si complicano quando io per esempio inserisco spazi o scrivo "Ciao".
Nel Prog principale ho la seguente sintassi:
#include <stdio.h>
#include <windows.h>
#include <string.h>
int WINAPI WinMain (HINSTANCE hInst, HINSTANCE hPrev, LPSTR lpStr, int cmdShow) {
system("start notepad");
sleep(100);
char *testo="ciao";
macchinetta(testo);
}
Allora, il programma funziona completamente, nessun errore. Il problema sono i caratteri. Ripeto, se scrivo solo "ciao" le cose vanno bene. Se comincio a cambiare le cose non va più bene.
QUALCUNO può aiutarmi???