PDA

Visualizza la versione completa : [C++] creare nuova chiave di registro... (ERA: Aiuto)


maurizio.r57
18-08-2003, 17:56
Salve a tutti!!!
Avrei un paio di domandine riferite al C++ e sarei grato se qualcuno mi rispondesse...

Vorrei creare un file .exe in C++ che sia in grado di creare una nuova chiave nel registro di Windows, quali sono i comandi???

Vorrei sapere la sintassi di un comando in C++ che mi permetta di aprire un file in una determinata directory.

Grazie.

Johnny_Depp
19-08-2003, 14:17
2)

#include <iostream>
using namespace std;

int main()
{
string path="START ", search;
cout << "Inserisci il patch del file da aprire: ";
cin >> search;
path = path + search;
system(path.c_str());
system("PAUSE");
return 0;
}
per la prima domanda, ora ci penso...
giusto il tempo di ricordarmi come posso risolvere :fagiano:

maurizio.r57
19-08-2003, 19:11
Ti ringrazio per il codice che mi hai scritto, vorrei però che mi spiegassi con qualche commento il funzionamento del programma perchè così...

Forse con un esempio concreto capirei meglio..
scrivimi un programma che mi permetta di aprire un file "IMMAGINE.jpg"
che si trova nella directory C:\Programmi\
per aprire questo file sotto DOS basterebbe scrivere
C:\Programmi\immagine.jpg
... e in C++ ..?
non dimentichiamo qualche commento. GRAZIE IN ANTICIPO!!!

Johnny_Depp
19-08-2003, 22:55
vorrei però che mi spiegassi con qualche commento il funzionamento del programma
non pensavo ce ne fosse bisogno... CMQ OK

#include <iostream>
using namespace std;

int main()
{
// dichiaro due variabili di tipo string
string path="START ", search;
// chiedo all'utente di inserire il percorso (DOS) del file da aprire
cout << "Inserisci il patch del file da aprire: ";
// assegno alla variabile "search" il percorso (patch) del file da aprire
cin >> search;
// concateno le due stringhe in modo da comporre il comando DOS che mi permette di aprire un file
path = path + search;
// la funzione system() del C/C++ mi permette di chiamare tutti i comandi DOS, quindi di comunicare con il sistema opertativo
// nel caso specifico, passo a system() la stringa "path" che (concatenata con "search") conterrà un codice simile a "START C:\directory\sottodirectory\nomefile.xxx"
system(path.c_str());
// non c'è bisogno di commentarlo...
return 0;
}

scrivimi
POTRESTI SCRIVERMI un programma che mi permetta di aprire un file "IMMAGINE.jpg" che si trova nella directory C:\Programmi

#include <iostream>
using namespace std;

int main()
{
// utilizzi il comando dos all'interno della funzione system. N.B. fai attenzione ai doppi backslash e ai nomi composti
system("START C:\\Programmi\\Sotto\" \"Directory\\IMMAGINE.jpg");
return 0;
}

maurizio.r57
20-08-2003, 01:00
Il programma è collaudato e funziona perfettamente!!!!
GRAZIEEE!!!!!!!! :) :)

.. già che ci siamo...
Per effettuare le operazioni di "taglia-incolla" o "copia-incolla" di uno o più file o di una o più directory in C++ si usa lo stesso la funzione SYSTEM, se si in che modo??

Johnny_Depp
20-08-2003, 13:04
come ti ho già detto, con system() puoi richiamare tutti i comandi dos del sistema operativo che stai usando.

quindi (risp. alla tua domanda) anche COPY, XCOPY per copia/incolla
e MOVE per taglia/incolla

alcuni esempi li trovi qua:
http://forum.html.it/forum/search.php?s=&action=showresults&searchid=976590&sortby=&sortorder=





per aggiungere una nuova CHIAVE nel registro di sistema di windows (senza andare a scomodare le API):
puoi utilizzare ancora la funzione system();

nel link che ti posto, trovi un esempio su come
aggiungere un nuovo valore stringa (p.s. LEGGILO ATTENTAMENTE, fino alla fine):
http://forum.html.it/forum/showthread.php?s=&threadid=386327&highlight=.reg

n.b. il comando che tu passerai a system() sarà simile a questo:

system(REGEDIT /S mia_chiave.reg);

p.s. FAI MOLTA ATTENZIONE CON IL REGISTRO DI SISTEMA (altrimenti rischi di dover formattare l'intero sistema!!!)

Loading