C# Programmieren!

PITA.COM

Lieutenant
Registriert
Juni 2012
Beiträge
985
Hi, Ich mache Mir gerade ein Starttool für MSOffice, so dass ich nicht für jedes Programm eine eigene Verknüpfung auf dem Desktop brauche. Jetzt möchte Ich noch eine Funktion einbauen die prüft ob Office installiert ist, und ggf. die entsprechenden Buttons deaktiviert.

{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
Process P = new Process();
P.StartInfo.FileName = "WINWORD.EXE";
P.Start();
Close();
}

private void button2_Click(object sender, EventArgs e)
{
Process P = new Process();
P.StartInfo.FileName = "POWERPNT.EXE";
P.Start();
Close();
}

private void button3_Click(object sender, EventArgs e)
{
Process P = new Process();
P.StartInfo.FileName = "EXCEL.EXE";
P.Start();
Close();
}

private void Form1_Load(object sender, EventArgs e)
{

}

private void pictureBox1_Click(object sender, EventArgs e)
{
Close();
}
}
}

Mit diesem Code funktioniert es nicht, weder mit "WINWORD.EXE" noch dem kompletten Dateipfad!

if ( File.Exists(Datei))
{
button1.enabled = true;
}

}

Hat Jemand einen Code für Mich?
MfG
 
Zuletzt bearbeitet:
File.Exists(@"C:\Programme\Office\winword.exe")

Das @ ist wichtig, alternativ kannst du auch doppelte Backslashes verwenden (File.Exists("C:\\Programme\\Office\\winword.exe")).

Stichwort character escape sequences.
 
Ich würde versuchen die Registry auszulesen, da Office ja auch in einem anderen Pfad installiert sein könnte. ;)
 
@DerZock Daran hatte Ich auch schon gedacht, allerdings reicht es für das starten der Officeprogramme ja auch aus nur die Dateinamen anzugeben...
 
Process P = new Process();
P.StartInfo.FileName = @"C:\Program Files (x86)\OpenOffice.org 3\program\soffice.exe";
P.Start();
Close();

Also hiermit sollte es möglich sein OpenOffice zu starten (weiß den Pfad von MS Office nicht & habs nichts installiert).

Über die Registry den Pfad zu bekommen bringt halt den Vorteil, das es auf jedem Rechner funktionieren sollte, du könntest den User aber auch auffordern den Pfad über einen OpenFileDialog anzugeben.
 
(i) schrieb:
[...]allerdings reicht es für das starten der Officeprogramme ja auch aus nur die Dateinamen anzugeben...
Nein, tut es nicht (zumindest bei mir nicht).
Der Office-Ordner ist nicht zwangsläufig im PATH also brauchst du den vollen Pfad (den du z. B. aus der Registry auslesen kannst).
 
TheCadillacMan schrieb:
Nein, tut es nicht (zumindest bei mir nicht).
Der Office-Ordner ist nicht zwangsläufig im PATH also brauchst du den vollen Pfad (den du z. B. aus der Registry auslesen kannst).

Das wissen wir doch. Aber es hört sich so an, als ob er das Tool nur für sich baut.
 
Einmal ganz doof gefragt, liegt es einfach nur an dem Problem das du nie angibst das der Button
.Enabled = false; sein soll.

Mit dem Code setzt du ihn auf Enabled:
Code:
if ( File.Exists(Datei))
 {
 button1.enabled = true;
 }

Aber es sollte sein
Code:
if (!File.Exists(Datei))
{
button1.enabled = false;
}
 
Da nicht klar ist, ob die Buttons bereits mit Enabled = false (oder true) initialisiert werden:
Code:
button1.Enabled = File.Exists(Datei);
 
Zurück
Oben