@Much2k
Das errorlevel kannst du in einer Batch-Datei auswerten. Ungefähr so:
rem Batch Datei für Ping
rem %1 = IP-Adresse (Übergabeparameter)
call ping %1 -n 1
rem immer mit dem höchsten errorlevel beginnen, sonst klappts nicht
if errorlevel=2 goto ERG2
if errorlevel=1 goto ERG1
rem Code wenn kein errorlevel zutrifft
...
ERG2:
rem Code wenn errorlevel=2
...
ERG1:
rem Code wenn errorlevel=1
...
wo soll er denn durchbrowsen?
solls ein webbrowser werden, ein Festplattenbrowser ála norton commander oder ein duschbrowser?
afaik gibt es auch ne curses für DOS (zumindest bei den gnu-ports). da kannst Du auch schon einiges mit anfangen..
cYa
DjR
znobodz schrieb:
und ich arbeite mit eine win32 Konsolen applikation!!!!
Und du meinst allen Ernstes, eine DOS-Startdiskette kann win32-Anwendungen ausführen?
irgendwer schrieb:
Hi!
Wie kann ich in der Konsole auf eine accept() Meldung Reagieren?
Unter Windows gibt es ja dazu die Nachrichten.
du befindest dich in der konsole und wirst wahrscheinlich singlethreaded und damit prozedural arbeiten. da gibt es keine messages
somit gibt es keine accept meldung. accept ist solange blockend, bis jemand verbindet und dann gehts weiter
irgendwer schrieb:
Danke!
Mein Code sieht allerdings so aus:
for (;;) // Mainloop
{
if (!kbhit())
{
char c = getch();
// usw...
}
}
wer
Okay das sieht mir sehr nach Spiel aus, dass auch Arbeiten muss wenn der User nichts eingibt: Dann ist kbhit() okay - aber bitte irgendwo eine Framerate-Schleife einbauen - sonst läuft es auf manchen Rechnern schneller als auf anderen!
MfG SideWinder
speziell für WindowsKonsolen gibt es
den APIBefehl :
SetConsoleCtrlHandler
mit dessen Hilfe kann man auf das schließen des Fensters reagieren und so noch den speicher aufräumen.
Das funktioniert allerdings nur, wenn der Benutzer das Schließen einleitet.
Ein Aufruf von exit, ExitProcess und return bewirkt in dieser Sache nichts.
Schriftfarbe, etc. muss man nun natürlich auch anders ändern.
SetTextColor(hdc,0x00BBGGRR);
SetBkColor(hdc,0x00BBGGRR);
BB kann von 00 bis FF gehen und steht für blau.
GG für grün.
RR für rot.
Alles WinAPI oder was?
MfG SideWinder
Farbe -> siehe FAQ "Improved Console"
Stil -> ändern des Registrykeys der die Konsolenschriftart enthält, unter Win2k ist das:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\MS-DOS Emulation\Font
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Console\TrueTypeFont
(wie das geht siehe WinAPI-Forum). Ich glaube #2 ist die richtige - achja die Schriftart muss natürlich im System vorhanden sein!
Die Schriftgröße zu ändern habe ich bisher ohne Grafikmodus (siehe Grafik-Forum -> Allegro) noch nicht geschafft.
Bibliothek (also Header) siehe für 1 in der FAQ und für 2 ist es die <windows.h>.
MfG SideWinder
@DrGreen
Ist ja auch klar. DOS ist im Normalfall schließlich nicht multithreadfähig. Du könntest das Programm höchstens durch einen Interrupt immer wieder aufrufen lassen, um dadurch das Abarbeiten im "Hintergrund" zu ermöglichen. Aber ob das in Windows dann auch funktioniert??
Hi.
Was du da beschreibst (wenn ich es recht verstehe) gibt es schon.
Nennt sich Disassembler (oft bestandteil von Debugger).
Damit werden die "Zeichen" in einer ausfuehrbaren Datei in Assembler Quellcode umgewandelt.
Referenzen fuer diese "Zeichen" gibt es im Internet.
Ich empfehle dir allerdings, dich erstmal ein wenig mit Asm vertraut zu machen, bevor du anfaengst in *.exe-Dateien rumzubasteln.
PS: Das ganze konzept ist leider hinfaellig, wenn das entsprechende Programm komprimiert ist. (oft der Fall)
Dann kommt beim uebersetzen der Datei in jedem Fall nur "Mist" heraus.
PPS: *.exe-Dateien o.ae. kannst du sogar mit dem Windows Text-editor oeffnen, ohne sie erst in *.txt umzubenennen. (Was natuerlich verwerflich waere - fuer sowas gibt es 'nen Hexeditor)
Herzlich Dank! Endlich funktioniert es!
Was soll ich sagen - nun ja, auf die einfachsten Dinge kommt ich halt immer nicht!
Also nochmals vielen Dank!
Ciao
shoat
Schau dir mal diesen Beitrag an:
http://www.c-plusplus.net/forum/viewtopic.php?t=39315
Das müsste dir weiterhelfen.
Das Problem liegt wohl daran, dass du die falsche Routine aufrufst, um die Maustasten abzufragen.