JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=ec87e687410b8e4687e4872602111bd9Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Verbesserungsvorschläge

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 29.10.2003, 12:10    Titel: Verbesserungsvorschläge Antworten mit Zitat

Was würdet ihr an diesem Projekt noch ändern?

Code:

// (c) 2003 Martin Foisner

// zu bestimmten Header-Dateien müssen noch .lib ins hinzugeügt werden
#include <windows.h>
#include <process.h>
#include <fstream>
#include <malloc.h>

#define CM_CHANGE   101
#define CM_START   102
#define CM_HELP      103
#define CM_INFO      104
#define CM_AUTO      105
#define CM_END      106
#define IDI_ICON1   107

HWND CreateMainWindow(HINSTANCE hInstance);
LRESULT CALLBACK WindowFunc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam);
HWND hWnd;
HDC hDC;
void Erstellen(void);
void RegEdit(void);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
   hWnd = CreateMainWindow(hInstance);
   hDC = GetDC(hWnd);

   MSG msg;
      
   while(TRUE)
   {   
      if(PeekMessage(&msg,NULL,0,0,PM_REMOVE))
      {
         if(msg.message == WM_QUIT)
         {
            break;
         }

         TranslateMessage(&msg);
         DispatchMessage(&msg);
      }
      else
      {
      }
   }

   return 0;
}

HWND CreateMainWindow(HINSTANCE hInstance)
{
   WNDCLASSEX w;

   w.cbClsExtra   =   0;
   w.cbSize      =   sizeof(WNDCLASSEX);
   w.cbWndExtra   =   0;
   w.hbrBackground =   (HBRUSH)GetStockObject(BLACK_BRUSH);
   w.hCursor      =   LoadCursor(NULL, IDC_ARROW);
   w.hIcon         =   LoadIcon(NULL, IDI_WINLOGO);
   w.hIconSm      =   LoadIcon(NULL, IDI_WINLOGO);
   w.hInstance      =   hInstance;
   w.lpfnWndProc   =   WindowFunc;
   w.lpszClassName =   "WindowClass";
   w.lpszMenuName  =   "MENU_1";
   w.style         =   CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;

   RegisterClassEx(&w);

   return CreateWindowEx(NULL,"WindowClass",NULL,WS_DLGFRAME | WS_VISIBLE ,0,0,0,148,NULL,NULL,hInstance,NULL);   
}


LRESULT CALLBACK WindowFunc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
   switch(msg)
   {
      case WM_DESTROY:
         PostQuitMessage(0);
      break;

      case WM_COMMAND:
         
         switch(wParam)
         {   
            case CM_END:
               DestroyWindow(hWnd);
            break;

            case CM_INFO:
               MessageBox(hWnd,"Version: 2.0\n\nAEIOU - SOFTWARE \n\n 2003 Martin Foisner","",MB_OK);
            break;

            case CM_HELP:
               Erstellen();
               system("C:\\anl.txt");
            break;

            case CM_START:
               system("C:\\WINDOWS\\SYSTEM32\\oobe\\msoobe.exe /a");
            break;

            case CM_CHANGE:
               RegEdit();
               MessageBox(hWnd,"Reg-Key geändert","",MB_OK);
            break;

            case CM_AUTO:
               Erstellen();                  
               RegEdit();
               system("C:\\anl.txt");
               system("C:\\WINDOWS\\SYSTEM32\\oobe\\msoobe.exe /a");
               DestroyWindow(hWnd);
            break;
               

         }
      break;
   }
   
   return(DefWindowProc(hWnd,msg,wParam,lParam));
}

