Zum Inhalt springen

juergi66

Mitglieder
  • Gesamte Inhalte

    20
  • Benutzer seit

  • Letzter Besuch

  1. Hi, du mußt meines Erachtens das Excel Dokument wie eine Datenbank behandeln. hab hierzu mal nen Link aufgeführt, der ganz verständlich sein sollte. => http://www.codeguru.com/mfc_database/DAO_non_accessdb.shtml
  2. Hi Phoenix, das war genial. Habe von Snapshot auf Dynaset umgestellt. Jetzt funzt es. Was ist da eigentlich der Unterschied? Und nochmal danke!!!!!
  3. JA, ich noch mal. Habe das jetzt auch mal mit dem SQL - Befehl sortiert, aber das Ergebnis ist das gleiche. Irgendwann ( auffälliger Weise nach ca. 500 Datensätzen ) erhalte ich als Rückgabewert nicht mehr den letzten datensatz. Es kann doch nicht sein, daß Access nicht mit 500 Datensätzen zurecht kommt, oder? Tja manchmal gehts auch 1000 Sätze gut ,aber manchmal auch nur einen. BITTE HELFT MIR!!!! Gruß Onkel
  4. Hallo, mit beiden Funktionen speichere ich ID-TAG-Informationen in einer Access-Datenbank ab. Das hat alles ca. 500 Datensätze wunderbar geklappt. Doch auf einmal geht nichts mehr. Nach dem Schreiben der Daten in die Datenbank rufe ich die Funktion GetMaxID() auf, die mir den letzen Datensatz liefert. Dann erhält der nächste Datensatz folglich eine um eins erhöhte ID. Doch plötzlich liefert mir die Funktion GetMaxID immer die gleiche ID als Rückgabewert und dann knallts natürlich wegen doppelter ID. Die ID ist mein Primärschlüssel. Kann mir einer helfen? Das ganze lief ja eigentlich! Sehr seltsam! void CAccessMP3View::InsertDB(int iLoop) { //ID für den neuen Datensatz ermitteln long lNewID = m_pSet->GetMaxID() + 1; //Den Datensatz hinzufügen m_pSet->AddNew(); m_pSet->m_ID = lNewID; m_pSet->m_ARTIST = m_strctFuelle[iLoop].strctArtist; m_pSet->m_TITLE = m_strctFuellen[iLoop].strctTitle; m_pSet->m_ALBUM = m_strctFuellen[iLoop].strctAlbum; m_pSet->m_GENRE = m_strctFuellen[iLoop].strctGenre; m_pSet->m_YEAR = m_strctFuellen[iLoop].strctYear; m_pSet->m_PFAD = m_strctFuellen[iLoop].strctPath; //Datensatz speichern m_pSet->Update(); //Den Recordset aktualisieren; m_pSet->Requery(); } long CAccessMP3Set::GetMaxID() { //Zum letzten Datensatz gehen MoveLast(); //ID dieses Datensatzes zurückgeben return m_ID; }
  5. juergi66

    Ascii-Code

    Hi Hasi, da mußt du mich wohl falsch verstanden haben. Ich habe nichts gegen VisualStudio. Nur ich bin nicht gerade lange auf der normalen C-Schiene gefahren, sondern ziemlich schnell zur Windowsprogrammierung übergegangen. Ich benutze auch ausschließlich V-Studio, weil ich es besser finde als Borland Builder.Aber du mußt doch zugeben, daß die MFC's einem soviel Arbeit abbnehmen, daß man mit der Zeit die Grundsyntax ein bißchen vergisst und für jedes kleine Problem ne geeignete Funktion sucht. Mir gehts auf jeden Fall so.
  6. juergi66

    Ascii-Code

    Oohh, entschuldigt, daß ich mit dieser saudummen Frage eure wertvolle Zeit vergeudet habe, aber manchmal sieht man vor lauter Bäume den Wald nicht mehr. Habe das Gefühl das VisualStudio und MFC's mich verblödet haben. Hab jetzt einfach gecastet => int iAscii = (int) cBuffer (wobei cBuffer vom Typ char!!) nochmal Sorry!
  7. juergi66

    Ascii-Code

    Hi Mädels und Jungs, ich habe ein ganz banales Problem. Also, ich benötige eine Funktion(Befehl) um zu einem Character den ASCII-Code zu erhalten. Hört sich doch einfach an, oder? Ich hoffe es kann mir eine® weiterhelfen!!
  8. Bin mir nicht ganz sicher, aber wie siehts mit WriteProfileString und GetProfileString aus?
  9. Hi, arbeitest du im Großrechnerbereich? Dann wirst du wohl nicht drum rum kommen die JCL über FTP erst mal lokal abzuspeichern. Dann kannst du sie ja auslesen. Wenn du allerdings das Dataset auslesen willst weiß ich auch nicht weiter.
  10. Ihr seid mir ja Helden, natürlich darf ich das Archiv nicht öffnen, weil ich sonst an Informationen gelange, mit denen ich die Welt vernichten kann :-)) Nein, warum wohl...weil ich so schlau sein wollte, meine Dateien vorm Zugriff meines kleinen Bruders zu schützen, bei dem der Spieltrieb immer durchgeht. Hat denn keiner ne Idee!!!!!????
  11. Hi, hat schon mal einer ein Passwort geschütztes ACE-File ausgelesen. Will entpacken und hab das Passwort vergessen. THX Onkel
  12. Hi, habe dickes Problem. Ich würde mir gerne mit einem C++ Programm ( Visual Studio ) sämtliche Prozese anschauen, die gerade auf meinem Win98 laufen, also quasi genau das was man sieht, wenn man STRG+ALT+ENTF drückt.Ich habe auch folgendes in der MSDN gefunden, jedoch kriege ich das nicht ans laufen. Gehts auch einfacher oder hat einer die Lösung. Hier der Code, der in meinem Programm aber nichts anstellt ;-(( /********************* EnumProc.h *********************/ #include <windows.h> typedef BOOL (CALLBACK *PROCENUMPROC)( DWORD, WORD, LPSTR, LPARAM ) ; BOOL WINAPI EnumProcs( PROCENUMPROC lpProc, LPARAM lParam ) ; /********************* EnumProc.c (or .cpp) *********************/ #include "EnumProc.h" #include <tlhelp32.h> #include <vdmdbg.h> typedef struct { DWORD dwPID ; PROCENUMPROC lpProc ; DWORD lParam ; BOOL bEnd ; } EnumInfoStruct ; BOOL WINAPI Enum16( DWORD dwThreadId, WORD hMod16, WORD hTask16, PSZ pszModName, PSZ pszFileName, LPARAM lpUserDefined ) ; // The EnumProcs function takes a pointer to a callback function // that will be called once per process in the system providing // process EXE filename and process ID. // Callback function definition: // BOOL CALLBACK Proc( DWORD dw, LPCSTR lpstr, LPARAM lParam ) ; // // lpProc -- Address of callback routine. // // lParam -- A user-defined LPARAM value to be passed to // the callback routine. BOOL WINAPI EnumProcs( PROCENUMPROC lpProc, LPARAM lParam ) { OSVERSIONINFO osver ; HINSTANCE hInstLib ; HINSTANCE hInstLib2 ; HANDLE hSnapShot ; PROCESSENTRY32 procentry ; BOOL bFlag ; LPDWORD lpdwPIDs ; DWORD dwSize, dwSize2, dwIndex ; HMODULE hMod ; HANDLE hProcess ; char szFileName[ MAX_PATH ] ; EnumInfoStruct sInfo ; // ToolHelp Function Pointers. HANDLE (WINAPI *lpfCreateToolhelp32Snapshot)(DWORD,DWORD) ; BOOL (WINAPI *lpfProcess32First)(HANDLE,LPPROCESSENTRY32) ; BOOL (WINAPI *lpfProcess32Next)(HANDLE,LPPROCESSENTRY32) ; // PSAPI Function Pointers. BOOL (WINAPI *lpfEnumProcesses)( DWORD *, DWORD cb, DWORD * ); BOOL (WINAPI *lpfEnumProcessModules)( HANDLE, HMODULE *, DWORD, LPDWORD ); DWORD (WINAPI *lpfGetModuleFileNameEx)( HANDLE, HMODULE, LPTSTR, DWORD ); // VDMDBG Function Pointers. INT (WINAPI *lpfVDMEnumTaskWOWEx)( DWORD, TASKENUMPROCEX fp, LPARAM ); // Check to see if were running under Windows95 or // Windows NT. osver.dwOSVersionInfoSize = sizeof( osver ) ; if( !GetVersionEx( &osver ) ) { return FALSE ; } // If Windows NT: if( osver.dwPlatformId == VER_PLATFORM_WIN32_NT ) { // Load library and get the procedures explicitly. We do // this so that we don't have to worry about modules using // this code failing to load under Windows 95, because // it can't resolve references to the PSAPI.DLL. hInstLib = LoadLibraryA( "PSAPI.DLL" ) ; if( hInstLib == NULL ) return FALSE ; hInstLib2 = LoadLibraryA( "VDMDBG.DLL" ) ; if( hInstLib2 == NULL ) return FALSE ; // Get procedure addresses. lpfEnumProcesses = (BOOL(WINAPI *)(DWORD *,DWORD,DWORD*)) GetProcAddress( hInstLib, "EnumProcesses" ) ; lpfEnumProcessModules = (BOOL(WINAPI *)(HANDLE, HMODULE *, DWORD, LPDWORD)) GetProcAddress( hInstLib, "EnumProcessModules" ) ; lpfGetModuleFileNameEx =(DWORD (WINAPI *)(HANDLE, HMODULE, LPTSTR, DWORD )) GetProcAddress( hInstLib, "GetModuleFileNameExA" ) ; lpfVDMEnumTaskWOWEx =(INT(WINAPI *)( DWORD, TASKENUMPROCEX, LPARAM))GetProcAddress( hInstLib2, "VDMEnumTaskWOWEx" ); if( lpfEnumProcesses == NULL || lpfEnumProcessModules == NULL || lpfGetModuleFileNameEx == NULL || lpfVDMEnumTaskWOWEx == NULL) { FreeLibrary( hInstLib ) ; FreeLibrary( hInstLib2 ) ; return FALSE ; } // Call the PSAPI function EnumProcesses to get all of the // ProcID's currently in the system. // NOTE: In the documentation, the third parameter of // EnumProcesses is named cbNeeded, which implies that you // can call the function once to find out how much space to // allocate for a buffer and again to fill the buffer. // This is not the case. The cbNeeded parameter returns // the number of PIDs returned, so if your buffer size is // zero cbNeeded returns zero. // NOTE: The "HeapAlloc" loop here ensures that we // actually allocate a buffer large enough for all the // PIDs in the system. dwSize2 = 256 * sizeof( DWORD ) ; lpdwPIDs = NULL ; do { if( lpdwPIDs ) { HeapFree( GetProcessHeap(), 0, lpdwPIDs ) ; dwSize2 *= 2 ; } lpdwPIDs = HeapAlloc( GetProcessHeap(), 0, dwSize2 ); if( lpdwPIDs == NULL ) { FreeLibrary( hInstLib ) ; FreeLibrary( hInstLib2 ) ; return FALSE ; } if( !lpfEnumProcesses( lpdwPIDs, dwSize2, &dwSize ) ) { HeapFree( GetProcessHeap(), 0, lpdwPIDs ) ; FreeLibrary( hInstLib ) ; FreeLibrary( hInstLib2 ) ; return FALSE ; } }while( dwSize == dwSize2 ) ; // How many ProcID's did we get? dwSize /= sizeof( DWORD ) ; // Loop through each ProcID. for( dwIndex = 0 ; dwIndex < dwSize ; dwIndex++ ) { szFileName[0] = 0 ; // Open the process (if we can... security does not // permit every process in the system). hProcess = OpenProcess( PROCESS_QUERY_INFORMATION | PROCESS_VM_READ, FALSE, lpdwPIDs[ dwIndex ] ) ; if( hProcess != NULL ) { // Here we call EnumProcessModules to get only the // first module in the process this is important, // because this will be the .EXE module for which we // will retrieve the full path name in a second. if( lpfEnumProcessModules( hProcess, &hMod, sizeof( hMod ), &dwSize2 ) ) { // Get Full pathname: if( !lpfGetModuleFileNameEx( hProcess, hMod, szFileName, sizeof( szFileName ) ) ) { szFileName[0] = 0 ; } } CloseHandle( hProcess ) ; } // Regardless of OpenProcess success or failure, we // still call the enum func with the ProcID. if(!lpProc( lpdwPIDs[dwIndex], 0, szFileName, lParam)) break ; // Did we just bump into an NTVDM? if( _stricmp( szFileName+(strlen(szFileName)-9), "NTVDM.EXE")==0) { // Fill in some info for the 16-bit enum proc. sInfo.dwPID = lpdwPIDs[dwIndex] ; sInfo.lpProc = lpProc ; sInfo.lParam = lParam ; sInfo.bEnd = FALSE ; // Enum the 16-bit stuff. lpfVDMEnumTaskWOWEx( lpdwPIDs[dwIndex], (TASKENUMPROCEX) Enum16, (LPARAM) &sInfo); // Did our main enum func say quit? if(sInfo.bEnd) break ; } } HeapFree( GetProcessHeap(), 0, lpdwPIDs ) ; FreeLibrary( hInstLib2 ) ; // If Windows 95: }else if( osver.dwPlatformId == VER_PLATFORM_WIN32_WINDOWS ) { hInstLib = LoadLibraryA( "Kernel32.DLL" ) ; if( hInstLib == NULL ) return FALSE ; // Get procedure addresses. // We are linking to these functions of Kernel32 // explicitly, because otherwise a module using // this code would fail to load under Windows NT, // which does not have the Toolhelp32 // functions in the Kernel 32. lpfCreateToolhelp32Snapshot= (HANDLE(WINAPI *)(DWORD,DWORD)) GetProcAddress( hInstLib, "CreateToolhelp32Snapshot" ) ; lpfProcess32First= (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32)) GetProcAddress( hInstLib, "Process32First" ) ; lpfProcess32Next= (BOOL(WINAPI *)(HANDLE,LPPROCESSENTRY32)) GetProcAddress( hInstLib, "Process32Next" ) ; if( lpfProcess32Next == NULL || lpfProcess32First == NULL || lpfCreateToolhelp32Snapshot == NULL ) { FreeLibrary( hInstLib ) ; return FALSE ; } // Get a handle to a Toolhelp snapshot of the systems // processes. hSnapShot = lpfCreateToolhelp32Snapshot( TH32CS_SNAPPROCESS, 0 ) ; if( hSnapShot == INVALID_HANDLE_VALUE ) { FreeLibrary( hInstLib ) ; return FALSE ; } // Get the first process' information. procentry.dwSize = sizeof(PROCESSENTRY32) ; bFlag = lpfProcess32First( hSnapShot, &procentry ) ; // While there are processes, keep looping. while( bFlag ) { // Call the enum func with the filename and ProcID. if(lpProc( procentry.th32ProcessID, 0, procentry.szExeFile, lParam )) { procentry.dwSize = sizeof(PROCESSENTRY32) ; bFlag = lpfProcess32Next( hSnapShot, &procentry ); }else bFlag = FALSE ; } }else return FALSE ; // Free the library. FreeLibrary( hInstLib ) ; return TRUE ; } BOOL WINAPI Enum16( DWORD dwThreadId, WORD hMod16, WORD hTask16, PSZ pszModName, PSZ pszFileName, LPARAM lpUserDefined ) { BOOL bRet ; EnumInfoStruct *psInfo = (EnumInfoStruct *)lpUserDefined ; bRet = psInfo->lpProc( psInfo->dwPID, hTask16, pszFileName, psInfo->lParam ) ; if(!bRet) { psInfo->bEnd = TRUE ; } return !bRet; } :mad:
  13. juergi66

    Entpacker

    Hi, ich habe mich vielleicht mißverständlich ausgedrückt. Es sollte ein Entpacker sein ,der im DOS-Modus, also ohne graphische Oberfläche läuft. Kann auch ne DLL sein, die kosten aber in der Regel.Ich suche was aus dem Freeware-Bereich. Gruß Onkel
  14. juergi66

    Entpacker

    Hi, ich rufe in meinem Programm die Entpacker UNRAR und PKUNZIP auf. Leider läuft PKUNZIP nicht zufriedenstellend. Kennt ihr einen anderen Entpacker für ZIP-Files? Danke Onkel...
  15. Hi, ich habe ein Problem. Und zwar starte ich einen Prozess mit "CreateProcess". Diesen kann ich nach getaner Arbeit auch sauber beenden. Jedoch läuft dieser Prozeß in der DOS-Box ab. Diese schließt sich leider nicht automatisch. Wie kann ich an ihre ProzeßID kommen, um sie zu killen. Ich müll mir ja sonst den Speicher mit geöffneten DOS-Boxen zu und irgendwann schmiert mir die Kiste ab. Hab schon mit GetCurrentProcessID etc. versucht, aber damit kann ich nur auf Prozesse zugreifen, die ich auch selber gestartet habe. Gruß an alle..vom Onkel

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...