Zum Inhalt springen

TDM

Mitglieder
  • Gesamte Inhalte

    1804
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von TDM

  1. Hallo, ich habe hier ein Backupscript, was mir gerade etwas Kopfzerbrechen bereitet. Folgende Idee: Am ersten jeden Monats wird ein Script gestartet, welches einen Ordner mitsamt allen Unterordnern (+Dateien) in eine bestimmte Datei packt. Folgendes Problem: Als Komprimierungsprogramm verwende ich winrar, leider wird, wenn ich ein Verzeichnis packe, nur der aktuell angegebene Ordner (ohne Unterordner) gepackt. Ärgerlich wenn man nicht weiß, wieviel Ebenen ein Ordner hat. Bisher komm ich zwar in die dritte Ordnerebene, aber das wird spätestens ab hier etwas unübersichtlich, deswegen wollte ich um Rat fragen, ob es eine elegantere Lösung (oder Alternativen) dazu gäbe. @ECHO OFF SET DST=... SET SRC=... for /d %%i in (%SRC%\*.*) do ( echo %%i\*.* REM RAR a "%DST%\backup_%date:~-4%%date:~-7,2%%date:~-10,2%.rar" "%%i\*.*" for /d %%j in (%%i\*.*) do ( echo %%j\*.* REM RAR a "%DST%\backup_%date:~-4%%date:~-7,2%%date:~-10,2%.rar" "%%j\*.*" for /d %%k in (%%j\*.*) do ( echo %%k\*.* REM RAR a "%DST%\backup_%date:~-4%%date:~-7,2%%date:~-10,2%.rar" "%%k\*.*" ) ) ) REM RAR a "%DST%\backup_%date:~-4%%date:~-7,2%%date:~-10,2%.rar" "%SRC%\*.*" EXIT Hilfe wäre toll.
  2. So, nach langem hin und her hab ichs dann noch rausgefunden. result = CreateProcess( (LPCTSTR) m_lpeFile, (m_lpeFile + _T(" ") + m_lpeParam).GetBuffer(1024), NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS, NULL, NULL, &m_sSi, &m_sPi); Ich vergaß (im Sinne von vergessen), dass der erste Parameter (immer) die Anwendung selbst sein muss.
  3. hallo, Ich versuche gerade von einem Programm andere Programme zu starten. Die Informationen für Pfad etc werden korrekt aus einer Datei gelesen. Mein Problem allerdings ist die Parameterübergabe bei CreateProcess - die will irgendwie nicht: int CApplication::startApplication() { int result = 0; if ((CSettings::getRunLevel() >= m_neRunLevel) || (CSettings::getRunLevel() == -1)) { if (m_lpeFile != _T("")) { [B]result = CreateProcess( (LPCTSTR) m_lpeFile, m_lpeParam.GetBuffer(1024), NULL, NULL, FALSE, 0, NULL, NULL, &m_sSi, &m_sPi);[/B] WaitForSingleObject( m_sPi.hProcess, m_neWaitFor*1000 ); } } m_beIsRunning = (result != 0); return result; } Lt. MSDN müsste das (eigentlich) funktionieren, glaub ich. Ich hab das mal mit Notepad getestet. Dieses wird gestartet, allerdings wird der Parameter einfach nicht übergeben. (Der Parameter ist eine externe Datei, aber lt. Debugger stimmt der Wert von m_lpeParam) Anmerkung: Wenn ich den Pfad mitsamt Parameter-Paramter als ersten Parameter übergebe, startet er erst garnicht.
  4. Grundsätzlich geht das, indem du dir für dein Gerät einen Treiber schreibst, der passende Schnittstellen bereitstellt. Als Ausgangspunkt sollte das helfen: USB Central Edit, Nachtrag: DDK (Microsoft)
  5. Jetzt wo du das sagst fällt mir das auch auf. Sogar eine Vodoo-Lady gibts da. Ob der Autor damals auch MI gespielt hat ? :confused:
  6. Spielverfilmungen sind (meistens) Rotz. Ich frage mich aber, welche Schauspieler Guybrush und LeChuck spielen würden. hmm, oder Elaine. :hells:
  7. TDM

    Installationsimages

    *hüstel* German-nLite.de -> Winnt.sif
  8. Sind die Teile sortiert ? Wenn ja, sollte man da aus der Mitte (der Liste) einfach einen nehmen und mit dem Vorgänger bzw. Nachfolger abgleichen.
  9. Hallo, ich habe vor kurzem rausgefunden, dass alle Klassen für den Zugriff auf Word von C++ aus in einer Datei (msword*.olb) steht. Diese liegt laut Verwenden von Visual C++, um Office zu automatisieren im OFFICE11-Ordner von Word. Soweit ganz gut. Zu erst wollte ich, wie imer Link beschrieben, mit Hilfe vom OLE/COM-Objektkatalog Header- bzw. Quellcodedateien erstellen. Das geht nicht. MIDL.exe gibt 2 zurück. (falls jemand was damit anfangen kann) Nächste Idee: Die OLB-Datei direkt im Projekt importieren. Ergo: Drei Zeilen eingefügt: #import "[Pfad zu CommonProgrammFiles]\\Microsoft Shared\\OFFICE11\\MSO.DLL" #import "[Pfad zu CommonProgrammFiles]\\Microsoft Shared\\VBA\\VBA6\\VBE6EXT.OLB" #import "[Pfad zum MS Office]\\OFFICE11\\msword.olb" Ende vom Lied war aber folgendes: Was hab ich falsch gemacht ?
  10. Microsoft halt. Ich würde mich trotzdem an den Standard halten. (Also ein int übergeben) Wenn der zweite Parameter ein bool'scher Wert sein muss und du übergibst ein int, dann wird 0 automatisch als false und Nonzero-Werte als true gehändelt. Du kommst aber auch so zu dem Ergebnis (bool -> int = 0||1). Wie auch immer, ist ja nur eine Stilfrage und daher so oder so egal.
  11. Wieder was gelernt. :beagolisc Rein zum Verständnis: Hat das einen Grund warum du auf != 0 prüfst ? Ich hab grad mal nachgeschaut: Von daher ist es doch egal, was da für eine Zahl reinkommt, denn es wird in der Funktion so und so nochmal überprüft. Das würde dann zu einer doppelten Prüfung führen -> Performanceverlust. Ja, ich bin ein Perfomancejunkie. (auch Kleinvieh macht Mist.)
  12. Ja, musst du. Aber für sowas kann man Makros schreiben: #define BIT_ 0x000 #define BIT0 0x001 #define BIT1 0x002 #define BIT2 0x004 #define BIT3 0x008 #define BIT4 0x010 #define BIT5 0x020 #define BIT6 0x040 #define BIT7 0x080 #define SETBIT(n, ((n) |= () #define CLEARBIT(n, ((n) &= (~) #define CHECKBIT(n, ((n) & () [/code] Verwendung dürfte sich von selbst erklären.
  13. TDM

    Zwei Fragen zu Java

    Wobei ich allerdings sagen muss dass String + int in meinen Augen nicht konform ist. Ich würde lieber System.out.println("aus " + String.valueOf(var2) + " wird " + String.valueOf(ziel)); nehmen. Das kommt im Endeffekt aufs Selbe raus, da via Autoboxing normal die int-Variablen in Integer umgewandelt werden und dann Integer.toString() aufgerufen wird. Nimm's mir nicht übel, ich bin nur der Ansicht, dass der Schutz der Sprache nicht alleine für natürliche Sprachen gelten sollte.
  14. Perl regular expressions for the common man [OT] Ich hoffe nicht, dass mir das eine mail schreiben soll.
  15. TDM

    Zwei Fragen zu Java

    for (int i = 1; i < 100; ++i++) for (int i = 1; i < 100; i+=2) Nein. i = i+x müsste auch gehen. Notfalls halt einfach: int i = 1; while (i < 100) { ... i+=2 } (kommt aufs gleiche raus) Viele Strings in einem (Variablen-) Feld. arg[0] = "Hallo" arg[1] = "Welt" arg[2] = "." usw.
  16. Mit dem Dependency Walker bin ich ja erst dahinter gekommen, dass der Methodenname verändert wurde. Wenn ich ein DEF File oder den veränderten Methodenname nehme, ist aber nicht sichergestellt, dass die Funktion bei Austauschen der DLL genauso heißt (oder doch?). Ich will eigentlich nur die Funktionsaufrufe in der exe haben und via DLL-Switching zu anderen Ergebnissen kommen. Wenn ich dann immerwieder eine neue Exe erstellen müsste (neue .lib/.def), würde das meiner Idee widersprechen.
  17. Problem gelößt. #define DLLEXPORT extern "C" _declspec(dllexport) Das verhindert das C++ die Funktionsnamen erweitert. Memo an mich selbst: DLLs nur noch in *.c - Dateien schreiben
  18. Ahh. Nein. Ich hab es mit WM_PAINT verwechselt. Sorry.
  19. hm... Im Debug-Ordner (der DLL) ist keins. Außerdem sagt die MSDN:
  20. Wenn ich das richtig in Erinnerung habe, wird der Block doch auch aktiv, wenn das Fenster im Hintergrund/minimiert war und dann wieder aufgerufen wird.
  21. Hallo, seit Langem probier ich gerade wieder mich mit DLLs anzufreunden. Ich möchte eine DLL vom Programm heraus dynamisch laden, eine Funktion aufrufen und einen Text mit der Funktion ausgeben. DLL: #define DLLEXPORT _declspec(dllexport) BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ) { switch(ul_reason_for_call) { case DLL_PROCESS_ATTACH: break; case DLL_PROCESS_DETACH: break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; } return TRUE; } DLLEXPORT void printText(LPCTSTR text) { printf("%s", text); } App: typedef void (* DLLFKTP) (LPCTSTR text); int main(int argc, char* argv[]) { HMODULE lib = NULL; DLLFKTP fkt = NULL; lib = LoadLibrary("dlltest.dll"); if (lib == NULL) { cout << "DLL failed" << endl; return DLL_NOT_FOUND; } fkt = (DLLFKTP) GetProcAddress(lib, "printText"); if (fkt == NULL) { cout << "Function failed" << endl; return FKT_NOT_FOUND; } fkt("Hallo Welt."); FreeLibrary(lib); return ERROR_SUCCESS; } DLL wird gefunden. Allerdings findet er die Funktion nicht. Was ist die Ursache?
  22. Makro. LO(W) und HI(GH) liest den nieder- oder höherwertigen Teil eines WORDs. Casting.
  23. ohh... Ich glaub ich hatte die Frage falsch verstanden. :upps
  24. TDM

    "CalcMittel()"

    Summe bilden. Durch die Anzahl der Summanden teilen. Analoge Schrift ist out. Ich nehme lieber die Tastatur.
  25. Ich musste sowas mal im ersten Lehrjahr machen. Allerdings in C/C++. Der Algorithmus sollte aber auch in PHP funktionieren. Zeit- und Datumsberechnungen in C und C++

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