JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

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

Auf den Desktopzeichnen

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 31.01.2003, 07:19    Titel: Auf den Desktopzeichnen Antworten mit Zitat

Hi

Ich versuche immer zu jedem Kapitel ein übungsbeispiel zu machen um es besser zu lernen. Ich bein gerade im GDI Kapitel und möchte ein programm schreiben das ich dann auf ner LAN auf den Computer eines Freundes in den Autostart kopiere.

Leider funktioniert das nicht. Das Programm soll auf den Desktop schreiben(im Buch steht das man mit hDC=GetDC(NULL); den Desktop holen kann) das ein Virus drauf ist.
*g* meine Freunde werden sich freuen. "Wer hat mir einen Virus gegeben. Manuel warst du das?" *g*

Hier mal der Code, wenn ich es starte tut sich einfahc nichts:

Code:

#include <windows.h>

int  i=10000;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
//Struktur zum Zeichnen
PAINTSTRUCT ps;

HDC hDC;
                                //erfassung des Desktops
hDC=GetDC(NULL);
hDC=BeginPaint(NULL,&ps);

// das TRUE werde ich später noch ersetzen
while(TRUE)
{
//if(i==10000)
//{
//                                              (Werde den Text noch überdenken)
 TextOut(hDC,20,20,"Ich bin ein Virus",20);

//i=0;
//}
//
}
EndPaint(NULL,&ps);
ReleaseDC(NULL,hDC);
return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
AFE-GmdG
JLI MVP
JLI MVP


Alter: 44
Anmeldedatum: 19.07.2002
Beiträge: 1374
Wohnort: Irgendwo im Universum...
Medaillen: Keine

BeitragVerfasst am: 31.01.2003, 11:51    Titel: Antworten mit Zitat

Mal abgesehen, das sowas nicht gerade nett ist Wink hast du Fehler im Programm:

1. Du weisst hDC 2x hintereinander zu. Das GetDC() ermittelt doch schon einen gültigen HDC, ein BeginPaint danach überschreibt diesen. Da BiginPaint immer nur innerhalb von WM_PAINT genutzt werden darf erhältst du hierbei NULL - also einen ungültigen HDC.
Überprüfe das mit GetDC() erhaltene HDC auf ungleich NULL.
Statt EndPaint() musst du ReleaseDC verwenden.

Etwas direct auf den Screen zu schreiben ist immer eine sehr unschöne Sache, vorallem weil einfach jedes Fenster übermalt wird... Diese Funktion ist eher dafür gedacht, das man die Farbwerte bestimmter Bildschirmkoordinaten ermitteln kann.

AFE-GmdG
_________________
CPP:
float o=0.075,h=1.5,T,r,O,l,I;int _,L=80,s=3200;main(){for(;s%L||
(h-=o,T= -2),s;4 -(r=O*O)<(l=I*I)|++ _==L&&write(1,(--s%L?_<(L)?--_
%6:6:7)+\"World! \\n\",1)&&(O=I=l=_=r=0,T+=o /2))O=I*2*O+h,I=l+T-r;}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 31.01.2003, 13:53    Titel: Antworten mit Zitat

Danke hier der code, man muss das Prog aber per Taskmanager beenden:

Code:

#include <windows.h>
int i=0;
int z=0;
int s=0;

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
//Struktur zum Zeichnen

HDC hDC;
hDC=GetDC(NULL);

// das TRUE werde ich später noch ersetzen

MessageBox(NULL,"Du hast ein Virus auf deiner Festplatte","VIRUS",MB_OK);
while(TRUE)
{
for(double u;u==1000000;u++)
{
}
do{
 TextOut(hDC,i-800,i,"Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||HAHAHA||Du hast ein Virus auf deiner Festplatte||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER",300);
     TextOut(hDC,z-800,z,"Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||HAHAHA||Du hast ein Virus auf deiner Festplatte||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER",300);
 TextOut(hDC,s-800,s,"Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||HAHAHA||Du hast ein Virus auf deiner Festplatte||Du hast ein Virus auf deiner Festplatte||FEHLER||Du hast ein Virus auf deiner Festplatte||FEHLER",300);

 i=i+20;
z=i+20;
s=z+20;
}
while(i != 400);


}
ReleaseDC(NULL,hDC);
return 0;
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 01.02.2003, 12:46    Titel: Antworten mit Zitat

Noch ne Frage ich hab hier gelesen das man mit BOOL BlockInput (BOOL fBlockIt); die Tastatur und maus speren kann.
Dazu muss man aber die Datei User32.lib ins Projekt einbinden wie geht das?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Compuholic
Mini JLI'ler



Anmeldedatum: 15.10.2002
Beiträge: 25

Medaillen: Keine

BeitragVerfasst am: 02.02.2003, 18:54    Titel: Antworten mit Zitat

Die user32.lib ist standardmäßig in die Bibliothekenliste bei den Linkeroptionen aufgenommen. Du mußt nur den Header einbinden.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 02.02.2003, 19:03    Titel: Antworten mit Zitat

Wie gesagt ich bin anfänger. Wie mach ich das genau? mit #include <User32.lib> gehts nicht
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Master_York
JLI'ler



Anmeldedatum: 23.07.2002
Beiträge: 124
Wohnort: Langenhagen(Hannover)
Medaillen: Keine

BeitragVerfasst am: 02.02.2003, 19:58    Titel: Antworten mit Zitat

Hi du must nur die Header für user32.lib einbinden.
Die dazugehörige header ist winable.h.

Also mach es so:

Code:

#include <winable.h>


Bye
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
abc_d
JLI Master Trainee


Alter: 34
Anmeldedatum: 27.01.2003
Beiträge: 615

Medaillen: Keine

BeitragVerfasst am: 03.02.2003, 11:00    Titel: Antworten mit Zitat

Danke!
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 -> Fragen, Antworten und Kritik 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