Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

1

02.11.2009, 15:39

Konsolen-Icon ändern

Hi
Da ich gerade ein Projekt in der Konsole programmiere, interessiert es mich wie man das kleine Icon oben links bei der Leiste der Konsole ändern kann.
Das ich z.B. ein's in Paint male und dort einfüge.

Danke im Voraus!
Pi mal Daumen = 18.84955592

xxendlessxx

Treue Seele

Beiträge: 230

Wohnort: Bad Schussenried

Beruf: Full Stack Developer

  • Private Nachricht senden

2

02.11.2009, 15:56

Was für eine IDE hast du ?

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

3

02.11.2009, 17:24

Microsoft Visual C++ 2008 Express Edition!
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

4

02.11.2009, 17:56

SetConsoleIcon() aus Kernel32.

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

5

02.11.2009, 19:19

Hi
Irgendwie finde ich in der MSDN keine anständige Erklärung.
Aus dem werde ich nicht schlau:

Quellcode

1
2
3
4
5
6
7
8
9
There is also undocumented function SetConsoleIcon

''' <summary>Sets console icon</summary>
''' <param name="hicon">Handle of icon (<see cref="Icon.Handle"/>)</param>
''' <returns>True of succes, false on error</returns>
''' <remarks>This function is undocumented</remarks>
Public Declare Function SetConsoleIcon Lib "Kernel32.dll" (ByVal hicon As IntPtr) As Boolean

    * http://support.microsoft.com/kb/124103 describes how to get handle of console window.


Kann mit vlt. jemand einen kurzen Beispiel Code geben, oder einen Link.

Danke im Voraus!
Pi mal Daumen = 18.84955592

C--

Alter Hase

Beiträge: 465

Beruf: Schüler

  • Private Nachricht senden

6

02.11.2009, 19:25

Quellcode

1
2
3
4
5
6
7
8
9
There is also undocumented function SetConsoleIcon 

''' <summary>Sets console icon</summary> 
''' <param name="hicon">Handle of icon (<see cref="Icon.Handle"/>)</param> 
''' <returns>True of succes, false on error</returns> 
''' <remarks>This function is undocumented</remarks> 
Public Declare Function SetConsoleIcon Lib "Kernel32.dll" (ByVal hicon As IntPtr) As Boolean 

    * http://support.microsoft.com/kb/124103 describes how to get handle of console window.


Das ist VB.Net-code ;) in c++ würde die funktion wohl in etwa so aus sehen BOOL SetConsoleIcon(HICON hicon);

der ein handle zu dem icon, das du haben willst geben. ;)
[/code]
Ich spreche: C/C++, C++/CLI C#, VBA, VB.NET, Delphi, (HTML, Javascript(bisschen))
------------------------------------------------------------
Hier steht eventuell schon in ein paar Monaten der Link zu meiner Homepage!

return 0;
;)

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

7

02.11.2009, 19:41

Hi
Danke für deine Antwort.
Wie bekomme ich ein Handle auf mein Icon?
Und muss ich das Icon irgendwie einbinden?
Wenn ja, wie?

Dieser Code funktioniert jedenfalls nicht :cry: :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
#include <windows.h>
#pragma comment (lib, "kernel32.lib")
#include <icon.ico>                     // Icon einbinden?


bool SetConsoleIcon (HICON hIcon);      // Funktionsprototyp


int main ()
{
    SetConsoleIcon ("Icon.ico");        // Funktionsaufruf


    cin.get ();
    return 0;
}


Danke im Voraus!
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

02.11.2009, 20:43

Zitat von »"FLO2"«


Wie bekomme ich ein Handle auf mein Icon?


LoadImage: http://msdn.microsoft.com/en-us/library/ms648045(VS.85).aspx

Zitat von »"FLO2"«


Und muss ich das Icon irgendwie einbinden?


Du kannst LoadImage auf Dateien oder Resourcen anwenden. Was du lieber willst...

Zitat von »"FLO2"«


Dieser Code funktioniert jedenfalls nicht :cry: :

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
using namespace std;
#include <windows.h>
#pragma comment (lib, "kernel32.lib")
#include <icon.ico>                     // Icon einbinden?


bool SetConsoleIcon (HICON hIcon);      // Funktionsprototyp


int main ()
{
    SetConsoleIcon ("Icon.ico");        // Funktionsaufruf


    cin.get ();
    return 0;
}


Danke im Voraus!


Vermutlich weil du überhaupt keine Idee hast was du da machst...

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
typedef BOOL ( WINAPI *SetConsoleIcon_t )( HICON handle );

SetConsoleIcon_t SetConsoleIcon;

BOOL WINAPI SetConsoleIconDefault( HICON handle )
{
    return TRUE;
}

int main()
{   
    HMODULE hDll = LoadLibrary( _T( "kernel32" ) );
    if ( hDll )
    {
        SetConsoleIcon = ( SetConsoleIcon_t )GetProcAddress( hDll, "SetConsoleIcon" );
        FreeLibrary( hDll );
    }
    else {
        SetConsoleIcon = &SetConsoleIconDefault;
    }

    HICON hIcon = ( HICON )LoadImage( NULL, _T( "foo.ico" ), IMAGE_ICON, 0, 0, LR_LOADFROMFILE );
    if ( hIcon ) {
        SetConsoleIcon( hIcon );
    }
}

FLO2

Treue Seele

  • »FLO2« ist der Autor dieses Themas

Beiträge: 221

Beruf: Schüler

  • Private Nachricht senden

9

02.11.2009, 22:42

Hi,
Danke für deine Antwort!

Für was benötige ich das _T bei der Funktion LoadLibrary und LoadImage?
Ruft nämlich nen Compiler-Fehler hervor:
Bezeichner nicht gefunden!
Ohne diese macht das Programm nichts.

Sorry wenn ich mich gerade blöd anstelle!

Edit: Da es mir hier andscheinend sehr an Wissen fehlt, lass ich's mal bleiben.
Danke! :)
Pi mal Daumen = 18.84955592

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

10

03.11.2009, 13:45

Du musst hierfür noch den Header tchar.h inkludieren.

Werbeanzeige