Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
Code Kitchen Allgemeines Coder-Forum rund um das Programmieren eigenständiger, ausführbarer Programme.

c maximiert von anfang an

Diskussion: c maximiert von anfang an im Forum Code Kitchen, in der Kategorie Software Home; Anzeige huhu kann mir wer sagen ob es einen befehl für c gibt, dass wenn man ein programm startet, das ...

Antwort
Alt 06.09.06, 14:18   #1 (permalink)
 
Registriert seit: 12.10.05
m00nk Leistung: Facit NTK
Likes: 0
Standard c maximiert von anfang an

Anzeige

huhu
kann mir wer sagen ob es einen befehl für c gibt, dass wenn man ein programm startet, das consolen fenster sofott maximiert ist? ich habs chon gegoogelt und finde nix...
mfg m00nk

m00nk ist offline   Mit Zitat antworten
Alt 06.09.06, 16:20   #2 (permalink)
Moderator
 
Benutzerbild von Elderan
 
Registriert seit: 30.03.04
Elderan Leistung: 8086
Likes: 14
Standard

Hallo,
wäre schon zu wissen, welches OS du meinst.

Glaube aber kaum, das es eben 'so' funktioniert. Sonst kannst du aber ein Prog schreiben, welches sich selber aufruft (mit spez. Paramter), und das aufgerufene Fenster von außen maximiert (siehe fremnde Fenster manipulieren), und sich dann selber beendet.
Elderan ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 06.09.06, 16:32   #3 (permalink)
 
Registriert seit: 19.08.04
Dawen Leistung: Addierstift
Likes: 1
Standard

Code:
#include <curses.h>
#include <stdlib.h>
#define MAXSIZE 1
#define MINSIZE 0

static int y_click, x_click;
static int y_click2, x_click2;
static int size = MINSIZE;

static void
where_clicked (WINDOW * win, WINDOW * win2, MEVENT pos) {
  // linke obere Ecke von win2
  getbegyx (win2, y_click2, x_click2);
  mouseinterval (1);
  // wo in win wurde geklickt
  wenclose (win, pos.y, pos.x);
  y_click = pos.y;
  x_click = pos.x;
  // wurde auf die linke obere Ecke von win2
  if (y_click == y_click2 && x_click == x_click2) {
    endwin ();
    exit (EXIT_FAILURE);
  }
  // ... oder wurde auf der rechten oberen Ecke geklickt
  else if (y_click == y_click2 && x_click == x_click2 + 39 ||
           x_click == x_click2 + 78) {
    touchwin (stdscr);
    refresh ();
    if (size == MINSIZE) {
      delwin (win2);
      size = MAXSIZE;

    }
    else if (size == MAXSIZE) {
      delwin (win2);
      size = MINSIZE;
    }
  }
}

/* Verschieben des Fensters an Position der globalen Variablen */
/* x_click und y_click die zuvor mit where_clicked() ermittelt */
/* wurden                                                      */
static void move_win_to (WINDOW * win) {
  touchwin (stdscr);
  wrefresh (stdscr);
  mvwin (win, y_click + 1, x_click + 1);
  touchwin (win);
  wrefresh (win);
}

static WINDOW *create_new_window (
      WINDOW * neues_fenster, int zeilen, int spalten,
      int hinterg, int vordergr, int begin_y, int begin_x ) {
  neues_fenster = newwin (zeilen, spalten, begin_y, begin_x);
  init_pair (1, hinterg, vordergr);
  wattrset (neues_fenster, COLOR_PAIR (1));
  box (neues_fenster, ACS_VLINE, ACS_HLINE);
  return neues_fenster;
}

