SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




Executalbe mittels JavaScript in Default.apsx ausführen

Unbeantwortet Dieser Beitrag hat 5 Antworten

Ohne Rang
15 Beiträge
Markus Drausinger erstellt 11 Apr. 2011 17:29
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

ich habe in eine Formular-WebPart eine extra Button hinzugefügt mit welchem ich gerne eine EXE auf dem Server ausführen möchte. Ich habe meiner Meinung nach auch bereits eine passende JavaScript gefunden:

<script language="JavaScript" type="text/javascript">
         MyObject = new ActiveXObject( "WScript.Shell" )
         function RunNotePad() 
         {
            MyObject.Run("c:\\windows\\system32\\notepad.exe") ;
        }
</script>

Nur leider habe ich keine Ahnung wo ich diesen Script-Block jetzt in meine default.aspx Seite einfügen muss damit es mir beim onClick event des Buttons zur Verfügung steht. Normalerweise würde ich es ja im Head-Block einfügen nur einen solchen habe ich in der Sharepoint default.apsx leider nicht.

Kann mir jemand von euch evtl. eine kleine Hilfestellung geben? Danke.

 

mfg Markus

Alle Antworten

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 11 Apr. 2011 18:23
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut
Javascript und ActiveX sind Client Komponenten. Wenn du dieses Script ausführst dann wird notepad auf dem Client gestartet. Um auf den Server Aktionen auszuführen, müssen diese über Server Side Code ausgeführt werden Asp.Net (C#,VB.Net). Du kannst dafür ein UserControl entwickeln was dann deinen Process Startet wobei sich da die Frage stellt was gestartet werden soll und ob dardurch w3wp zum blockieren kommt bzw. ob ein ergebnis des Prozess benötigt wird.
Ohne Rang
15 Beiträge
Markus Drausinger Als Antwort am 11 Apr. 2011 19:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Danke für die sehr sehr schnelle Antwort.

Ok, das würde dann heißen ich müsste eine separates UserControl oder überhaupt einen extra WebPart dafür erstellen welcher auf die am Server liegende Anwendung zugreift? Was ist in meinem Fall die besser Variante (ich möchte lediglich eine exe am Server starten)? Was ist mit blockieren des w3wp Prozess gemeint bzw. was führt dazu?

Mit WebParts, Sharepoint selbst und Workflows habe ich bereits einiges an Erfahrung gesammelt nur das Zusammenspiel zwischen Server -Client und dem darunter liegenden ASPX Files ist mir teilweise nicht so klar. Gibt es hierfür eine gute Onlinelektüre zu Empfehlen in welcher die hinter Sharepoint liegende Komponenten und deren Zusammenspiel gut erklärt wird?

mfg Markus

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Apr. 2011 08:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Markus Drausinger"]ich möchte lediglich eine exe am Server starten)? Was ist mit blockieren des w3wp Prozess gemeint [/quote]

Wie Thomas schon schrieb, hängt das stark davon ab, was das gestartete Programm machen soll und ob Du einen Rückgabewert benötigst. Es gibt mehrere Methoden ein anderes Programm zu starten (System.Diagnostics.Process.Start). Manche davon warten, bis das Programm beendet ist und das legt dann den aufrufenden Prozeß (w3wp) lahm.

Zur anderen Frage: das sind letztlich ASP.NET Grundlagen und haben erstmal nichts mit SharePoint zu tun. Suche einfach mal nach ASP.NET Tutorials.

Viele Grüße
Andi
af @ evocom de
Blog
Ohne Rang
15 Beiträge
Markus Drausinger Als Antwort am 12 Apr. 2011 08:41
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

In meinem Fall soll es lediglich das starten einer Anwendung in einem separaten Prozess sein, der irgendwelche Files verschiebt bzw. per Mail verschickt. Es ist nicht zwingend notwendig das ein Rückgabewert nach beendigung geliefert wird. Der w3wp Prozess soll auf alle Fälle nicht behindert werden.
Ich denke in meinem Fall wäre Process.Start() bereits genau der richtige Aufruf zum start der Anwendung oder siehst du das anders? Welche Methoden würden eigentlich den w3wp Prozess unterbrechen und einen Rückgabewert liefern?

mfg Markus

 

Ohne Rang
19231 Beiträge
Andi Fandrich Als Antwort am 12 Apr. 2011 09:36
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Schaue Dir einfach die verschiedenen Methoden genauer an und beachte auch die Klasse ProcessStartInfo:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.start(v=VS.90).aspx

Viele Grüße
Andi
af @ evocom de
Blog