Leute gesucht!!!



  • Da!
    http://warpserv.fh-bielefeld.de/teamos2/tricks.html
    und
    http://w3.aces.uiuc.edu/OS2/tricks.html
    und
    http://www.netlabs.org/
    und da
    http://www.edm2.com/
    oder da:
    http://www.ibm.com/us/

    mfg
    Programmer
    PS: Ich glaub, da werden sich sicher sehr hilfsreiche und nützliche "Sachen" herauschreiben! 😃 😃

    [ Dieser Beitrag wurde am 09.07.2002 um 17:51 Uhr von Programmer85 editiert. ]



  • Zwei Beispiele von der EDM, die OS Codesnippets anbieten:
    (NAtürlich wird die neue HEader process.h und OS2.h und Os.h benötigt!)

    Restaurieren und Speichern von aktuellen OS Einstellungen:

    VOID GetStartupData(HWND hWndFrame)
    {
       HAB hab;
       CHAR szIniPath[64];
       HINI hMyHini;
       SWP Swp;
       ULONG ulSwpSize = sizeof(SWP);
       ULONG SwpOptions = SWP_ACTIVATE | SWP_MOVE | SWP_SIZE | SWP_SHOW;
       USHORT RestoreValues[6];
       ULONG ulRestoreValuesSize = sizeof(RestoreValues);
    
    /* ========================================================================
       Load the physical pathname from the resource file.  It should be defined
       something like this.
    
       STRINGTABLE LOADONCALL MOVEABLE
       BEGIN
          ID_INIPATH   "C:\\APP.INI"
       END
    ======================================================================== */
       hab = WinQueryAnchorBlock(hWndFrame);
       WinLoadString(hab, 0, ID_INIPATH, sizeof(szIniPath), szIniPath);
    
       if ((hMyHini = PrfOpenProfile(hab, szIniPath))!=NULLHANDLE)
          {
          if (PrfQueryProfileData(hMyHini,
                                  "App",
                                  "WindowSize",
                                  (PVOID)&Swp,
                                  (PULONG)&ulSwpSize))
             {
             if (Swp.fl & SWP_MAXIMIZE)
                SwpOptions |= SWP_MAXIMIZE;
             else if (Swp.fl & SWP_MINIMIZE)
                SwpOptions |= SWP_MINIMIZE;
    
             WinSetWindowPos(hWndFrame,
                             NULLHANDLE,
                             Swp.x,
                             Swp.y,
                             Swp.cx,
                             Swp.cy,
                             SwpOptions);
    
    /* ========================================================================
       Set the following flags in the frame window extra data.  This will tell
       the frame what size it should restore itself to if you restart minimized
       or maximized.
    ======================================================================== */
             if (PrfQueryProfileData(hMyHini,
                                     "App",
                                     "RestoreValues",
                                     (PVOID)&RestoreValues,
                                     (PULONG)&ulRestoreValuesSize))
                {
                WinSetWindowUShort(hWndFrame, QWS_XRESTORE, RestoreValues[0]);
                WinSetWindowUShort(hWndFrame, QWS_YRESTORE, RestoreValues[1]);
                WinSetWindowUShort(hWndFrame, QWS_CXRESTORE, RestoreValues[2]);
                WinSetWindowUShort(hWndFrame, QWS_CYRESTORE, RestoreValues[3]);
                WinSetWindowUShort(hWndFrame, QWS_XMINIMIZE, RestoreValues[4]);
                WinSetWindowUShort(hWndFrame, QWS_YMINIMIZE, RestoreValues[5]);
                }
             }
          else
             WinSetWindowPos(hWndFrame, 0, 0L, 40L, 800L, 560L, SwpOptions);
          }
       else
          WinSetWindowPos(hWndFrame, 0, 0L, 40L, 800L, 560L, SwpOptions);
    
       PrfCloseProfile(hMyHini);
       return;
    }
    
    VOID SaveStartupData(HWND hWndFrame)
    {
       HAB hab;
       CHAR szIniPath[64];
       HINI hMyHini;
       SWP Swp;
       USHORT RestoreValues[6];
    
       WinQueryWindowPos(hWndFrame, &Swp);
       RestoreValues[0] = WinQueryWindowUShort(hWndFrame, QWS_XRESTORE);
       RestoreValues[1] = WinQueryWindowUShort(hWndFrame, QWS_YRESTORE);
       RestoreValues[2] = WinQueryWindowUShort(hWndFrame, QWS_CXRESTORE);
       RestoreValues[3] = WinQueryWindowUShort(hWndFrame, QWS_CYRESTORE);
       RestoreValues[4] = WinQueryWindowUShort(hWndFrame, QWS_XMINIMIZE);
       RestoreValues[5] = WinQueryWindowUShort(hWndFrame, QWS_YMINIMIZE);
    
       hab = WinQueryAnchorBlock(hWndFrame);
       WinLoadString(hab, 0, ID_INIPATH, sizeof(szIniPath), szIniPath);
    
       if ((hMyHini = PrfOpenProfile(hab, szIniPath))!=NULLHANDLE)
          {
          PrfWriteProfileData(hMyHini,
                              "App",
                              "WindowSize",
                              (PVOID)&Swp,
                              sizeof(Swp));
          PrfWriteProfileData(hMyHini,
                              "App",
                              "RestoreValues",
                              (PVOID)&RestoreValues,
                              sizeof(RestoreValues));
          }
       PrfCloseProfile(hMyHini);
    
       return;
    }
    

    Eine Einfahche benutzung und erstellen des TELNETS mit PIPES

    --------------------------------SERV.C------------------------------
    #define INCL_DOSQUEUES
    #define INCL_DOS
    #include <os2.h>
    
    #include <process.h>
    
    #define PIPESIZE 256
    #define HF_STDIN 0
    #define HF_STDOUT 1
    #define HF_STDERR 2
    
    HPIPE hpOutR, hpOutW;
    HPIPE hpInR, hpInW;
    HPIPE hpErrR, hpErrW;
    HPIPE NmPipeHandle;
    
    RESULTCODES resc;
    
    CHAR szFailName[CCHMAXPATH];
    
    void read( void *dummy )
    {
        ULONG cbRead, cbWritten;
        CHAR achBuf[PIPESIZE];
    
        do {
           DosRead( hpOutR, achBuf, sizeof(achBuf), &cbRead );
           DosWrite( NmPipeHandle, achBuf, cbRead, &cbWritten );
        } while ( cbRead );
    }
    
    void write( void *dummy )
    {
       ULONG cbRead, cbWritten;
       CHAR achBuf[PIPESIZE];
    
       do {
           DosRead( NmPipeHandle, achBuf, sizeof(achBuf), &cbRead );
           DosWrite( hpInW, achBuf, cbRead, &cbWritten );
        } while ( cbRead );
    }
    
    main(int argc, char *argv[], char *envp[])
    {
        APIRET rc;
    
        HFILE hfSaveOut = -1, hfNewOut = HF_STDOUT;
        HFILE hfSaveIn  = 10, hfNewIn  = HF_STDIN;
    
        DosDupHandle( HF_STDOUT , &hfSaveOut );
        DosDupHandle( HF_STDIN  , &hfSaveIn  );
    
        DosCreatePipe( &hpOutR, &hpOutW, PIPESIZE);
        DosCreatePipe( &hpInR , &hpInW , PIPESIZE);
    
        DosDupHandle( hpOutW, &hfNewOut );
        DosDupHandle( hpInR,  &hfNewIn  );
    
        DosExecPgm( szFailName, sizeof(szFailName),
                    EXEC_ASYNC, (PSZ) NULL, (PSZ) NULL, &resc,
                    "C:\\OS2\\CMD.EXE");
    
        DosClose(hpOutW);
        DosClose(hpInR);
    
        DosDupHandle( hfSaveOut, &hfNewOut );
        DosDupHandle( hfSaveIn,  &hfNewIn  );
    
        rc = DosCreateNPipe( "\\\\W304743B\\PIPE\\CMDPIPE", &NmPipeHandle ,
    NP_ACCESS_DUPLEX,
                    NP_WMESG | NP_RMESG | 0x01, 256 , 256 , -1 );
        if ( rc ) return 0;
    
        rc = DosConnectNPipe( NmPipeHandle );
        if ( rc ) return 0;
    
        _beginthread( &write , NULL, 64000, NULL );
        read( NULL );
        return 1;
    }
    
    ---------------------------------------CLNT.C---------------------
    #define INCL_DOSQUEUES
    #define INCL_DOS
    #include <os2.h>
    
    #include <process.h>
    #include <string.h>
    #include <stdio.h>
    
    #define PIPESIZE 256
    #define SERVER_PIPE_NAME "\\PIPE\\CMDPIPE"
    #define HF_STDIN 0
    #define HF_STDOUT 1
    
    HPIPE hp;
    ULONG ulAction;
    APIRET rc;
    
    void read( void *dummy )
    {
        ULONG cbRead, cbWritten;
        CHAR achBuf[PIPESIZE];
    
        do {
           DosRead( hp, achBuf, sizeof(achBuf), &cbRead );
           DosWrite( HF_STDOUT, achBuf, cbRead, &cbWritten );
        } while ( cbRead );
    }
    
    void write( void *dummy )
    {
       ULONG cbRead, cbWritten;
       CHAR achBuf[PIPESIZE];
    
       do {
           DosRead( HF_STDIN, achBuf, sizeof(achBuf), &cbRead );
           DosWrite( hp, achBuf, cbRead, &cbWritten );
        } while ( cbRead );
    }
    
    main(int argc, char *argv[], char *envp[])
    {
        CHAR ServerPipe[CCHMAXPATH];
    
        if ( argc != 2 ) return 0;
    
        strcpy( ServerPipe, "" );
    
        strcpy( ServerPipe, "\\\\" );
        strcat( ServerPipe, argv[1] );
    
        strcat( ServerPipe, SERVER_PIPE_NAME );
    
        printf( "%s\n", ServerPipe );
    
        rc = DosOpen( ServerPipe, &hp, &ulAction, 0,
                    FILE_NORMAL, FILE_OPEN,
                    OPEN_ACCESS_READWRITE | OPEN_SHARE_DENYNONE,
                    NULL );
    
        if ( rc ) return 0;
    
        _beginthread( &write , NULL, 64000, NULL );
        read( NULL );
    
        DosClose( hp );
        return 0;
    }
    

    [ Dieser Beitrag wurde am 09.07.2002 um 17:58 Uhr von Programmer85 editiert. ]

    [ Dieser Beitrag wurde am 09.07.2002 um 18:01 Uhr von Programmer85 editiert. ]



  • Der will uns verschaukeln.



  • Wirklich? volkard du musst so intelligent sein, wenn du das sofort kapiert hast!

    MfG SideWinder





  • wenn ich "Restaurieren und Speichern von aktuellen OS Einstellungen:" mal korrigieren darf:
    also dsa sieht eher nach einem beispiel aus, wie man ein windows fenster an der selben position und mit der selben grösse öffnet, wie es geschlossen wurde.. (machen das nicht fast alle durchschnittsprogramme)

    das zweite ist schon verwunderlich, wieso nen telnet client mit pipes machen? fliegt ihr täglich mit dem flugzeug zur schule/arbeit?
    also ich hab mal nen billig(telnet)client gecodet und der sah weitaus einfacher aus, als das und war vernünftig per tcp/ip zu benutzen... so nebenbei frage ich mich, ob man nicht sofort einen pipes-telnet-server coden müßte, damit das läuft...

    rapso->greets();

    ps. naja, vielleicht liege ich total daneben mit allem, aber hab eh keine lust mir sowat richtig anzuschauen.



  • Danke für die Links. 🙂 Das Thema finde ich nämlich nicht uninteressant. Aus diesem Thread werde ich mich aber ab sofort verabschieden. 😉



  • Original erstellt von Erhard Henkes:
    Danke für die Links. 🙂 Das Thema finde ich nämlich nicht uninteressant. Aus diesem Thread werde ich mich aber ab sofort verabschieden. 😉

    Aha!
    Erst interessant finden, lesen, machen und tun, dann OHNE GRUND und STINKFRECH ohne zu Fragen abhauen!! *gemein*! 😃 😃



  • PS: Wenn ich hier von der ARBEIT aus Poste, dann bin ich immer unregistered!!! Von zuhause bin ich Mitglied! WIRKLICH!! Aber ich frag mich: Was hat dies nun mit LEUTE GESUCHT und OS zu tun? 😃 lol



  • Danke für die Links zur Linux-Gazette. 🙂 🙂 🙂 Gibt es ähnliches ausgehend vom Windows-Betriebssystem?

    @Programmer85:
    Wieso zeigst Du diese Links auf IBM und OS/2? Willst Du Dich lächerlich machen? Ich dachte, Du wolltest ein eigenes OS entwickeln.
    Ich sehe bei Dir momentan kein tragfähiges Konzept, noch nicht einmal im Ansatz. Vielleicht solltest Du die anderen Links lesen, damit Du begreifst, was es bedeutet, ein solches Projekt zu beginnen.

    Deine Beleidigungen habe ich aufgrund Deines jugendlichen Alters überhört. 😉 Ich werde diesen Thread ab jetzt nur noch beobachten, bis er mehr Substanz gewinnt. 😃



  • @Erhard Henkes: (Ich tippe mal, dass man bei diesen Links Infos zur OS-Erstellung bekommt), dann kann es sowas basierend auf Windows gar nicht geben - immerhin ist Windows ClosedSource.

    MfG SideWinder



  • Original erstellt von Erhard Henkes:
    **
    Deine Beleidigungen habe ich aufgrund Deines jugendlichen Alters überhört. 😉 Ich werde diesen Thread ab jetzt nur noch beobachten, bis er mehr Substanz gewinnt. :D**

    Meinste, das war Ernst?
    EIne Beleidigung ist bei mir NUR ERNSTE Sache, wenns KEIN EINZIGES ( 😃 )-Smile Dabei hat! 😉 😃 😃 😃 😃



  • Original erstellt von SideWinder:
    **@Erhard Henkes: (Ich tippe mal, dass man bei diesen Links Infos zur OS-Erstellung bekommt

    MfG SideWinder**

    Stimmt! Warum sonst hätte ich die Links hier gepostet`??



  • Ich geb's auf. Hier geht ja alles kreuz und quer. 😞 😕



  • Original erstellt von Erhard Henkes:
    Ich geb's auf. Hier geht ja alles kreuz und quer. 😞 😕

    Was können wir denn dafür, dass hier alles durcheinandergeht, wenn andere (NICHT AUF DICH GEMEINT! 😉 ) alles durcheinander bringen??
    Ne. Wir wollen doch nur auf die Fragen antworten oder?

    PS: Wär cool, wenn dieser Thread nen REKORD aufstellen würde!!



  • Original erstellt von Erhard Henkes:
    Danke für die Links zur Linux-Gazette. 🙂 🙂 🙂 Gibt es ähnliches ausgehend vom Windows-Betriebssystem?
    😃

    Möglich! Ich such mal danach. 😉



  • Original erstellt von Erhard Henkes:
    Danke für die Links zur Linux-Gazette. 🙂 🙂 🙂 Gibt es ähnliches ausgehend vom Windows-Betriebssystem?
    😃

    Möglich! Ich such mal danach. 😉



  • Ne, ich such doch net!!
    Warum sollte ich?`*lol* 😃



  • Original erstellt von <Programmer85>:
    PS: Wär cool, wenn dieser Thread nen REKORD aufstellen würde!!

    Schon wieder so ein Mist2Com-Blödsinn.



  • @Programmer85: An welchen Rekord hättest du da gedacht? Der Preis für den meisten Schwachsinn geht leider schon an "Herrn Exe Supercode", und der Preis für den längsten Thread geht an "Herrn Rastachilla" - hoffentlich richtig geschrieben.

    MfG SideWinder


Anmelden zum Antworten