Per Parameter die Exe-Datei anweisen, dass das Fenster nicht geöffnet werden soll?
-
Ja, funktioniert genau wie in Java.
Im Builder werden aber immer alle Fehlermeldungen angezeigt. Die musst das Programm manuell z.B. aus dem Explorer heraus starten, um zu sehen, ob es funktioniert.
-
Die Anwendung wird aus der Konsole heraus gestartet, damit ich den Parameter anhängen kann. Trotzdem kommt die Fehlermeldung.
-
Ins blaue hinein raten bringt nichts. Poste am besten mal ein wenig Quellcode.
-
Die WinMain hat folgendes:
try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->ShowMainForm = false; Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } catch (...) { try { throw Exception(""); } catch (Exception &exception) { Application->ShowException(&exception); } } return 0;und der Event OnFormCreate hat
if(ParamStr(1) == "-nowindow") { try { ShowMessage(AnsiString(ParamStr(1))); PCWatchVorbereiten(); delete(this); } catch(EAccessViolation &e) { // nichts tun } } else { this->Show(); }
-
so habe das Ganze mal bei mir ein wenig geändert und compiliert:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); ShowWindow(Application->Handle, SW_HIDE); } catch (Exception &exception) { Application->ShowException(&exception); } ...und
void __fastcall TForm1::FormCreate(TObject *Sender) { if(ParamStr(1) == "test") { try { ShowMessage(AnsiString(ParamStr(1))); //DoSomething() Application->Terminate(); } catch(...) { } } else Form1->Visible = true; }Funktioniert fehlerfrei und die Hauptform wird nicht angezeigt.
-
Entschuldige, dass ich erst so spät antworte.
Ich habe Deine Version übernommen und es funktioniert auch.
Allerdings flackert die Anwendung kurz auf und wird erst dann beendet.
Woran kann das liegen?
-
So jetzt flackert nichts mehr auf. Optional kannst Du auch Top und Left der Form auf -5000 setzen
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { ShowWindow(Application->Handle, SW_HIDE); Application->Initialize(); Application->ShowMainForm = false; Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); ShowWindow(Application->Handle, SW_HIDE); } ...
-
Dank Dir für die Hilfe.
-
Gerne wieder.
-
Also, ich weiß nicht, was ihr da macht. Bei mir geht folgendes ohne Probleme:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { if( ParamStr(1) != "-nowindow" ) { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } } catch (Exception &exception) { Application->ShowException(&exception); } return 0; }