void Erstellen(void)
{
   //Schreib eine Textdatei mit Anleitung

   int a=0;
   char text1[] = "1) Ja, Windows telefonisch über den Kundendienst aktivieren\n";
   char text2[] = "2) Weiter\n";
   char text3[] = "3) Product Key ändern\n";
   char text4[] = "4) 3VV32 - X2YTF - Y4X3D - FYFY8 - QXCD7\n";
   char text5[] = "5) Aktualisieren\n\n";
   char text6[] = "Anleitung gespeichert unter C:\\anl.txt \n\n";
   char text7[] = "2003 von Mäscht";
   char caption[] = "-------------------------ANLEITUNG-------------------------\n\n";
   
   FILE *File = fopen("C:\\anl.txt","w+");

   for(a=0;a<strlen(caption);a++)
   {
      fwrite(&caption[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text1);a++)
   {
      fwrite(&text1[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text2);a++)
   {
      fwrite(&text2[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text3);a++)
   {
      fwrite(&text3[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text4);a++)
   {
      fwrite(&text4[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text5);a++)
   {
      fwrite(&text5[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text6);a++)
   {
      fwrite(&text6[a],sizeof(char),1,File);
   }
   for(a=0;a<strlen(text7);a++)
   {
      fwrite(&text7[a],sizeof(char),1,File);
   }

   fclose(File);         

}

void RegEdit(void)
{
   //Ändert Registrierungs-Schlüssel
   HKEY m_hKey;
   CONST DWORD Value = 5;
   RegDeleteKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WPAEvents");
   RegCreateKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\WPAEvents",0,NULL,REG_OPTION_NON_VOLATILE,KEY_ALL_ACCESS,NULL,&m_hKey,NULL);
   RegSetValueEx(m_hKey,"OOBETimer",0,REG_BINARY,(BYTE*)&Value,sizeof(DWORD));
   RegCloseKey(m_hKey);
}
   

//WMENU.RC

/*MENU_1 MENU

BEGIN
   MENUITEM "Reg-Schlüssel ändern",101
   MENUITEM "   MS-Oobe öffnen   ",102
   MENUITEM "   Hilfe anzeigen   ",103
   MENUITEM "        Info        ",104
   MENUITEM "    Automatisch     ",105
   MENUITEM "      Beenden       ",106
END*/


EDIT: Obwohl es vielleicht sehr interessant ist, wollen wir doch niemanden zu illegalen Dingen verführen.

C.
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
HotAcid
Super JLI'ler


Alter: 43
Anmeldedatum: 04.08.2002
Beiträge: 372
Wohnort: Berlin
Medaillen: Keine

BeitragVerfasst am: 29.10.2003, 16:48    Titel: Antworten mit Zitat

es kommentieren.

cu Felix
_________________
StGB §§ 328 Abs. 2 Pkt 3:
Mit Freiheitsstrafe bis zu fünf Jahren oder mit Geldstrafe wird bestraft, wer eine nukleare Explosion verursacht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 29.10.2003, 18:44    Titel: Antworten mit Zitat

Da deine Schleife auch nicht sehr viel Performance benötigt, kannst du das PeekMessage() in GetMessage() ändern.

C.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hazel
JLI MVP
JLI MVP


Alter: 39
Anmeldedatum: 19.07.2002
Beiträge: 1761

Medaillen: Keine

BeitragVerfasst am: 29.10.2003, 18:59    Titel: Antworten mit Zitat

Wenn du keine Streams benutzen willst solltest du die vielen unnötigen Schleifen abschaffen:

Code:

for(a=0;a<strlen(caption);a++)
{
   fwrite(&caption[a],sizeof(char),1,File);
}

// ist uneleganter als

fwrite(caption, strlen(caption), 1, File);


Aber ich würde sowieso Strings und Streams verwenden... dadurch würde sich das alles dann auf

Code:


File << caption << text1 << text2 << ... ;



reduzieren.


[Nachtrag]

Ich verstehe sowieso nicht, warum du das alles in mehrere Arrays schreibst nur um die Datei gleich darauf anzuzeigen. Wäre es nicht eher angebracht die Datei per Hand zu schreiben und dem Programm beizulegen?
_________________
*click* Dabuu!?
Twitter: http://twitter.com/Ollie_R
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 30.10.2003, 11:59    Titel: Antworten mit Zitat

Das habe ich mir am anfang auch überlegt, aber ich wollte einfach "alles-in-einem" haben!
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Mäscht
JLI'ler



Anmeldedatum: 22.05.2003
Beiträge: 150
Wohnort: Bad Hofgastein\Österreich
Medaillen: Keine

BeitragVerfasst am: 30.10.2003, 12:03    Titel: Antworten mit Zitat

Kann ich eigentlich anstattd der Funktion system() eigentlich auch eine andere verwenden? Mein Problem liegt nämlich hier:
Code:

system("C:\\WINDOWS\\SYSTEM32\\oobe\\msoobe.exe /a");


das /a, welches zum Ausführen dieses Progs wichtig ist, ist mein Problem, warum ich keine andere, mir bekannte Funktion, nehme!
_________________
Motz´z mi net o, i bin ofänga!! AEIOU für immer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Christian Rousselle
Site Admin


Alter: 48
Anmeldedatum: 19.07.2002
Beiträge: 1630

Medaillen: Keine

BeitragVerfasst am: 30.10.2003, 12:06    Titel: Antworten mit Zitat

Hallo,

ShellExecute sollte gehen.

Christian
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Projekte Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum