Autor Beitrag
yndaso
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Do 12.03.09 14:26 
Hallo zusammen.

ich will aus meine Programm eine ocx Datei mit regsvr32 registrieren.

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
string regsvr32 = Environment.SystemDirectory + "\\regsvr32.exe";
string test = regsvr32 + " " + "C:\\Programme\\MyPath\\ProcessDisplay.ocx";

                        System.Diagnostics.Process n = new System.Diagnostics.Process();
                        n.StartInfo.FileName = test;
                        MessageBox.Show(n.StartInfo.FileName);
                        n.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
                        n.Start();


Es kommt aber immer eine Exception das die Datei nicht gefunden wird. Gebe ich für die Variable Test ein:

ausblenden C#-Quelltext
1:
string test = "C:\\WINNT\\system32\\regsvr32.exe";					


so wird das Programm ausgeführt und es erscheint eine Meldung das kein dll name angegeben wurde.
Was auch korrekt ist...

Gebe ich aber in der DOS Box den string test von Hand ein, so funktioniert das registrieren, es erscheint ene Meldung "... erfolgreich abgeschlosssen".

Zu Testzwecken habe ich im Programm noch eine Messagebox eingefügt.
Als Ausgabe erscheint: C:\WINNT\system32\regsvr32.exe C:\Programme\MyPath\ProcessDisplay.ocx
Das passt doch eigentlich. Wieso erscheint dann immer die Exception?

Ich weiß nicht mehr was ich noch machen kann, hat jemand eine Idee?

Danke
bakachan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 503
Erhaltene Danke: 34

W7 (x64) Ultimate
C# / VB.NET (VS2010 Ultimate)
BeitragVerfasst: Do 12.03.09 14:42 
Wenn du das in der Eingabeaufforderung eingibst führt er den ersten teil aus und übergibt den zweiten teil als kommandozeilenparameter
und genau das musst du auch machen

also regsvr32 als FileName und "C:\\Programme\\MyPath\\ProcessDisplay.ocx" als Argument in der StartInfo

So müsste es dann gehen
Greenberet
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 339
Erhaltene Danke: 20

Win 10
C# (VS 2012), C++ (VS 2012/GCC), PAWN(Notepad++), Java(NetBeans)
BeitragVerfasst: Do 12.03.09 14:47 
das problem liegt daran, weil du versuchst "C:\\WINNT\\system32\\regsvr32.exe C:\\Programme\\MyPath\\ProcessDisplay.ocx" als ExePfad angibst. Das System sucht dann natürlich auch nach dieser, nur kann es diese logischerweise nicht finden weil dein Pfad nicht existiert.

Als Pfad musst du "C\\WINNT\system32\\regsvr32.exe" angeben für Parameter/Argumente besitzt die ProcessStartInfo Klasse das "Argument" Property

//edit:
Da war wohl jemand schneller als ich^^
yndaso Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 108



BeitragVerfasst: Do 12.03.09 15:01 
Tausend Dank!
Hab die Erweiterung nun als Argument reingenommen. ES GEHT!

Gruß