locked
注目リンクのリンク登録について RRS feed

  • 質問

  • 注目リンクを使用するとき、リストの中でクライアント上のアプリを起動するリンクはどのように作成すればいいでしょうか?

    例えば、ローカルPCのメモ帳などのexeを起動したいと思っています。

    通常のウェブサイトなどのリンクは普通にhttp://....と書き、その登録した画像をクリックすれば、飛びますが、同様なことをしたいです。

    なんか、間にスクリプトでカスタマイズが必要なのかわかりませんが、その場合もどのようにかけばいいのかももしよろしければ教えてください。

    2017年9月2日 14:40

回答

  • 記載いただいたコードでおおむね問題なさそうですけどね。

    <script language="VBScript">
    Const vbHide = 0             'ウィンドウを非表示
    Const vbNormalFocus = 1      '通常のウィンドウで、最前面のウィンドウ
    Const vbMinimizedFocus = 2   '最小化で、最前面のウィンドウ
    Const vbMaximizedFocus = 3   '最大化で、最前面のウィンドウ
    Const vbNormalNoFocus = 4    '通常のウィンドウで、最前面ではない
    Const vbMinimizedNoFocus = 6 '最小化で、最前面にはならない
    
    Dim objWShell
    Set objWShell = CreateObject("WScript.Shell")
    objWShell.Exec("C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE /select outlook:calendar")
    Set objWShell = Nothing
    </script>

    IEの設定で、SharePoint が該当するセキュリティのゾーンの設定で「スクリプトを実行しても安全だとマークされていない ActiveXコントロールの初期化とスクリプトの実行」を「有効」にしてもダメでしょうか?

    …、良く考えたら、この方法は上記のセキュリティ設定をクライアントへ GPO などで配布する必要がありますね。

    • 回答としてマーク ke-wata_ 2017年9月8日 12:16
    2017年9月5日 0:34

すべての返信

  • ローカルのexeを実行するのはセキュリティ上できないと思います。
    未検証ですが、Windows 8.1以降であれば、カスタムURIスキームを登録して呼び出しできるかもしれません。

    2017年9月4日 1:14
  • IE11 限定で、かつ、IE11 のブラウザセキュリティ設定でセキュリティレベルを落とせるのであればスクリプトから WScript.Shell を利用して exe を起動できると思います。

    windows10のIE11からローカルのexeを実行 (URIスキーマ,ActiveX)
    http://qiita.com/tukiyo3/items/40bff09692bfd0792a0f

    この場合、リンクからは直接起動できないので、SharePoint 上の別ページにスクリプトを自動実行するように埋め込んでおき、注目リンクからは、そのページを開くようなイメージでしょうか…

    ただ、このような実装は以前の業務システムなどでも良く見られましたが、セキュリティの問題で最近はブラウザ側で禁止されている場合が多いですよね。

    レジストリの配布をどうするか?という点が悩ましいですが、Takashi Shinohara さんも書かれている URI スキーマの登録を試してみるのが良いのかもしれないですね。

    2017年9月4日 6:04
  • 返信のほどありがとうございます。

    セキュリティは下げて問題ないとして、書き方自体がよくわかっていません。

    Outlookのカレンダーを直接開きたいのですが、例えば、TEST.aspxというファイルを作成したサイトのページに登録し、

    リンク先をそこに指定しました。

    TEST.aspxの中身を

    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
    <title>WebページからEXEを起動する</title>
    <script language="VBScript">
    Const vbHide = 0             'ウィンドウを非表示
    Const vbNormalFocus = 1      '通常のウィンドウで、最前面のウィンドウ
    Const vbMinimizedFocus = 2   '最小化で、最前面のウィンドウ
    Const vbMaximizedFocus = 3   '最大化で、最前面のウィンドウ
    Const vbNormalNoFocus = 4    '通常のウィンドウで、最前面ではない
    Const vbMinimizedNoFocus = 6 '最小化で、最前面にはならない
    
    Dim objWShell
    Set objWShell = CreateObject("WScript.Shell")
    'objWShell.Run "C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE" /select outlook:calendar, vbNormalFocus, False
    objWShell.Exec("C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE /select outlook:calendar")
    Set objWShell = Nothing
    
    </script>
    </head>
    <body>
    
    </body>
    </html>
    

    としてみたのですが、うまくうごきません。

    もう少し、ご教授ねがいます。

    2017年9月4日 12:30
  • 記載いただいたコードでおおむね問題なさそうですけどね。

    <script language="VBScript">
    Const vbHide = 0             'ウィンドウを非表示
    Const vbNormalFocus = 1      '通常のウィンドウで、最前面のウィンドウ
    Const vbMinimizedFocus = 2   '最小化で、最前面のウィンドウ
    Const vbMaximizedFocus = 3   '最大化で、最前面のウィンドウ
    Const vbNormalNoFocus = 4    '通常のウィンドウで、最前面ではない
    Const vbMinimizedNoFocus = 6 '最小化で、最前面にはならない
    
    Dim objWShell
    Set objWShell = CreateObject("WScript.Shell")
    objWShell.Exec("C:\Program Files\Microsoft Office\Office12\OUTLOOK.EXE /select outlook:calendar")
    Set objWShell = Nothing
    </script>

    IEの設定で、SharePoint が該当するセキュリティのゾーンの設定で「スクリプトを実行しても安全だとマークされていない ActiveXコントロールの初期化とスクリプトの実行」を「有効」にしてもダメでしょうか?

    …、良く考えたら、この方法は上記のセキュリティ設定をクライアントへ GPO などで配布する必要がありますね。

    • 回答としてマーク ke-wata_ 2017年9月8日 12:16
    2017年9月5日 0:34