Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien
Toon posts:

[JS] Programma's opstarten met ActiveX

Pagina: 1
Acties:
  • 1.318 views

Verwijderd

Topicstarter
Goede nacht!

Op dit moment ben ik bezig met het opzetten van een intranet via waar programma's opgestart gaan worden.
Nu lukt het mij wel om een programma die in de windows map staat te launchen maar programma's in de 'Program Files' map niet.

Het script van ik gebruik komt van: http://www.olavaukan.com/...ications-from-sharepoint/

Hier staat onderaan dat je voor programma's in de program files map je PROGRA~1 moet gebruiken.
Nu krijg ik het niet voor elkaar om het goede pad te vinden naar bv word/ excel etc.

De HTML / JS code die ik gebruik:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<html>
  <head>
    <script language="javascript">
      function LaunchApp(appPath)
      {
        try
        {
          <!-- Launch application -->
          WSH = new ActiveXObject("WScript.Shell");
          
          WSH.run(appPath);
        }
        catch (ex)
        {
           errMsg = "An error occured while lauching the application.\n\n";
           alert(errMsg);
        }
        <!-- Close window -->
        window.open('', '_blank', '');
        window.close();
      }
    </script>
</head>
<body>
    <a onClick="LaunchApp('C:\\windows\\system32\\notepad.exe')">Notepad opstarten dan maar?</a><br>
    <a onClick="LaunchApp('C:\\Program Files\\Microsoft Office\\Office12\\excel.exe')">Heb je Excel <strong>2007</strong> klik dan hier!</a><br>
    <a onClick="LaunchApp('C:\\PROGRA~1\\MICROS~2\\Office14\\winword.exe')">Of heb je Excel <strong>2010</strong>, klik dan maar hier :-)</a><br>
</body>
</html>


Zoals je ziet heb ik meerdere dingen geprobeerd om een word op te starten.

Word staat in: C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.exe

Iemand die mij kan helpen om word/ excel etc op te starten op deze manier?
Ook de mogelijkheid om word/ excel 2007 op te starten (hier kan ik helaas atm niet bij, heb alleen 2010 op mn laptop).

Alvast heel erg bedankt!
Loran

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 18:49
Ten eerste is je huidige oplossing vanuit security oogpunt onacceptabel aangezien het eist dat Internet Explorer geconfigureerd is om ongesigneerde ActiveX componenten ongevraagd te kunnen starten. (Moet ik echt uit gaan leggen waarom dat een slecht idee is?)
Ten tweede kun je niet vantevoren het pad naar een Excel of Word installatie weten. Voor verschillende office versies wordt er gebruik gemaakt van andere standaard installatiepaden. Nu een pad kiezen zal in de toekomst met nieuwere office versies voor problemen zorgen. Daarnaast is het ook nog te bedenken dat er op bepaalde machines van niet-standaard installatiepaden gebruik gemaakt is.
Ten derde ActiveX gaat in de toekomst sowieso voor problemen zorgen. Microsoft is er compleet vanaf gestapt en is nu, na Silverlight, ook over op de HTML5 standaarden. Nu in ActiveX instappen is simpelweg te dom voor woorden.


Wat dacht je ervan om gewoon een leeg Excel of Word bestand naar de gebruiker te sturen en op die manier de gebruiker de keuze te geven de standaard daarmee geassocieerde applicatie te laten openen? Werkt onder alle browsers, werkt met alle office installaties, en het is wel veilig.

[ Voor 7% gewijzigd door R4gnax op 02-09-2012 14:42 ]


Verwijderd

Volgens mij is het probleem spatie. Je doet voor een '\' netjes een '\\' maar voor een spatie moet je dan toch een '[backslash][spatie]' doen?
Bij java in ieder geval.

Desalnittemin zou ik het niet zo snel toestaan dat een activeX element direct applicaties kan starten. Je moet dan goedgelovig zijn.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zondag 02 september 2012 @ 17:19:
maar voor een spatie moet je dan toch een '[backslash][spatie]' doen?
Bij java in ieder geval.
Wut? Nee hoor. In Java ook niet. Hooguit in een regex oid.

Ik sluit me wel aan bij wat er verder gezegd is; dit gaat niet werken en is gewoon een onwenselijke methode. Los daarvan kun je in bep. gevallen een X64 versie van office hebben waar je dus "(X86)" uit 't pad zou moeten laten of zelfs progra~2 moeten gebruiken. En dan zijn er nog wel een stuk of 400 andere uitzonderingen te bedenken waardoor dit gedoemd is te mislukken. In 't allergunstigste geval gaat 't hier om een intranet dat rete-strak beheerd waardoor je de slagingskans nog wel wat zou kunnen opschroeven maar dan zullen de systeembeheerders weer absoluut niet blij zijn (en dan druk ik me nog zacht uit denk ik...) met de gekozen methode.

