Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Prog usichtbar starten

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.02.2003, 17:38 Uhr
~Lutz
Gast


WIe kann ich mein Programm ganz unsichbar starten (ohne das der dialog kurtz zu sehen ist usw.)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.02.2003, 18:29 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
Konsoleapp. schreiben und als Service starten.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.02.2003, 21:59 Uhr
~Lutz
Gast


Wollte das aber über Dialog laufen lassen geht das auch?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.02.2003, 22:28 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Lutz,

C++:
void CTestApp::HideApp(bool bHide)
{
    typedef DWORD (WINAPI *fp_RegServProc) (DWORD,DWORD);
    fp_RegServProc pRegisterServiceProcess = NULL;
    pRegisterServiceProcess = (fp_RegServProc) GetProcAddress
                  (GetModuleHandle ("KERNEL32.dll"),"RegisterServiceProcess");
    pRegisterServiceProcess (0,bHide);
}


Und in InitInstance()


C++:
BOOL CTestApp::InitInstance()
{
    AfxEnableControlContainer();
    HideApp(true);
        ........
        ........
}



Funktioniert NICHT auf NT Systemen, da mußt Du die MSGina.dll verbiegen!
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe

Dieser Post wurde am 13.02.2003 um 22:29 Uhr von Uwe editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
14.02.2003, 00:07 Uhr
~lutz
Gast


also bei nt system nich KERNEL32.dll sondern MSGina.dll oder wie?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
14.02.2003, 15:23 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Lutz,
Nein. Ich denke mal es geht um so etwas wie ein KeyboardHook. Deiner App. kannst Du ja sagen (ShowWindow()) ob ein Fenster erzeugt werden soll oder nicht. Im TaskManager von Windows ist Deine Anwendung dann aber noch sichtbar. Bei Win9x meldest Du Deine Anwendung als Service an, welche ja dort nicht direkt sichtbar sind. Anders bei NT-Systemen, dort wird Deine App. auf alle Fälle bei den Prozessen aufgelistet. Ein verstecken ist dort nicht möglich. Also kannst Du nur verhindern das der User den TaskManager öffnet (was jedoch reichlich irre ist). Dazu kann man eine Dll schreiben, welche die MsGina.dll ersetzt und welche dieses eben unmöglich macht.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
14.02.2003, 17:22 Uhr
~Lutz
Gast


Ja aber wenn ich das mit showWindows mache dan sieht man bei start ganz kurtz das fenster
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
14.02.2003, 20:45 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo Lutz,
dann erzeug z.B. Deinen Dialog mit

C++:
/*CTestDlg dlg;
    m_pMainWnd = &dlg;
    int nResponse = dlg.DoModal();
    if (nResponse == IDOK)
    {
        // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
        //  Dialogfelds über OK zu steuern
    }
    else if (nResponse == IDCANCEL)
    {
        // ZU ERLEDIGEN: Fügen Sie hier Code ein, um ein Schließen des
        //  Dialogfelds über "Abbrechen" zu steuern
    }

    // Da das Dialogfeld geschlossen wurde, FALSE zurückliefern, so dass wir die
    //  Anwendung verlassen, anstatt das Nachrichtensystem der Anwendung zu starten.
    return FALSE;*/

    CTestDlg* dlg = new CTestDlg;
    m_pMainWnd = dlg;
    dlg->Create(IDD_TEST_DIALOG);
    return true;


Mach den Haken "Sichtbar" bei den Eigenschaften des Dialoges heraus. Zusätzlich OnCancel mit DestroyWindow() überschreiben, da ja jetzt ein nichtmodaler Dialog erzeugt wird. Zusätzlich noch

C++:
void CTestDlg::PostNcDestroy()
{
    PostQuitMessage(0);
    delete this;
}


implementieren.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
14.02.2003, 21:23 Uhr
~Lutz
Gast


Cool Danke funktioniert Super.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: