C-Programm als Hintergrundprozess



  • moin leute,

    ich hab mich grad mal kurz in google umgeschaut, hab aber nix brauchbares gefunden, also wollte ich mal hier fragen:

    wie kann ich ein c-programm als hintergrundprozess laufen lassen? d.h. ich will es beim pc in den autostart legen und es soll dann aber nicht gesehen werden...

    geht sowas in c? wenn ja: wie?

    wär cool, wenn ihr mir da helfen könntet,
    danke schonmal im voraus

    mfg
    Pyro



  • ^^unter windoofs?
    falls ja, mach eine sogenannte 'win32' anwendung, dabei geht keine konsole auf und fenster auch nur, wenn du absichtlich welche erstellst.
    ansonsten google nach 'hide console'.
    🙂



  • ja, soll auf winxp laufen...

    kann ich da nicht einfach im code was einbinden, dass er das verstecken soll?^^



  • so etwa:

    HWND hide (void)
    {
      wchar_t str[MAX_PATH];
      HWND hwnd;
      GetConsoleTitle ((wchar_t*)str, MAX_PATH);
      hwnd = FindWindow (NULL, str);
      if (hwnd)
        ShowWindow (hwnd, SW_HIDE);
      return hwnd;
    }
    
    // test
    void main (void)
    {
      HWND hwnd = hide();
      MessageBox (0, L"click to show", L"console hidden", MB_OK);
      ShowWindow (hwnd, SW_SHOW);
    }
    

    🙂



  • sieht schonmal ganz gut aus, vielen dank schonmal:)

    aber paar fehler hauts mir noch raus... sorry, wenn das irgendwelche leichten sachen sind, aber ich progg c nur so nebenher seit ca einem jahr (in der schule gelernt)

    Fehler:
    in function 'hide':
    [Warning] passing arg 1 of 'GetConsoleTitleA' from incompatible pointer type
    [Warning] passing arg 2 of 'FindWindowA' from incompatible pointer type
    in function 'main':
    [Warning] return type of 'main' is not 'int'
    Permission denied
    ld returned 1 exit status

    paar konnt ich schon rausmachen und das mit dem main is not int bekomm ich auch noch hin^^... der rest sagt mir net all zu viel...



  • ;fricky schrieb:

    so etwa:

    HWND hide (void)
    {
      wchar_t str[MAX_PATH];
      HWND hwnd;
      GetConsoleTitle ((wchar_t*)str, MAX_PATH);
      hwnd = FindWindow (NULL, str);
      if (hwnd)
        ShowWindow (hwnd, SW_HIDE);
      return hwnd;
    }
    
    // test
    void main (void)
    {
      HWND hwnd = hide();
      MessageBox (0, L"click to show", L"console hidden", MB_OK);
      ShowWindow (hwnd, SW_SHOW);
    }
    

    🙂

    ich ändere es mal ab...

    HWND hide (void)
    {
      char str[MAX_PATH];
      HWND hwnd;
      GetConsoleTitle ((char*)str, MAX_PATH);
      hwnd = FindWindow (NULL, str);
      if (hwnd)
        ShowWindow (hwnd, SW_HIDE);
      return hwnd;
    }
    
    // test
    int main (void)
    {
      HWND hwnd = hide();
      MessageBox (0, "click to show", "console hidden", MB_OK);
      ShowWindow (hwnd, SW_SHOW);
      return 0;
    }
    

    ^^so müsste es auch mit mingw gehen.
    🙂



  • ok, schon fast^^

    jetzt gibts nur noch 2 fehler:)

    1. Permission denied (hatte ich noch nie in c oO... was sagt das aus?)
    2. Id (oder ld) returned 1 exit status

    noch ne idee?



  • beende mal die EXE bevor du neu kompilierst 😉



  • ah, ok, läuft, besten dank:)

    wenns noch mehr fragen gibt melde ich mich einfach bei euch^^...



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum WinAPI verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten