Zum Inhalt springen

MadMatrix

Mitglieder
  • Gesamte Inhalte

    32
  • Benutzer seit

  • Letzter Besuch

    Nie

Alle Inhalte von MadMatrix

  1. Naja, also für die beiden Entertasten gibt es nur eine Virtualkey-Konstante: VK_ENTER. Deswegen kannst du für die beiden Tasten nicht unterschiedliche Acceleratoen definieren. Aber es gibt trotzdem eine Möglichkeit, zwischen den Tasten zu unterscheiden , und zwar in der Fensterprozedur. Du reagierst in der Fensterprozedur auf die Nachricht WM_KEYDOWN. Dort überprüfst du, ob wParam == VK_ENTER. Wenn das der Fall ist, schaust du, ob im lParam das Flag KF_EXTENDED gesetzt ist. Ist auch dies der Fall, so handelt es sich um die "erweiterte" Enter-Taste, also die im NumPad-Block. Nochmal als Quellcode: LRESULT WINAPI WndProc(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam) { switch (Msg) { //... case WM_KEYDOWN: if (wParam == VK_ENTER) { if (lParam & KF_EXTENDED) // Entertaste rechts unten gedrückt else // "normale" Entertaste gedrückt } break; //... } //... } Viel Spaß beim Werkeln!
  2. Wenn ich das jetzt richtig verstanden habe, soll die Schleife while (a) { // mach irgendwas } parallel zur Windows-Nachrichten-Schleife laufen. Ertell doch einen eigenen Thread, der durch die erste Funktion gestartet wird und dann den Code der zweiten Funktion zur Ausführung hat. Um die Änderung festzustellen kannst du dann ein Event, per CreateEvent() erstellt, benutzen. Wenn du diese Schleife jedoch direkt aus der WndProc aufrufst (im selben Thread), wird dieser immer blockieren. Möglich wäre auch die Überprüfung mit einem Timer (als Workaround). Oder hab ich das jetzt falsch verstanden? Ich hoffe das dir das hilft. <FONT COLOR="#a62a2a" SIZE="1">[ 24. August 2001 15:36: Beitrag 2 mal editiert, zuletzt von MadMatrix ]</font>
  3. Klar gibt es diese Funktion schon, sogar mehrere: FileTimeToDosDate() FileTimeToSystemTime() <-- zu empfehlen Viel Spaß
  4. Die letzte Zeile deines Quellcodes ist falsch: sFreespace.Format("%d MB %d MB %d", &i64FreeBytesToCaller, &i64TotalBytes, &i64FreeBytes); Die Formatangabe %d muss zu %I64d erweitert werden, außerdem musst du Variablen selbst an Format() übergeben, und nicht ihre Addresse. Kurz gesagt: sFreespace.Format("%I64d Bytes %I64d Bytes %I64d Bytes", i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes); Das sollte funtionieren, anbei noch ein Quellcode: int drive; char szDrive[4]; char szBuffer[200]; ULARGE_INTEGER FreeBytesAvailable, TotalNumberOfBytes, TotalNumberOfFreeBytes; for( drive = 1; drive <= 26; drive++ ) { if( !_chdrive( drive ) ) { sprintf(szDrive, "%c:\\", drive + 'a' - 1 ); GetDiskFreeSpaceEx(szDrive, &FreeBytesAvailable, &TotalNumberOfBytes, &TotalNumberOfFreeBytes); TotalNumberOfFreeBytes.QuadPart = Int64ShraMod32(TotalNumberOfFreeBytes.QuadPart, 20); TotalNumberOfBytes.QuadPart = Int64ShraMod32(TotalNumberOfBytes.QuadPart, 20); FreeBytesAvailable.QuadPart = Int64ShraMod32(FreeBytesAvailable.QuadPart, 20); sprintf(szBuffer, "%I64d MB free to caller, %I64d MB total free, %I64d MB total", TotalNumberOfFreeBytes.QuadPart, FreeBytesAvailable.QuadPart, TotalNumberOfBytes.QuadPart); } } Ich hoffe, dass das dir hilfe, bis denn dann, MadMatrix
  5. Unter Windows funktioniert das über die Funktion GetFileAttributesEx() So erhälst du FILETIME Strukturen mit dem Erstellungsdatum, dem letzten Änderungsdatum, dem letzten Zugriffsdatum. Ich hoffe, das hilft dir, bis denn dann, MadMatrix
  6. Wenn das ganze lokal geschrieben werden soll, kannst du auf ... Programminstanz = (HINSTANCE)GetModuleInstance(NULL); ... ausweichen, die Funktion ist nach dem Typecast das gesuchte Äquivalent. Bis denn dann, MadMatrix
  7. Wenn die ganze Sache unter Windows laufen soll, muss du dafür sorgen, das ANSI.SYS in der CONFIG.SYS geladen wird, sonst werden die Escapesequenzen nicht übersetzt. Kleiner Auszug aus einem alten DOS 6.2-Buch: Zur Setzen der Texteigenschaften benutzt du dann folgende Sequenz: ESC[a;b;cm Mögliche Werte für Parameter a (Textatrribute): 0 Alle Atribute aus 1 Fett EIN (nur Monochrom, bei Farbmonitoren wird die Vordergrundfarbe heller) 4 Unterstreichen (nur Monochrom) 5 Blinken EIN 7 Invertierte Darstellung 8 Versteckt EIN Mögliche Werte für Parameter b (Vordergrundfarbe): 30 Schwarz 31 Rot 32 Grün 33 Gelb 34 Blau 35 Karmesinrot 36 Cyanblau 37 Weiß Mögliche Werte für Parameter c (Hintergrundfarbe): 40 Schwarz 41 Rot 42 Grün 43 Gelb 44 Blau 45 Karmesinrot 46 Cyanblau 47 Weiß In C sieht das dann so aus: ... puts("\x1B[1;31;42m"); puts("Irgendein sinnvoller Text!"); ... Dies setzt die Vordergrundfarbe auf Hellrot und die Hintergrundfarbe auf Grün. Ich hoffe, das hilft dir weiter. Bis denn dann, MadMatrix

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...