
Alle Beiträge von Guybrush Threepwood
-
windows herunterfahren lassen
Also bei mir hat`s den PC runtergefahren... Die Parameter sind für spätere evtl. Zwecke reserviert.
-
windows herunterfahren lassen
Sehr komisch. Bei ExitWindowsEx sagt GetLastError ich hätte nicht die erforderlichen Rechte und bei InitiateSystemshutdown "Zugriff verweigert". Obwohl ich beide Funktionen schon erfolgreich bei NT-Systemen benutzt habe *an Schulungen in vernetzten Computerräumen denk * ExitWindows() allerdings klappt ohne Probleme, du kannst nur keine Optionen übergeben.
-
windows herunterfahren lassen
bei InitiateSystemShutdown(9 kannst du auch direkt einen Timeout angeben. EDIT: Ups..ich wollte eigentlich keinen neuen Beitrag erstellen
-
windows herunterfahren lassen
Boardsuche
-
Frohe Weihnachten
Joa von mir auch ein frohes Weihnachten an alle:)
-
C++ Editor gesucht
Hier solltest du was hilfreiches finden. Gruß Guybrush
-
[Spoiler]Herr der Ringe 3 !!!!!!!!!
Uhoh...wenn das Saga liest:eek:
-
Tastatureingabe in DLL lesen
Hmm...dann muss ich wohl den Umweg über eine Datei gehen.
-
Star Wars: Knights of the Old Republic
Also ich war nach 25h Stunden durch, das ist zwar arg wenig, aber es hat jede Menge Spass gemacht. Außerdem werde ich es noch ein paar mal spielen um andere Wege zu gehen. Schade nur das es keinen Multiplayermodus gibt.
-
Tastatureingabe in DLL lesen
Irgendwie klappt das noch nicht so ganz wie es soll. Hier mal der DLL Code: #pragma data_seg(".SHARDAT") static HHOOK hkb=NULL; static char karte[200]; static int i=0; bool start=true; static char* lpFeld=NULL; #pragma data_seg() static HANDLE hEvent=NULL; LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode, WPARAM wParam,LPARAM lParam) { if (((DWORD)lParam & 0x40000000) &&(HC_ACTION==nCode)) { if (start) { MessageBox(0,"ok","ht",MB_OK); start=false; } if (i>=10) { MessageBox(0,"gößer","d1",MB_OK); karte[i] = 0; UnHook(); } else { BYTE ks[256]; GetKeyboardState(ks); WORD w; UINT scan; scan=0; ToAscii(wParam,scan,ks,&w,0); karte[i] = char(w); karte[i+1]='\0'; MessageBox(0,karte,"d1",MB_OK); i++; } } LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); return RetVal; } BOOL InstallHook() { char t[20]; hkb=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KeyboardProc,AfxGetInstanceHandle(),0); if (hkb == NULL) { itoa(GetLastError(),t,10); MessageBox(0,t,"ht",MB_OK); } return TRUE; } BOOL UnHook() { char t[20]; BOOL unhooked = UnhookWindowsHookEx(hkb); hEvent = OpenEvent(EVENT_ALL_ACCESS,FALSE,"PS2Kartenleser"); if (!SetEvent(hEvent)) { itoa(GetLastError(),t,10); MessageBox(0,t,"ht",MB_OK); } else { MessageBox(0,karte,"ht",MB_OK); strcpy(lpFeld,karte); } return unhooked; } HANDLE __stdcall Start(char *z) { lpFeld = z; hEvent = CreateEvent(NULL,TRUE,FALSE,"PS2Kartenleser"); if (hEvent == NULL) { MessageBox(0,"dfgbn","bnsvu",MB_OK); return false; } InstallHook(); return hEvent; } [/PHP] Wenn ich aus meiner Exe Start() aufrufe übergebe ich der Funktion einen Zeiger auf ein char Feld. Warum wird das Feld nicht in der Unhook Funktion gefüllt?
-
Tastatureingabe in DLL lesen
Hab mir das gerade mal angesehen und damit sollte es eigentlich klappen. Danke:)
-
Tastatureingabe in DLL lesen
Oh man, ich sollte echt nach Hause gehen:rolleyes: Das er mir mit dem Array immer ne leere Messagebox ausgegeben hat, lag daran das ich i direkt am Anfang um 1 erhöht habe und bestimmt immer ein Nullzeichen an erster Stelle stand. Ich erhöhe i jetzt am Ende der Funktion und es klappt Jetzt muss ich es nur noch irgendwie hinbekommen das die Funktion die den Hook setzt erst returned wenn der Hook sich beendet hat. Wäre also für Ideen dankbar, aber ich geh jetzt erstmal heim:)
-
Tastatureingabe in DLL lesen
Ich habe komischer Weise festgestellt, dass wenn ich w in einer MessageBox ausgebe, das richtige Zeichen drinsteht. Wenn ich i ausgebe steht auch die richtige Zahl drin, nur das Array Karte bleibt irgendwie leer.:confused: Achso das er nach dem 12. mal aufgehört hat lag daran das er pro Tastendruck immer 2 mal aufgerufen wurde, das kann man aber mit lParam abfangen.
-
Tastatureingabe in DLL lesen
Ich hab`s jetzt doch mal mit nem Hook probiert, allerdings hab ich noch ein paar Probleme. Also den Hook zu installieren, klappt, aber er macht nicht das was er soll. Eigentlich sollte er 20 Zeichen einlesen, sich dann beenden und die Zeichen in einer MessageBox ausgeben. Allerdings beendet er sich immer nach 12 Zeichen und zeogt eine leere Messagebox an:confused: Hier mal ein Teil des DLL Codes: // khookdll.cpp : Definiert den Einsprungpunkt für die DLL-Anwendung. // #include "stdafx.h" #include "khookdll.h" #pragma data_seg(".SHARDAT") static HHOOK hkb=NULL; static char karte[200]; static int i=0; #pragma data_seg() LRESULT __declspec(dllexport)__stdcall CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam) { if (nCode == HC_ACTION) { i++; if (i==20) { karte[i] = 0; UnHook(); } BYTE ks[256]; GetKeyboardState(ks); WORD w; UINT scan; scan=0; ToAscii(wParam,scan,ks,&w,0); karte[i] = char(w); } LRESULT RetVal = CallNextHookEx( hkb, nCode, wParam, lParam ); return RetVal; } [/PHP]
-
Tastatureingabe in DLL lesen
Hab leider noch nie etwas mit nem Hook gemacht habe und stehe etwas unter Zeitdruck...
-
Tastatureingabe in DLL lesen
Ne, da komm ich nicht dran, da ich die DLL für andere Entwickeln soll. Aber ich hatte auch schon den Verdacht das es damit etwas zu tun haben könnte. Hast du irgendeine Idee?
-
Tastatureingabe in DLL lesen
Hi, ich steh gerade irgendwie voll auf dem Schlauch:( Ich hab in einer DLL eine Funktion die die Tastatureingabe lesen und in einem Array speichern soll. Die Funktion bekommt das Windowhandle übergeben, aber irgendwas funktioniert nicht, da nur 2 von ca 148 Zeichen gelesen werden.:confused: Hier mal die entsprechende Schleife in der DLL: while(true) { if (GetMessage(&Msg,hWnd,WM_KEYDOWN,WM_KEYDOWN)) { TranslateMessage(&Msg); u++; if (u>30) { SetLastError(1460); return 0; } if(Msg.wParam==27) { SetLastError(1223); return 0; } else if (Msg.wParam > 0 && Msg.wParam < 127) { karte[i] = Msg.wParam; if(++i>iIndex) break; u=0; } else Sleep(1000); } } [/PHP] Gruß Guybrush
-
Erweiterten ASCII in Konsolenprogramm einbinden.
Das wird wohl daran liegen das cout das Format automatisch bestimmt, man kann es zwar auch irgendwie selber bestimmen, aber ich weiß aus dem Kopf nicht wie. Probier`s mal mit printf.
-
Erweiterten ASCII in Konsolenprogramm einbinden.
Ähm welcher Editor und was ist ALT? *Edit: achso du meinst die ALT-Taste* wenn du z.B. diese doppelt gemalte Ecke ausgeben willst kannst du das ganz einfach so machen: printf("%c",201); [/PHP] Gruß Guybrush
-
Headerdateien
Nicht das ich wüßte, da das normalerweise andersrum läuft: Du hast eine Funktion die du benötigst und schaust nach welche Headerdatei du dafür benötigest. Wenn du unbedingt wissen willst welche Funktionen in einer Headerdatei importiert werden, bleibt dir wohl nichts anderes übrig als selber reinzuschauen. Gruß Guybrush
-
Erweiterten ASCII in Konsolenprogramm einbinden.
Hier findest du z.B. alle Asciicodes.
-
BCD rückrechnen
Hat sich erledigt, hab nen Algorithmus: Verschlüsseln: y = (x%10) + ((x/10)%10)<<4; Entschlüsseln: x = (y>>4)*10 + y%16;
-
BCD rückrechnen
Hi, kann mir einer sagen wie ich einen BCD Wert wieder zurückrechnen kann? Gruß Guybrush
-
Star Wars: Knights of the Old Republic
Also ich hab`s auch seit gestern und bin direkt süchtig:) Allerdings muss ich sagen das es bei mir mit der Zeit nicht langsamer wird oder anfängt zu ruckeln...
-
Verzögerung im Programm (pause, delay)
Unter Windwos kannst du den Befehl Sleep() benutzen, welcher in der Windows.h steht. Unter DOS gibt es glaube ich delay() dafür.