[ Voor 60% gewijzigd door RobIII op 02-09-2012 17:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
Bedankt voor jullie reacties.

@R4gnax
De bedoeling is dat ActiveX Alleen aan staat voor intranet sites, dit kan je in IE instellen.
Dus de beveiliging is al minder erg slecht, maar toch niet 100% veilig, ben ik met je eens!

Wij gebruiken de programma's vanaf de servers, op elke server zijn de paden hetzelfde, dus dat is geen probleem.

Dit is puur een oplossing voor IE9, als het in IE10 nog zit zullen we blij zijn, anders moeten wij naar een totaal andere oplossing zoeken.

@ dopefish
Helaas!

@ RobIII
Wat bedoel je met je laatste stuk van rete-strak beheerd beheerd......?

  • Grijze Vos
  • Registratie: December 2002
  • Laatst online: 28-02 22:17
Verwijderd schreef op zondag 02 september 2012 @ 19:57:
@R4gnax
De bedoeling is dat ActiveX Alleen aan staat voor intranet sites, dit kan je in IE instellen.
Dus de beveiliging is al minder erg slecht, maar toch niet 100% veilig, ben ik met je eens!
Famous last words?

offtopic:
Dit soort topics zijn nou de topics waardoor ik sterk geneigd ben te pleiten voor een bescherming van het beroep software engineer.

Op zoek naar een nieuwe collega, .NET webdev, voornamelijk productontwikkeling. DM voor meer info


  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 18:49
Verwijderd schreef op zondag 02 september 2012 @ 19:57:
De bedoeling is dat ActiveX Alleen aan staat voor intranet sites, dit kan je in IE instellen.
Dus de beveiliging is al minder erg slecht, maar toch niet 100% veilig, ben ik met je eens!

Wij gebruiken de programma's vanaf de servers, op elke server zijn de paden hetzelfde, dus dat is geen probleem.

Dit is puur een oplossing voor IE9, als het in IE10 nog zit zullen we blij zijn, anders moeten wij naar een totaal andere oplossing zoeken.
Dus ... alle PCs hebben toegang tot het filesystem van de servers en alle PCs worden ingesteld om IE op het interne domein direct en zonder tussenkomst van de gebruiker filesystem toegang te geven. Ik hoop voor je dat er nergens een stukje code op het intranet te vinden is dat gevoelig is voor extern ingebrachte XSS exploits.
Inderdaad; een gevalletje Darwin@work

  • YopY
  • Registratie: September 2003
  • Laatst online: 06-11 13:47
Natuurlijk zijn 'wij van Tweakers' iets nieuwsgieriger (of iig ikzelf): Wat probeer je met deze intranetapplicatie te bereiken? Een soort startmenu in je browser? Want het OS zelf biedt namelijk mogelijkheden om dit soort dingen te bereiken in de vorm van snelkoppelingen naar je applicaties, welke je met wat windows server tools en accountbeheer automagisch kunt toevoegen aan iedereen zijn systeem.

dus: buiten deze oplossing om, welk probleem probeer je hier op te lossen?

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 20:02

Janoz

Moderator Devschuur®

!litemod

Ik ben eventjes confused...
Verwijderd schreef op zondag 02 september 2012 @ 19:57:
....
Wij gebruiken de programma's vanaf de servers, op elke server zijn de paden hetzelfde, dus dat is geen probleem.
....
Programma's op de server? Weet je het zeker? En als ze op de server draaien, waarom moeten ze dan op de client worden opgestart?

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

Janoz schreef op maandag 03 september 2012 @ 10:49:
Ik ben eventjes confused...


[...]

Programma's op de server? Weet je het zeker? En als ze op de server draaien, waarom moeten ze dan op de client worden opgestart?
Dit is idd een beetje een WTF BBQ aan het worden.

  • PdeBie
  • Registratie: Juni 2004
  • Laatst online: 20:20
is het soms iets van een thin-client systeem ofzo?

Verwijderd

Topicstarter
Thanks voor jullie reacties:

Wij werken met een 10-tal terminal server waar via wij met Thin-clients een connectie maken.
De programma's draaien dus op elke server en worden door de user via ons intranet opgestart.

De opzet van ons Intranet is dat dat onze startpagina is waarop alle applicaties staan waar de user toegang tot heeft. Als een gebruiker op een programma icoontje klikt wordt er op dit moment een programma uitgevoerd die een '.uit' omzet naar een uitvoerbaar iets (how don't ask me..).

Maar ons probleem nu is is dat IE9+ deze functie niet meer mogelijk is omdat Microsoft IE zo heeft aangepast dat deze onze .uit niet meer wil uitvoeren maar gaat downloaden.

Nu heb ik op internet bovenstaande oplossing gevonden, alleen ben ik er al achter dat die in IE10 niet meer werkt.

Heeft iemand misschien een oplossing om dus applicaties (geïnstalleerd op de server zelf, c:/ ...) op te starten vanaf IE?

Wat heb ik al geprobeerd:
- Bovenstaande code
- Instellingen van IE9 aan te passen, alleen dan gaat de beveiliging er té erg aan + het werkt nog niet
- Verschillende HTML/JS mogelijkheden

---
Edit voorbeeld .uit bestand:
code:
1
2
[Program]
Exec=C:\Program Files\Adobe\Photoshop Elements 7.0\PhotoshopElementsEditor.exe

[ Voor 6% gewijzigd door Verwijderd op 03-09-2012 17:29 ]


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 03 september 2012 @ 17:28:
Heeft iemand misschien een oplossing om dus applicaties (geïnstalleerd op de server zelf, c:/ ...) op te starten vanaf IE?
Er is een reden waarom browsers niet in staat zijn externe applicaties te starten. De enige zinnige oplossing staat hier. Zo'n .uit bestand zal wel geassocieerd zijn met een protocol handler, wat ook een mogelijkheid (maar meer werk) is.

[ Voor 18% gewijzigd door RobIII op 03-09-2012 17:39 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
@Roblll
Via jouw link kwam ik op http://community.zyrion.com
Deze geprobeerd op een standalone computer en tot de conclusie te gekomen dat die niet meer werkt onder Windows 7. (server omgeving kan ik nu niet checken)

maar jouw idee lijkt mij inderdaad wel een goede oplossing.
Zal er eens verder naar zoeken!

Thanks!

(Mochten mensen ook nog ideeen hebben, feel free to speak :) )

  • R4gnax
  • Registratie: Maart 2009
  • Laatst online: 18:49
Verwijderd schreef op maandag 03 september 2012 @ 18:23:
(Mochten mensen ook nog ideeen hebben, feel free to speak :) )
Één heel goed idee is in om in elk geval niet een protocol handler te maken die arbitraire executables uit kan voeren via een shell. Dat is waar Ubisoft's UPlay pas geleden nog een enorm gapend security gat mee gemaakt heeft.


Als je de kant van protocol handlers uit wilt gaan, maak dan één handler die op basis van een GUID (want uniek, anoniem en niet sequentieel) een programma uit een gelimiteerde, door system administrators centraal geregistreerde set programma's op kan starten.

Dit vereist nog wel een installatie en registratie van de desbetreffende protocol handler op al je machines, maar dat is via een centrale deployment nog wel te regelen. Je zou het hele ding waarschijnlijk zelfs nog in een ClickOnce .NET applicatie kunnen rollen en het gebruikers zelf bij eerste aanmelding op je intranet portal kunnen laten installeren. :)