int main (void) {
  MEVENT pos;
  int l_maus;
  chtype button;
  WINDOW *fenster;

  initscr ();
  if (has_colors () == TRUE)
    start_color ();
  noecho ();
  keypad (stdscr, TRUE);
  fenster = create_new_window (
    fenster, 10, 40, COLOR_RED, COLOR_BLUE, 5, 15);
  init_pair (2, COLOR_BLACK, COLOR_YELLOW);
  wattrset (fenster, COLOR_PAIR (2));
  mvwaddch (fenster, 0, 0, 'S');
  mvwaddch (fenster, 0, 39, 'M');
  wattrset (fenster, COLOR_PAIR (0));
  mvwprintw (fenster, 2, 10, "S=Fenster schliessen");
  mvwprintw (fenster, 6, 10, "M=Fenster maximieren");
  wrefresh (fenster);
  l_maus = mousemask (BUTTON1_RELEASED | BUTTON1_PRESSED, NULL);

  while (1) {
    button = wgetch (stdscr);
    if (button == KEY_MOUSE) {
      if (getmouse (&pos) == OK) {
        where_clicked (stdscr, fenster, pos);
        // move_win_to(fenster);
        if (size == MAXSIZE) {
          fenster =
            create_new_window (fenster,
                               24, 79,
                               COLOR_RED,
                               COLOR_BLUE,
                               0, 0);
          wattrset (fenster, COLOR_PAIR (2));
          mvwaddch (fenster, 0, 0, 'S');
          mvwaddch (fenster, 0, 78, 'M');
          wattrset (fenster, COLOR_PAIR (0));
          mvwprintw (fenster, 10, 30,
                     "S=Fenster schliessen");
          mvwprintw (fenster, 14, 30,
                     "M=Fenster minimieren");
          wrefresh (fenster);
        } else if (size == MINSIZE) {
          fenster =
            create_new_window (fenster,
                               10, 40,
                               COLOR_RED,
                               COLOR_BLUE,
                               5, 15);
          init_pair (2, COLOR_BLACK,
                     COLOR_YELLOW);
          wattrset (fenster, COLOR_PAIR (2));
          mvwaddch (fenster, 0, 0, 'S');
          mvwaddch (fenster, 0, 39, 'M');
          wattrset (fenster, COLOR_PAIR (0));
          mvwprintw (fenster, 2, 10,
                     "S=Fenster schliessen");
          mvwprintw (fenster, 6, 10,
                     "M=Fenster maximieren");
          wrefresh (fenster);
          move_win_to (fenster);
        }
      }
    }
  }
  endwin ();
  return 0;
}
Musst dir die Sachen nur noch genau raus suchen.

Gruß
Dawen ist offline   Mit Zitat antworten
Alt 06.09.06, 21:45   #4 (permalink)
 
Benutzerbild von mauralix
 
Registriert seit: 17.04.06
mauralix Leistung: 8086
Likes: 3
Standard

Hey da hab ich was !!!
Du brauchst doch nur die Tasten alt-enter emulieren.

Code:
bool FullscreenOnOff()
{
static bool Fullscreen = false;
  keybd_event(VK_MENU,0x38,0,0);
  keybd_event(VK_RETURN,0x1c,0,0);
  keybd_event(VK_RETURN,0x1c,KEYEVENTF_KEYUP,0);
  keybd_event(VK_MENU,0x38,KEYEVENTF_KEYUP,0);    
return Fullscreen = !Fullscreen;
}
Diese Funktion funktioniert unter Windows und emuliert einfach die tasten schaut allerdings nicht ob schon maxiemiert ist. Ansonsten funktioniert alles gut.
mauralix ist offline   Mit Zitat antworten
Alt 07.09.06, 00:47   #5 (permalink)
Member of Honour
 
Registriert seit: 03.10.01
blueflash Leistung: Facit NTK
Likes: 1
Standard

Im Normalfall kann und sollte ein C-Programm eine Konsole nicht maximieren. Mach Dir klar, wie ein Desktop funktioniert und dann wirst du auch verstehen, warum.
Wenn Du es aber für benutzbarer hältst, kannst du (unter Linux) ja einfach ien script basteln, dass ein xterm mit der entsprechenden Zeilen bzw.Spaltenzahl startet!
blueflash ist offline   Mit Zitat antworten
Alt 13.09.06, 08:17   #6 (permalink)
Themenstarter
 
Registriert seit: 12.10.05
m00nk Leistung: Facit NTK
Likes: 0
Standard

danke für eure antworten. ich teste mal und melde mich später wieder

//edit:
Es hat geklappt ...danke nochma
m00nk ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Software Home » Code Kitchen » c maximiert von anfang an
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Gutes Buch für den Anfang?? Dudekopp (In)security allgemein 19 26.07.07 14:53
C++ für den Anfang Virus Umfragen 34 10.12.06 21:56
Anfang GOLDFISCH (In)security allgemein 10 03.08.05 22:41
C Programmieren von Anfang an TheEvilOne Programmiersprachen 16 17.03.05 19:59
Von Anfang an... MrSwissi (In)security allgemein 9 21.03.02 08:25


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 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61