Zkor
Lt. Junior Grade
- Registriert
- Juli 2007
- Beiträge
- 294
Hallo Leute!
Ich habe folgende Aufgabe zu bewältigen: Ein Programm unter Windows zu implementieren, welches beim Start von Windows die Systemzeit in eine Exel-Tabelle schreibt und beim Abmelden die Abmeldezeit + Differenz dokumentiert.
Soweit bin ich gekommen:
Ich bin mir wohl gewusst das es in vielen Fällen wohl einfacher gehen könnte und bin auch gerne bereit etwas von euch zu lernen . Bei dieser Implementierung ging es rein um die Funktionalität des Programmes und ich habe es soweit noch ohne eure Hilfe geschafft
wie kann ich nun die Exel-Datei öffnen und in die einzelnen Felder die Systemzeiten schreiben?
Kleine Nebenfrage noch: kann man das mit der Hilfsdatei help.cmd irgendwie anders lösen?
Das Problem bestand darin, dass ich den Befehl in Zeile 77 nicht als char casten konnte weil der Befehl definitiv zu groß ist. Und mit system("string"); kommt man auch nicht weit...
vielen Dank für eure Hilfe schonmal
Ich habe folgende Aufgabe zu bewältigen: Ein Programm unter Windows zu implementieren, welches beim Start von Windows die Systemzeit in eine Exel-Tabelle schreibt und beim Abmelden die Abmeldezeit + Differenz dokumentiert.
Soweit bin ich gekommen:
Ich bin mir wohl gewusst das es in vielen Fällen wohl einfacher gehen könnte und bin auch gerne bereit etwas von euch zu lernen . Bei dieser Implementierung ging es rein um die Funktionalität des Programmes und ich habe es soweit noch ohne eure Hilfe geschafft
Code:
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <Lmcons.h>
#include <string>
#include <ctime>
#include <sstream>
#include <fstream>
using namespace std;
int main ( )
{
cout << "ANFANG" << endl << endl;
//Username feststellen
string benutzer = getenv("USERNAME");
string pfadordner = getenv("USERPROFILE");
string logordner;
//Variablendeklarationen
const bool MANUELL = true; //mit Abfragen
int jahr, monat, tag, stunden, minuten;
char in;
string zeit, datum;
ostringstream s1, s2, b1;
time_t rawtime;
struct tm * timeinfo;
time ( &rawtime );
timeinfo = localtime ( &rawtime );
jahr = 2012; //(timeinfo->tm_year); funktioniert iwie nicht
monat = (timeinfo->tm_mon)+1;
tag = (timeinfo->tm_mday);
stunden = (timeinfo->tm_hour);
minuten = (timeinfo->tm_min);
s1 << stunden << ":" << minuten;
zeit = s1.str();
s2 << tag << "." << monat << "." << jahr;
datum = s2.str();
// cout << "tag: " << tag << endl;
// cout << "monat: " << monat<< endl;
// cout << "year: " << jahr << endl;
if(MANUELL)
{
while(in != 'y')
{
system("cls");
cout << "Bitte folgende Daten ueberpruefen: " << endl
<< "Bei Fehler Installation abbrechen und sich an Programmierer wenden" << endl << endl;
cout << "ZEIT: " << zeit << endl;
cout << "DATUM: " << datum << endl;
cout << "BENUTZER: " << benutzer << endl;
cout << "PFAD: " << pfadordner << endl;
cout << endl << "Alles richtig? (y/n)" << endl;
cin >> in;
if(in == 'n')
{
cerr << "Das Programm wird beendet ... " <<endl;
exit(2);
}
}
}
//Neuen Ordner im Pfad "pfadordner\log" erstellen
logordner = pfadordner + "\\Documents\\log";
string befehl = (string)"if not exist " + logordner + " md " + logordner;
cout << befehl;
//Öffnen der Hilfsdatei (Hier musste ich kreativ sein weil ich nicht wusste wie ich den string befehl an system("") übergeben kann)
ofstream datei("help.cmd", ios::app);
if(!datei.fail())
{
//datei << "@echo off" << endl;
datei << befehl; //In die Datei schreiben
datei.close(); // Datei schließen
}
//Ausfuehren der Datei erfolgreich?
if (system("@echo off; help.cmd") != 0)
{
cerr << "Beim Anlegen des Ordners ist ein Fehler unterlaufen." << endl
<< "Das Programm wird beendet ... " << endl;
exit(3);
}
//Loeschen der Datei erfolgreich?
if( system("del help.cmd") != 0 )
cerr << "Fehler beim Loeschen der Datei" << endl;
else
cout << "Loeschen erfolgreich"; << endl;
//Batch Datei in Autostart einfuegen (kommt noch)
cout << "ENDE" << endl << endl;
return 0;
}
wie kann ich nun die Exel-Datei öffnen und in die einzelnen Felder die Systemzeiten schreiben?
Kleine Nebenfrage noch: kann man das mit der Hilfsdatei help.cmd irgendwie anders lösen?
Das Problem bestand darin, dass ich den Befehl in Zeile 77 nicht als char casten konnte weil der Befehl definitiv zu groß ist. Und mit system("string"); kommt man auch nicht weit...
vielen Dank für eure Hilfe schonmal