[ Voor 11% gewijzigd door R4gnax op 03-09-2012 22:14 ]


  • epic007
  • Registratie: Februari 2004
  • Laatst online: 17-11 15:31
Verwijderd schreef op maandag 03 september 2012 @ 17:28:
Thanks voor jullie reacties:

Wij werken met een 10-tal terminal server waar via wij met Thin-clients een connectie maken.
De programma's draaien dus op elke server en worden door de user via ons intranet opgestart.
Aangezien het om een intranet omgeving gaat is het dan niet mogelijk om alles server-side te doen?

- user klikt op link in webbrowser
- via asp/php/??? wordt request gedaan naar server
- server start het gewenste programma op de juiste remote desktop (hoe weet ik niet, maar dit is vast mogelijk).

  • Wijnbo
  • Registratie: December 2002
  • Laatst online: 22-09 14:46

Wijnbo

Electronica werkt op rook.

Misschien kun je eens uitleggen WAAROM je een intranet site zou willen hebben met je snelkoppelingen naar applicaties. Die pleur je toch gewoon in je startmenu of op je bureaublad?

De hele constructie is compleet idioot en ik kan werkelijk geen reden verzinnen waarom je dit als bedrijf zou willen.

[ Voor 25% gewijzigd door Wijnbo op 04-09-2012 12:17 ]


Verwijderd

Topicstarter
-- late reactie, sorry --
Wijnbo schreef op dinsdag 04 september 2012 @ 12:16:
Misschien kun je eens uitleggen WAAROM je een intranet site zou willen hebben met je snelkoppelingen naar applicaties. Die pleur je toch gewoon in je startmenu of op je bureaublad?

De hele constructie is compleet idioot en ik kan werkelijk geen reden verzinnen waarom je dit als bedrijf zou willen.
Wij willen juist NIET dat er iets onder start komt te staan. Wij hebben dit al jaren en zo werken we nou eenmaal.
Ikzelf zou ook zeggen pleur het onder start, maar ja baas zegt iets anders.

Ben nu opzoek naar een programmeur die het voor me kan uitvoeren, ik ben puur webbased.

  • Kajel
  • Registratie: Oktober 2004
  • Laatst online: 09-11 18:41

Kajel

Development in Style

Verwijderd schreef op donderdag 06 september 2012 @ 16:57:
-- late reactie, sorry --


[...]


Wij willen juist NIET dat er iets onder start komt te staan. Wij hebben dit al jaren en zo werken we nou eenmaal.
Ikzelf zou ook zeggen pleur het onder start, maar ja baas zegt iets anders.

Ben nu opzoek naar een programmeur die het voor me kan uitvoeren, ik ben puur webbased.
Maar in de hele constructie terminal server <-> thin clients zijn daar toch gewoon voorgeschreven opties voor? Remote Desktop met linkjes in een startmenu is toch een prima oplossing? Dat is toch waar omgevingen als Citrix voor bedoeld zijn?
Jouw baas kan dat wel willen, maar er zijn een hoop dingen die mensen willen die gewoon niet kunnen/onzin zijn. Ik zou als ik jou was antwoorden dat jij dan ook salaris verhoging wilt, onder het motto "laten we onzinnig dingen van elkaar vragen". Hoe dan ook is het een slecht - en met goede reden slecht uitvoerbaar - idee.

Verwijderd

Topicstarter
Kajel schreef op vrijdag 07 september 2012 @ 10:14:
[...]

Maar in de hele constructie terminal server <-> thin clients zijn daar toch gewoon voorgeschreven opties voor? Remote Desktop met linkjes in een startmenu is toch een prima oplossing? Dat is toch waar omgevingen als Citrix voor bedoeld zijn?
Jouw baas kan dat wel willen, maar er zijn een hoop dingen die mensen willen die gewoon niet kunnen/onzin zijn. Ik zou als ik jou was antwoorden dat jij dan ook salaris verhoging wilt, onder het motto "laten we onzinnig dingen van elkaar vragen". Hoe dan ook is het een slecht - en met goede reden slecht uitvoerbaar - idee.
Leuk bedacht :-)
Wij hebben dit al jaren aan het werk (±2001) en nu Microsoft IE9 / IE10 gaat gebruiken is het niet meer mogelijk.
Heb nu de opdracht gekregen om een programmeur te zoeken die een simpel tooltje in elkaar kan zetten.

Wat mijn idee is, graag input als het helemaal fout is waar ik mee bezig ben.

Via het programma de url "program://" gebruiken.
De sting die erna komt kan bijvoorbeeld "word2007" staan (program://word2007)
In het programma staat een tabelletje met alle programma's en de paden waar die naar toe lopen.

Voorbeeld:
program://word2007 > C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.exe
program://excel2007 > C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.exe
etc.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op donderdag 06 september 2012 @ 16:57:
Ben nu opzoek naar een programmeur die het voor me kan uitvoeren, ik ben puur webbased.
Verwijderd schreef op vrijdag 07 september 2012 @ 10:58:
Heb nu de opdracht gekregen om een programmeur te zoeken die een simpel tooltje in elkaar kan zetten.

[...]

Via het programma de url "program://" gebruiken.
De sting die erna komt kan bijvoorbeeld "word2007" staan (program://word2007)
In het programma staat een tabelletje met alle programma's en de paden waar die naar toe lopen.

Voorbeeld:
program://word2007 > C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.exe
program://excel2007 > C:\Program Files (x86)\Microsoft Office\Office14\WINWORD.exe
etc.
Euh, hier houdt 't op ;)
Devschuurder werven? Gebruik Vraag & Aanbod!

In de Devschuur® hebben we 't over zélf maken/ontwikkelen. Op 't moment dat je hier wensen gaat neerzetten en "opzoek naar een programmeur" dan wordt 't werving en heeft 't geen drol meer van doen met (concrete) programmeervragen ;)

[ Voor 14% gewijzigd door RobIII op 07-09-2012 11:36 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.