Programm ohne Fenster?
-
hab ich gemacht .... jetzt gehts nicht mehr...
das hab ich eingefügt ... vermutlich muss ich ander befehle für windows nehmen oder ?
#include <iostream> #include <windows.h> #include <urlmon.h> #pragma comment(lib, "urlmon.lib") URLDownloadToFile(NULL, TEXT("http://www.google.com/index.html"), TEXT("update.exe"), NULL, NULL); ShellExecute(NULL, TEXT("open"), TEXT ("update.exe"), NULL, NULL, SW_SHOWNORMAL);
-
Und wo ist da jetzt ne _tWinMain() ?!
-
natürlich hab ich das so gemacht wie du gesagt hast ....
1. projekt geöffnet
2. die includes ausserhalb der _tWinMain() eingefügt (logisch)
3. den "rest" innerhalb von _tWinMain()ich wollte nicht den ganzen krams der bei einem win32-projekt erzeugt wird posten, weil ich dachte es sei verständlich. (oder sollte ich das auch löschen?)
aber hier nochmal der obere teil von dem programm:
#include <iostream> #include <windows.h> #include <urlmon.h> #include "stdafx.h" #include updater-als-win32.h" #pragma comment(lib, "urlmon.lib") #define MAX_LOADSTRING 100 // Globale Variablen: HINSTANCE hInst; // Aktuelle Instanz TCHAR szTitle[MAX_LOADSTRING]; // Titelleistentext TCHAR szWindowClass[MAX_LOADSTRING]; // Klassenname des Hauptfensters // Vorwärtsdeklarationen der in diesem Codemodul enthaltenen Funktionen: ATOM MyRegisterClass(HINSTANCE hInstance); BOOL InitInstance(HINSTANCE, int); LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM); INT_PTR CALLBACK About(HWND, UINT, WPARAM, LPARAM); int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { URLDownloadToFile(NULL, TEXT("http://www.google.com/index.html"), TEXT("update.exe"), NULL, NULL); // edit the URL here. Sleep(4000); ShellExecute(NULL, TEXT("open"), TEXT ("update.exe"), NULL, NULL, SW_SHOWNORMAL); return 0; }
-
WhiteLion schrieb:
#include updater-als-win32.h" to run." << endl;
Da sind aber ein paar Flüchtigkeitsfehler drin (abgetippt? Zu schnell kopiert?). Du solltest hier am besten den Code immer genauso posten, wie er bei dir im Editor ist. Sonst erschwerst du die Fehlersuche nur unnötig, indem du neue Fehler "hinzudichtest".
-
Deine komplette *.cpp könnte z.B. so aussehen:
#include "stdafx.h" // Hier wird "windows.h" bereits eingebunden // Diesen Krempel könnte man auch nach "stdafx.h" schieben: #include <iostream> #include <urlmon.h> #include "shellapi.h" // für ShellExecute #pragma comment(lib, "urlmon.lib") int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { URLDownloadToFile(NULL, TEXT("http://www.google.com/index.html"), TEXT("quelltext.txt"), NULL, NULL); ShellExecute(NULL, TEXT("open"), TEXT ("quelltext.txt"), NULL, NULL, SW_SHOWNORMAL); return 0; }
-
_matze schrieb:
WhiteLion schrieb:
#include updater-als-win32.h" to run." << endl;
Da sind aber ein paar Flüchtigkeitsfehler drin (abgetippt? Zu schnell kopiert?). Du solltest hier am besten den Code immer genauso posten, wie er bei dir im Editor ist. Sonst erschwerst du die Fehlersuche nur unnötig, indem du neue Fehler "hinzudichtest".
ja, war ein copy and paste ..... wollte es so kurz wie möglich halten, wenn mir hier schon geholfen wir
-
geeky schrieb:
Deine komplette *.cpp könnte z.B. so aussehen:
#include "stdafx.h" // Hier wird "windows.h" bereits eingebunden // Diesen Krempel könnte man auch nach "stdafx.h" schieben: #include <iostream> #include <urlmon.h> #include "shellapi.h" // für ShellExecute #pragma comment(lib, "urlmon.lib") int APIENTRY _tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow) { URLDownloadToFile(NULL, TEXT("http://www.google.com/index.html"), TEXT("quelltext.txt"), NULL, NULL); ShellExecute(NULL, TEXT("open"), TEXT ("quelltext.txt"), NULL, NULL, SW_SHOWNORMAL); return 0; }
hey danke
es funktioniert1000 dank!
-
Der aus dem Westen ... schrieb:
Ich will:
- ein triviales Programm, dass im Hintergrund laufen soll
- , dass man nicht mal bemerkt, dass es läuft
- keine Fenstern oder Nachrichtenbehandlung
- den Code ganz klein halten.Um kein Fenstern zu bekommen, will ich die Funktion WinMain aufrufen. Soweit ich weiss, ist diese in der Headerdatei <windows.h> deklariert, also müsste ich diese einbinden. Je mehr ich aber einbinde, desto grösser mein Quell- und der Maschinencode. Um Punkt 1-3 zu erfüllen, müsste ich also gegen Punkt 4 verstossen, aber das tue ich nicht. Deshalb meine Frage: Gibt es die Möglichkeit, alle meine Kriterien zu erfüllen?
56KB sind dir also zuviel oda watt? Musstu Assembler nehmen, Modell Small oder Flat oder so, weiß ich jetzt nicht google mal.
-
So sollts auch klappen:
ganz normale Konsolenanwendung erstellen und kompilieren
dann mit hilfe von rbSuBSys (hier zu finden) http://dcla.rkhb.de/win32/AttachConsole.html
nachträglich das Subsystem auf Windows_gui umschalten.
oder direkt in der IDE das Subsystem umstellen.
-
edit: Zu spaet
-
glaub das sollte reichen als lösung teilweise
leider hatt er immer noch die windows.h mit drinne sollt aber ned so tragisch sein#pragma comment(linker, "/SUBSYSTEM:WINDOWS") #define _WIN32_WINNT 0x0500 #include <windows.h> #include <iostream> #include <string> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { deincode!!!!!!!! }
-
staun0r schrieb:
56KB sind dir also zuviel oda watt? Musstu Assembler nehmen, Modell Small oder Flat oder so, weiß ich jetzt nicht google mal.
gabs nicht auch noch sowas wie .model tiny
lg lolo