Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (WinAPI, Konsole) » Doom3 Minimizer

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
13.08.2004, 14:55 Uhr
(un)wissender
Niveauwart


Hm, also aus deinen Fragen erkenne ich, dass ich bei Adam und Eva anfangen müsste (ist nicht böse gemeint!).
Tut mir leid, aber ich habe dazu nicht die Motivation, ehrlich.
Vielleicht helfen mir ja einige andere...

Trotzdem einige Kleinigkeiten:

Zum kompilieren: versuchs einfach, der compiler sagt dir warum.
Was ich sehe ist bspw. ist eine nicht geschlossene Klammer von main, die includes fehlen auch noch.

Zu den mains:
Also, der Einstiegspunkt ist meiner Meinung nach nicht klar (vermutlich aber WinMain), da man das ganze sowohl als Konsolenprogramm laufen lassen kann, wie auch als direktes Windowsprogramm.
Uneindeutigkeiten wie diese sind immer schlecht und einige compiler dürften bei bestimmten Einstellungen auch mit den zwei mains nicht klarkommen.

Zur I/O:
C und C++ benutzen verschiedene I/O-Systeme, die in Konflikt treten können, außerdem sollte man sich zur Klarheit angewöhnen nur eines zu benutzen.


Zur Schleife:
Das sollte die Schleife nachbilden.
Allerdings sollte man sich mal überlegen eine vernünftige Abbruchbedingung einzuführen und nicht immer nach dem Windows zu fragen. Ist langsam und unvernünftig.


C++:
while(true)
{
  if(::GetAsyncKeyState(VK_MENU) && ::GetAsyncKeyState(VK_TAB))
  {
     doom3 = ::FindWindow("DOOM3",0);
     if(!doom3) return 0;
     ::ShowWindow(doom3,SW_MINIMIZE);  
  }
  ::Sleep(10);
}



Zu string und char[]:
Zu mischen ist immer inkonsistent und fehleranfällig, guter Stil in C++ sollte immer std::string verwenden (wenn es denn geht), da es schlicht sicherer ist.
--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 13.08.2004 um 14:58 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
14.08.2004, 21:02 Uhr
Zero



Komisch ,dafür das der Code so schlecht sein soll läuft es super.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
14.08.2004, 22:51 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)


Das bezeifliche ich ganz stark, vor allem der 2te Code ist voller Fehler.

Wenn du einen Compiler verwendest der das so ohne Änderungen übersetzt solltest du ihn in die Tonne treten


Außerdem hat (un)wissender IMHO mit allen Punkten recht...
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
15.08.2004, 17:37 Uhr
Zero



Naja, Borland C builder 6 compiliert das ohne jeglichen Komentar und das Perogramm minimiert mir Doom3 ohne jeglichen mangel, der code mag zwar unsauber sein aber er funktioniert bei mir und bei Freunden ohne Probleme

Ich werde versuchen mit einem Arbeitskollegen nochmal drüber zu gehen und das resultat dann online stellen wenn sich was ergibt
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
15.08.2004, 19:24 Uhr
(un)wissender
Niveauwart


Für so kurze Schnippsel ist das auch halbwegs ok, aber sobald du ein paar Zeile mehr einfügst kommst du normalerweise mit diesem Programmierstil in Teufels Küche, mal ganz davon ab, das er sehr schwer zu lesen ist.
Allerdings bezweifel ich mal, dass die zweite Variante, so wie sie hier im Forum steht, kompiliert.
Was ist eigentlich der Hintergrund dieses Programms?
Kommt man nicht mehr aus Doom raus, oder was?
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
16.08.2004, 08:18 Uhr
Zero



Habs überarbeitet:


C++:

const int buffer_len = 50;

typedef char tBuffer[buffer_len + 1];

int main()
{

string v;
tBuffer var;
int d3found=0;


    HWND doom3=(HWND)0;
    FILE * d3exist;
    d3exist = fopen("doom3.exe","r");
          if (d3exist == 0)
        {
        cout<<"Failed: Dieses Programm liegt nicht im Doom3 Hauptverzeichnis !"<<endl;
        Sleep(5000);
        return 0;
        }

        fstream read;
        read.open("doom3.ios",ios::in);
        read.seekg(0);                    //------Lesen
        read.getline(var,buffer_len);
        read.close();

        v = var;
        WinExec(v.c_str(),3);     //--------------------- Doom3 starten
        fclose(d3exist);

        fstream write;
        write.open("doom3.ios",ios::out);
        write.clear(0);                       //----- Schreiben
        write<<"doom3.exe"<<endl;
        write.close();


    while(1)
    {
        if (GetAsyncKeyState(VK_MENU) && GetAsyncKeyState(VK_TAB))
        {
            doom3 = FindWindow("DOOM3",0);
            if (doom3)
            {
                d3found=1;
                ShowWindow(doom3,SW_MINIMIZE);
            }
            else
                        d3found=0;
        }
        if (doom3 != 0 && d3found == 1)
        {
            doom3 = FindWindow("DOOM3",0);
            if(!doom3)
                return 0;
        }
        Sleep(10);


    }



}





Dieses Programm minimiert Doom3 via ALT+ TAB was sonst nicht möglich wäre. Ohne dieses Tool will Doom3 einfach nicht in die Taskleiste, die schreiberei mit fstream liest nur einen Paramter ein falls Doom im Multiplayer gestartet werden soll (wenn nicht lautet der Para einfach "doom3.exe" und wird auch immmer wieder so zurück geschrieben. Leute ich kann nur wiederholen das es Funktioniert, wäre nur schön die Abbruchbedingung zu verfeinern weil nach dem man Doom3 beendet hat bleibts mal offen oder schliesst sich sofort. Wie kann ich den Code verändern so das das Prog immer geschlossen wird wenn auch Doom3 geschlossen wird ?

Dieser Post wurde am 16.08.2004 um 08:19 Uhr von Zero editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
16.08.2004, 11:01 Uhr
ai-tee



Also ich habs jetzt auch mal versucht zu compilieren ...

Mir fehlt allerdings die inifile.hpp ... wo bekomme ich die denn her?
Ich habe bereits gegoogled, aber nirgendswo gibts die zum download.

Ich habe auch noch niemals von einer .hpp gehört, was genau bedeutet der Suffix?
--
Greetz, ai`tee
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
16.08.2004, 13:50 Uhr
(un)wissender
Niveauwart


@Zero
Wo haste den da was überarbeitet (der typedef macht nicht besser, im Gegenteil), na ja, ist dein Ding.

@ai-tee
hpp ist die korrekte Endung für cpp-Header.


Bearbeitung:

Falls es nicht klar ist: pp = plus plus (++)


--
Wer früher stirbt ist länger tot.

Dieser Post wurde am 16.08.2004 um 13:51 Uhr von (un)wissender editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
16.08.2004, 14:35 Uhr
Guybrush Threepwood
Gefürchteter Pirat
(Operator)



Zitat von (un)wissender:
@Zero
Wo haste den da was überarbeitet (der typedef macht nicht besser, im Gegenteil), na ja, ist dein Ding.

Die 2te main ist weg
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
16.08.2004, 14:43 Uhr
Zero



wie kann ich die Schleife so verbessern das er auf jedenfall das Programm beendet sobald Doom3 beendet wird ?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (WinAPI, Konsole) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: