Archiv verlassen und diese Seite im Standarddesign anzeigen : 4 sehr wichtige fragen
Hi leute,
hab schon in einem anderen Forum diese Fragen gestellt, jedoch konnte mir dort keiner helfen.
1. Ist es möglich eine WIN32- Applikation ohne Konsole zu starten, d.h. im Hintergrund aber ohne Fenster??
Falls es geht, dann bitte antworten !
2. Wie kann ich mit C++ die Größe einer Datei bestimmen??
3. Werden events, wie konkret das kopieren einer Datei irgendwo gespeichert, so dass ich ohne größere Überwachung die Aktion mitbekomme??
4. Fällt einem noch eine andere Möglichkeit ein, dass eine *.exe von einer CD automatisch gestartet wird??
Ich dachte an Autorun, jedoch kann man diese Funktion leider abschalten.
zu 1. klar gehts :) daemon betrieb.,. frag mich jetzt nicht genau wie, dazu bin ich zu sehr neuling in sachen c++ und die enwicklungsumgebung...
zu2. indem du dir die header selber schreibst und dir ausmalst was nach dem linken alles in die binary kommt.. also ob funktionen inline geschrieben wurden oder nicht usw...
kannst es leider nur abschätzen dierekt auf eine konkrete grösse compilen kann man komfortabel nicht soweit ich weiss
zu 3. liegt am OS... ich glaub mal das windoof so etwas hat.. gerade bei kleinigkeiten wie kopieren die man mit Strg+Z im explorer auch wieder rückgängig machen kann...
zu 4. Also wenn du einem eine CD gibts und du zu 100% willst das eine bestimme anwengung gestartr wird, dann muss ich dich enttäuschen... wär ja noch schöner wenn das bereitstellen einer datei die zwingende ausführung zur folge hätte!!!
für sowas gibts autorun ..
hoffe ich hab dir zumindest etwas geholfen... ;)
ABER da fällt mir ein es gibt ja noch ettliche bugs in windoof..
zB ist die sicherheitsstufe des IE so scheisse für die lokalen seiten eingestellt, das du über ActiveX alles ausführen darfst was du möchtest..
bastel dir also ne index.htm mit der man auf der CD rumsurfen soll, und da dann halt die anwendung mit reinballern...
zur dateigrösse... kannst sie höchstens noch mit datenmüll füllen bis die grösse einigermassen hinhaut... und kleiner bekommst du sie nur wenn du die vorcompilierten header wegnimmst... und selber schreibst..
dann viel glück beim ficken deiner opfer :P
zu 4. eigentlich war mir klar, dass es keine andere Möglichkeit gibt.
Habe einfach gehofft, dass einer vielleicht eine alternative kennt.
bei 2. meinte ich eigentlich die Größe einer vorhandenen Datei zu bestimmen, wie z.B. einer *.mp oder einer *.exe
Die Antwort hat mir nicht wirklich weiter geholfen, trotzdem danke ich für die Bemühung :]
zu 2. du musst mit createfile ein handle anfordern und danach
GetFileSize nehmen
oder
du machst FindFirstFile
beides sind api funktionen, schau mal in sdk darueber nach und frag wenn du dann noch fragen hast!
3. Werden events, wie konkret das kopieren einer Datei irgendwo gespeichert, so dass ich ohne größere Überwachung die Aktion mitbekomme??
naja dafuer gibt es ein paar apis, ich kann dir heute abend die namen raussuchen!
----------------------------------------------
was bastelst du eigenlich!! ?( ?( ?(
Zu 1.: Siehe CreateProcess -> STARTUPINFO -> dwFlags -> STARTF_USESHOWWINDOW.
zu 1.
oder mit ShellExecute
HINSTANCE ShellExecute(
HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd // SW_HIDE verhindert das anzeigen des Fensters
);
schau mal in die MSDN für ShellExecute().
da bekommst du alle infos
Ciao TinTin
Felix Kaiser
01.07.2003, 20:21
Wenn du keine Konsole willst, compiliere dein Programm als GUI Anwendung, dann wird keine erzeugt und wenn du kein HWND allozierst, erscheint auch nichts auf dem Bildschirm. Oder wenn du die Konsole nur anfangs zur Ausgabe benötigst, verberge sie mit FreeConsole().
Firewing
04.07.2003, 13:03
Original geschrieben von TronXL
Hi leute,
hab schon in einem anderen Forum diese Fragen gestellt, jedoch konnte mir dort keiner helfen.
1. Ist es möglich eine WIN32- Applikation ohne Konsole zu starten, d.h. im Hintergrund aber ohne Fenster??
Falls es geht, dann bitte antworten !
2. Wie kann ich mit C++ die Größe einer Datei bestimmen??
3. Werden events, wie konkret das kopieren einer Datei irgendwo gespeichert, so dass ich ohne größere Überwachung die Aktion mitbekomme??
4. Fällt einem noch eine andere Möglichkeit ein, dass eine *.exe von einer CD automatisch gestartet wird??
Ich dachte an Autorun, jedoch kann man diese Funktion leider abschalten.
zu 1. ka
zu 2. Datei öffnen, byteweise durch die Datei gehen und dabei einen counter mitzählen
zu 3. ka
zu 4. nein, nicht möglich, autorun ist die einzige möglichkeit (gott seis gedankt)
StoreMaster
04.07.2003, 13:23
@Firewing
zu 2.: gehts vielleicht noch ein bisschen komplizierter?
so isses besser:
FILE *stream;
stream = fopen("blabla", "r");
fseek(stream, 0, SEEK_END);
int end = ftell(stream);
fclose(stream);
die variable end enthält die größe der datei in bytes.
Das ist POSIX (nicht ANSI) C, aber MS sagt ja das es POSIX kompatible sei (na mal schaun):
#include <sys/stat.h>
/* ... */
struct stat datei_status;
stat("dateiname", &datei_status);
printf("dateigröße (in bytes): %d\n",
datei_status.st_size);
/* ... */
http://www.bigbiz.com/cgi-bin/manpage?2+stat
Firewing
04.07.2003, 16:06
Original geschrieben von StoreMaster
@Firewing
zu 2.: gehts vielleicht noch ein bisschen komplizierter?
frag lieber nicht :D
vBulletin® v3.8.6, Copyright ©2000-2012, Jelsoft Enterprises Ltd.