.INI Datei auslesen und in .exe value schreiben.



  • Ich sagte ja ich bin noch nicht sehr fortgeschritten in C++. Deshalb ist mein Code wohl auch so wirr 😃 Und ich weiß nichtmal im Ansatz wie ich das machen soll und die GetPrivateProfileInt Funktion raff ich mit der Microsotf Erklärung nicht mal annähernd.
    Und ich will keinen Wert in die .ini schreiben, sondern den Wert, den ich ausgelesen hab in meinen eigentlichen Code schreiben.



  • Und ich will keinen Wert in die .ini schreiben, sondern den Wert, den ich ausgelesen hab in meinen eigentlichen Code schreiben.

    Also du willst c++ Komandos aus einer externen datei in deinem laufendem Programm benutzen ? Also Hooking ?



  • Ich will eigentlich nur, dass das Programm nach Start die drei Sleep Werte aus der .ini o.ä. Datei ausliest und im Code des eigentlichen Programms die Sleep Werte durch die ersetzt, die ausgelesen wurden und das Programm danach weiterläuft und das tut, was es bis jetzt tat.



  • So, ich hab jetzt eine Funktion, die 3 Werte ausliest und mir diese anzeigt, doch wie bekomm ich das hin, dass diese 3 Werte die alten aus dem Code ersetzen?

    #include <iostream>
    #include <Windows.h>
    using namespace std;
    
    int main()
    {
    char FireDelay[500];
    char MouseHoldDown[500];
    char WaitBetweenShots[500];
    DWORD destSize;
    
    destSize=500;
    GetPrivateProfileString("trigger","FireDelay","NULL",FireDelay,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","MouseHoldDown","NULL",MouseHoldDown,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","WaitBetweenShots","NULL",WaitBetweenShots,destSize,"C://settings.ini"); 
    cout << FireDelay << endl;
    cout << MouseHoldDown << endl;
    cout << WaitBetweenShots << endl;
    system("PAUSE");
    // Wenn die Variablen aus der Ini nicht eingelesen werden können, steht nach dem Aufruf der Default-Wert in Test, EinPfad oder Test (In diesem Beispiel "NULL");	
    return 0;
    }
    


  • cooky451 schrieb:

    http://msdn.microsoft.com/en-us/library/ms724345.aspx
    http://msdn.microsoft.com/en-us/library/ms724353.aspx

    This function is provided only for compatibility with 16-bit Windows-based applications.

    👎

    Aber zur Frage: Stichwort atoi ().
    Das sollte das Problem dann eigentlich schon gelöst haben, zumindest falls ich dein Problem auch richtig verstanden habe 🙂

    EDIT: Falls du die Werte dann aus einer Datei kriegen willst, gucke dir die Filestreaming-Funktionen an.



  • Ich weiß nicht so richtig, was atoi jetzt bringen soll.
    Der Code:

    int a = 30;
    int b = 30;
    int c = 80;
    char FireDelay[500];
    char MouseHoldDown[500];
    char WaitBetweenShots[500];
    DWORD destSize;
    
    destSize=500;
    GetPrivateProfileString("trigger","FireDelay","NULL",FireDelay,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","MouseHoldDown","NULL",MouseHoldDown,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","WaitBetweenShots","NULL",WaitBetweenShots,destSize,"C://settings.ini"); 
    if(FireDelay != a) {
    	a = FireDelay;
    

    So das waren die wichtigen Abschnitte. Das Problem ist, ich kann zwar die Werte auslesen und wenn ich mir diese anzeigen lasse, sind sie normale Zahlen, doch wenn ich die Sleep Werte jetzt durch diese ersetzen lasse, kommt eine Fehlermeldung. Irgendwas mit der Konvertierung klappt nicht. Wie kann ich die Werte denn osnst ersetzen?



  • Ich bin mitlerweile bei diesem Code angelangt:

    char FireDelay[500];
    char MouseHoldDown[500];
    char WaitBetweenShots[500];
    DWORD destSize;
    
    destSize=500;
    GetPrivateProfileString("trigger","FireDelay","NULL",FireDelay,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","MouseHoldDown","NULL",MouseHoldDown,destSize,"C://settings.ini");
    GetPrivateProfileString("trigger","WaitBetweenShots","NULL",WaitBetweenShots,destSize,"C://settings.ini"); 
    WaitBetweenShots[500] = (int)(WaitBetweenShots-'0');
    a = WaitBetweenShots;
    cout << a << endl;
    

    Wenn ich jetzt Waitbetweenshots in int konvertiere und mir den anzeigen lasse, hat er den Wert 42, doch sobald ich a = waitbetweenshots setze, hat a den Wert -112 oder -54 oder so. Was mache ich denn falsch?



  • Hat sich erledigt. Hab es doch mit atoi hinbekommen.
    Danke an alle.



  • Michel A. schrieb:

    Ich weiß nicht so richtig, was atoi jetzt bringen soll.

    Michel A. schrieb:

    Hab es doch mit atoi hinbekommen.

    👍



  • Fake oder Echt schrieb:

    cooky451 schrieb:

    http://msdn.microsoft.com/en-us/library/ms724345.aspx
    http://msdn.microsoft.com/en-us/library/ms724353.aspx

    This function is provided only for compatibility with 16-bit Windows-based applications.

    👎
    Aber zur Frage: Stichwort atoi ().

    cooky451 schrieb:

    Oder du nimmst ifstream und liest die Daten manuell aus.



  • Das hatte ich gelesen, ich hab mich nur gefragt, warum man jemanden Funktionen nennt, die eindeutig nicht mehr benutzt werden sollen (zu Kompatibilitätszwecken mal abgesehen). Dein Tipp mit den Streams hätte völlig gereicht. Deshalb der Daumen nach unten 😉



  • Du hättest aber auch den zweiten Satz lesen sollen:

    Applications should store initialization information in the registry.

    Und da hier nun mal eine Ini-Datei vorliegt, kann man diese auch mittels GetPrivateProfileString lesen bzw. besser wäre hier gleich GetPrivateProfileInt.



  • Da hat der möchtegern Cheater es letztendlich doch hinbekommen.

    ... "FireDelay" ... "MouseHoldDown" ... "WaitBetweenShots" ...
    cout << " Mantas Trigger regelt " << endl;
    cout << " Trigger ist gestartet, also mach ihn kapott Juuunge!!! " << endl << endl;
    cout << " Fuer Bhop in die Konsole in CSS: bind l +jump. Dann einfach alt gedrueckt halten und tada geht die Post ab. " << endl << endl;
    cout << " Wenn du CT bist, druecke f2, wenn du T bist f1, wenn das nicht geht druecke einfach die Tasten " << endl;
    cout << " bis du nicht mehr auf deine Mates schießt und zack is enemy only drin. " << endl;

    🙄


Anmelden zum Antworten