WSH(・∀・)スレッド! Part 3at TECH
WSH(・∀・)スレッド! Part 3 - 暇つぶし2ch668:デフォルトの名無しさん
09/02/16 17:01:38
可能

669:667
09/02/16 17:21:54
>>668
早速の回答どうもです。
ググッたりして探してみます

670:デフォルトの名無しさん
09/02/19 02:21:16
ほんまかいな

671:デフォルトの名無しさん
09/02/19 15:16:14
不可能?

672:デフォルトの名無しさん
09/02/19 15:52:25
そんなこと無いけど

673:デフォルトの名無しさん
09/02/19 16:16:38
可能?

674:デフォルトの名無しさん
09/02/19 22:10:50
どっち?

675:デフォルトの名無しさん
09/02/19 23:48:06
可能

676:デフォルトの名無しさん
09/02/20 00:14:10
なるほど
ありがとうございました

677:デフォルトの名無しさん
09/02/20 05:44:37
そんな事できるならSendKeysいらなくね?

678:デフォルトの名無しさん
09/02/20 07:05:54
そんなことない

679:デフォルトの名無しさん
09/02/20 13:10:10
なるほど
ありがとうございました

680:デフォルトの名無しさん
09/02/20 13:42:14
SendKeysできるならそんな事いらなくね?


681:デフォルトの名無しさん
09/02/20 18:58:24
そんなことない

682:デフォルトの名無しさん
09/02/20 19:26:17
なるほど
ありがとうございました

683:デフォルトの名無しさん
09/02/21 17:10:57
SendKeys "日本語だめだし"

684:デフォルトの名無しさん
09/02/22 18:58:29
ABC.vbs(←自作)の二重起動を防止したいのですが、
後から起動したVBSを無効にする(起動してもすぐに終了させる)方法は見つけたのですが、
二重起動した場合、初めに起動しているvbsを強制終了させて、後から起動したvbsを有効にする方法はありませんか?


もう一つ。

vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
実行して(約)10秒後に、強制終了する方法ってありますか?

685:デフォルトの名無しさん
09/02/22 20:40:39
> vbsを実行して、vbsが待機中であれ、何かの処理中であれ、
> 実行して(約)10秒後に、強制終了する方法ってありますか?

使ったことないけど、cscript //T: オプションではだめか?

686:デフォルトの名無しさん
09/02/22 21:17:17
WScript.Timeout

687:デフォルトの名無しさん
09/02/22 23:00:11
>>684
前者はWMI使って、Win32_ProcessのName='Wscript.exe'の中で
CommandLineにWScript.ScriptFullNameを含む物が2つ有ったら
CreationDateが古い(小さい)方をTerminateすれば良い

688:デフォルトの名無しさん
09/02/23 03:48:29
外からWScript.QuitやWScript.Timeoutできればいいのに

689:デフォルトの名無しさん
09/02/23 06:43:11
WSHがCOM(ActiveX.exe)だったら、それも出来たんだろうけどな

690:デフォルトの名無しさん
09/02/23 15:50:48
WSHはCOMだから出来るよ

691:デフォルトの名無しさん
09/02/23 17:02:52
知らないものは存在しない

692:デフォルトの名無しさん
09/02/23 22:13:47
出来ないことでも、出来ると言い張ってゴネるだけなら簡単

693:デフォルトの名無しさん
09/02/23 22:21:22
ぐぐれば?

694:デフォルトの名無しさん
09/02/23 23:55:19
ぐぐればわかることでも、出来ないと言い張ってゴネるだけなら簡単


695:デフォルトの名無しさん
09/02/24 01:11:36
ググってみたら解った
やはり出来ないようだ

696:デフォルトの名無しさん
09/02/24 01:17:03
>>695には無理だってw

697:デフォルトの名無しさん
09/02/24 02:19:01
不毛だ

698:デフォルトの名無しさん
09/02/24 02:26:15
出来ると言ってる奴は、出来るという証拠を出すだけで
簡単にで出来ないと言ってる奴を有無を言わさず論破出来るのに
そんな簡単なことすらしないということは・・・・・( ̄ー ̄)ニヤリッ

699:デフォルトの名無しさん
09/02/24 03:28:49
できないと思っているなら放置すればよいのにw

700:デフォルトの名無しさん
09/02/24 03:35:57
負け惜しみ?

701:デフォルトの名無しさん
09/02/24 04:37:10
一度出来ると言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


702:デフォルトの名無しさん
09/02/24 15:10:44
一度出来ないと言ってしまった手前、引っ込みが付かなくなってしまったんですね。わかります。


703:デフォルトの名無しさん
09/02/24 15:11:30
勝ち惜しみ?

704:デフォルトの名無しさん
09/02/24 16:46:17
で、どっち?

705:デフォルトの名無しさん
09/02/24 18:46:34
不可能?

706:デフォルトの名無しさん
09/02/24 18:54:22
そんなこと無いけど

707:デフォルトの名無しさん
09/02/24 19:13:57
ハッカー師兄の人たち教えてください。
あるサイトに動画ファイルを置いて、自分のブログからリンクした時に
動画が開かずに、ファイルに直接リンクするなと警告ページが表示されます。
ブラウザ(IE6)のRefererがリンク先ではなく私のブログサイトになって
いるのが原因ですが、リンク開く前にプログラムからRefererを変更することは
できないでしょうか?

1.今までの調べでは単純にJavaScriptで
  document.referer="URLリンク(www.aaa.com)";
と書き換えるのは無理でした。(document.refererは参照のみ可)

2.createobjectからxml2requestのoleを使ってrefererを書き換えて
バイナリデータを取得できましたが、この方法だと取得したバイナリを
どのようにwindow.documentオブジェクトで表示させれば良いかが
分かりません。

もう少しで出来そうな気がするのですがググっても解決方法が
見つかりません。アドバイスをお願いします。


708:デフォルトの名無しさん
09/02/24 19:22:41
>>706
さんくす
ではやふって探してみます
ぐぐっても見つからないようなので

709:デフォルトの名無しさん
09/02/24 19:28:14
>>687
やったことないし思いつきですが非同期でプロセス起動する方法を
調べたら良いのでは?子プロセス起動10秒後に親が子を消すように
すればできる気がします。


710:デフォルトの名無しさん
09/02/24 21:55:13
強制終了はよくないって聞くけど本当なの?

711:デフォルトの名無しさん
09/02/24 22:41:07
強制終了が何故良くないのか解ってない人にとっては良くないね。
解ってればある程度の事前対処も出来るのだが。

まぁWSHに限らずの話でスレ違いになるから詳細は伏せる。

712:デフォルトの名無しさん
09/02/24 22:48:50
>>707
Document.Refererはドキュメント取得時のRefererが記録された、言わばログなので書き換えても無意味。
書き換えるならHttpRequestHeaderの送信情報を書き換えないといけない。
HttpRequestHeaderを指定できるJavascriptライブラリなど探せば幾らでもあるだろ。
例えばこれとかな↓

URLリンク(www.s2factory.co.jp)


713:デフォルトの名無しさん
09/02/24 23:13:27
>>707
window.navigate2 によるページ遷移ならパラメタにリクエストヘッダ指定できる
ただし、セキュリティの問題とかのからみがあるので正常動作するかは知らん


714:デフォルトの名無しさん
09/02/25 00:41:18
>>705
肯定

715:デフォルトの名無しさん
09/02/25 00:53:39
強制終了するとCOM参照の解放が行われないから、
アウトプロセスサーバが終了しないで残ったりするから、
やめといたほうがいいよ。

716:デフォルトの名無しさん
09/02/25 03:10:57
Timeoutの終了だとCOM参照の解放が行われるようだから
>>688方式がお勧めだよ

717:デフォルトの名無しさん
09/02/25 03:22:07
出来ない方法がオススメって・・・・・
あっ、「もし出来るのなら」ってことか

718:デフォルトの名無しさん
09/02/25 03:34:30
COMがどういうものか解ってない人にとっては出来ないかもね。


719:デフォルトの名無しさん
09/02/25 03:39:08

出来ると言い張る奴は居るが
出来ることを事実として示せる奴は居ない件について

自分だけは解ってるようなことを言う奴は居るが
具体的な理論を述べられる奴は居ない件について


720:デフォルトの名無しさん
09/02/25 03:46:40
>>718
まぁWSHに限らずの話でスレ違いになるから詳細は伏せる。

721:デフォルトの名無しさん
09/02/25 07:08:03
本当は自分でも間違ったことを言ってることに気付いてるが
引き下がれず必死に誤魔化そうとする姿は滑稽だな。

722:デフォルトの名無しさん
09/02/25 08:10:36
初心者なんだから許してやれよw


723:デフォルトの名無しさん
09/02/25 08:59:36
>>720
残念、WSHに限った話だ

724:デフォルトの名無しさん
09/02/25 09:09:09
WSHスレってどういうことを語り合うの?

WSHを利用するのはスクリプト言語で、****scriptの話をしちゃいけないっていうじゃない。

じゃ何を話すの?

725:デフォルトの名無しさん
09/02/25 09:15:35
話題転換?

726:デフォルトの名無しさん
09/02/25 09:32:58
>>724
WSHで実行したスクリプトから、WSHで実行されてる別のスクリプトを
WScript.Quitする話とか。

これは言語の話ではなく、純粋なWSHの話だ。

727:デフォルトの名無しさん
09/02/25 11:21:59
話題転換失敗
出来る厨、涙目w

728:デフォルトの名無しさん
09/02/25 19:16:06
WScript.QuitはWScript.Sleep中は効くけど、MsgBox中などは効かない。
WScript.TimeoutならMsgBox中も効くので、使い分けてね。

729:デフォルトの名無しさん
09/02/26 13:37:29
なるほど
ありがとうございました

730:デフォルトの名無しさん
09/02/27 10:47:05
Windows XP SP3、WSH 5.7、Access 2003 VBA

フォームにCommandButtonとListBox(値リスト)を貼り付けて、

Private Sub コマンド0_Click()
Dim objShell As Object
リスト1.AddItem "AAA"
Set objShell = CreateObject("WScript.Shell")
Call objShell.Run("%ComSpec% /C SYSTEMINFO", , True)
Set objShell = Nothing
MsgBox "おわり"
End Sub

リスト1.AddItem "AAA" を

・コメントアウトするとRunが実行完了まで待機する
・コメントアウトしないとRunが実行完了まで待機しない

みんな、この現象が起きる?

731:デフォルトの名無しさん
09/02/27 16:39:35
すれ地外が出てきませんように

732:デフォルトの名無しさん
09/02/27 17:39:16
Excel2007では起きない
.Popup "aaa",5 はだめだけど

733:デフォルトの名無しさん
09/02/28 22:50:09
VBSを使って、親ディレクトリ配下のサブディレクトリの中身の表示方法を「縮小版」に変更しようと思う。
ディレクトリの表示を変更するため、Windowsを制御する「 Windows API関数」を使えばいいというのは
分かったんだけど、肝心の「フォルダの表示方法を変更する関数」が見つかりません。
そこで以下の質問。

Q1.そもそもVBSで実現することは可能か?
Q2.「 Windows API関数」で縮小版の制御はできるのか?

調べてはいるんですが、何の成果もあがりません。
質問スレで聞いたらここに誘導されたので・・・。
お願いします。

734:デフォルトの名無しさん
09/02/28 22:59:49
>>733
よく分からん
既存のエクスプローラの挙動を変えたいのか、
縮小表示のエクスプローラを起動したいのか、
自前のアプリに縮小表示の機能を作りこみたいのか
まず、何をしたいのかをはっきりさせてくれ

735:デフォルトの名無しさん
09/02/28 23:06:42
>>733
A1.WSHとVBSの機能では不可能
A2.そもそもWSHやVBSはWinAPIを呼べない

COMと呼ばれる汎用コンポーネントを介すことで
実現自体は不可能じゃないけどね
どうしてもやりたければ、WSHやVBSではなくそっち方面を調べること

736:デフォルトの名無しさん
09/02/28 23:08:53
WSHはCOMですけど?

737:デフォルトの名無しさん
09/02/28 23:09:54
WindowsAPIじゃなくてExplorerAPI使わないとね!

そんなんあるのか?

738:デフォルトの名無しさん
09/02/28 23:12:32
ActivePerlからWin32API呼べますけろ?

739:デフォルトの名無しさん
09/02/28 23:14:13
URLリンク(www.atmarkit.co.jp)

740:デフォルトの名無しさん
09/02/28 23:14:58
>>736
知ってますよ
幾人かの妄想上ではWSHがCOMだってことくらい

現実世界ではそれを証明できずに論破されましたが

741:デフォルトの名無しさん
09/02/28 23:21:48
「知る」と「分かる」の違い?

742:デフォルトの名無しさん
09/02/28 23:28:03
URLリンク(ja.wikipedia.org)
正確にはWSH=ActiveScripting(COMを利用してる)のホスト。

広義ではCOM(COMに関係する)だけど、狭義ではCOMそのものではない。

743:デフォルトの名無しさん
09/02/28 23:33:47
関連する、と、広義に当てはまる、は違う件について。

というか、外からWScript.QuitやWScript.Timeout出来るって話はどうなったの?
これの具体例出せれば、WSHがCOMだという現在敗色濃厚な主張も一発逆転じゃん。

744:デフォルトの名無しさん
09/02/28 23:42:10
COMの話はどうでもいいが、本当にそれが出来るなら俺も知りたいね

745:デフォルトの名無しさん
09/03/01 00:24:06
エクスプローラはCreateObjectできないけれど、
COMだからオブジェクト参照は別途入手して、
その内部オブジェクトのShellFolderViewのオブジェクト参照を
WSHの変数に設定すれば、
objFolderView.CurrentViewMode = viewMode
のように使えるのだ。わかるか?

746:デフォルトの名無しさん
09/03/01 00:41:43
知ってるけどそれがどうかしたの?

747:デフォルトの名無しさん
09/03/01 00:44:01
知っててわからんとは
まっ多少なりとも応用力がないと役に立たんみたいやね


748:デフォルトの名無しさん
09/03/01 00:46:34
URLリンク(ja.wikipedia.org)

749:デフォルトの名無しさん
09/03/01 00:48:20
>>747
何勘違いしてるの?

750:デフォルトの名無しさん
09/03/01 00:52:04
>>743
ScriptContorlでWScriptを渡すのはいいのかな?
元々の要望通りになるとは思えないけど。

751:デフォルトの名無しさん
09/03/01 01:02:19
>>748のCOMの定義にあるインターフェイスを介す方法でよろしく
それ以外の方法で参照を取って操作したところでCOMとは言えないし

752:デフォルトの名無しさん
09/03/01 02:12:07
え~と、IUnknownを実装していてoleview.exeやExcelの参照設定からでもオブジェクトの内容を見れたとしても、それでもCOMではないと言い張るんだ?
Windows Script Hostの略称「WSH」とスクリプトからグローバルに参照できるインスタンス「WSH」を混同してるわけ?

753:デフォルトの名無しさん
09/03/01 02:15:32
はぁ?

754:デフォルトの名無しさん
09/03/01 02:18:40
ふわぁ~眠

755:デフォルトの名無しさん
09/03/01 02:28:40
COM serverはCOMだけど、COM ClientはCOMじゃない、みたいな言い方だな。

748をじっくり読めば分かるけど、COMってのはインターフェース等の通信規格の事で、
COM ClientがCOMじゃないって言うなら、COM ServerもCOMじゃないんだが。

756:デフォルトの名無しさん
09/03/01 03:24:39
何見当違いなこと言ってキレてるんだ?

757:デフォルトの名無しさん
09/03/02 19:14:29
>>735が恥ずかしさのあまり誤魔化そうと暴れまわってるんじゃなかろうか

758:デフォルトの名無しさん
09/03/02 19:17:14
WScript.Quitと言えばこんなことも
URLリンク(blog.livedoor.jp)

759:デフォルトの名無しさん
09/03/02 21:02:59
>>757
残念ハズレ

760:デフォルトの名無しさん
09/03/02 22:00:56
          . '   _ 二二 _ .、
          /    /´ -‐…‐- .`\
        /     /´    i   !`ヽト、
.    ,ヘ  ,'   i    !  !  | |i  |ハ i ヽ キリッ
   /  ゝ!  ノ|  ! !::__!::ノ ´  ̄  i::.i |!
   \  .| .:i i :i i |´   \  / `!、ハ:!
      `ヽi  从 i i | ニニミ    .ニニ !:::::|
.       |  YハiハN  {r::リ`  ´{r::リ '::::N    < 残念ハズレ
.       |  ヽゝ   ´´     ``ハ!`      
.       |∧   Ⅵ!        ′ ,':::|
       j/∧  _!::} 、   ⊂' ..イ:::::|
      ///∧´ ∨  `  ,.... ィ´゙Y:::::|
.     /////∧ ヽ    {ト、∧ |::::::!
     ,< ̄ ̄∧  } `ヽ  >''} { ̄`ヽ
.    /   `ヽ:::::::::Y´ヽ      i´`∨::::∧
   /      ∨:::::| .:: !       i .:.: !::::/ i
           _ ___
        ,. :'´: :,. -―‐-ミ:ヽ、
      /: : : :厶ィ': ´ ̄ ̄ヾ : :\
      /: : : : : :.!: :M: : : : : }、: ヽト、:.\   <じゃっておwww
     i: : :.!: : : レ‐' ` ̄⌒ ⌒" トヘ:ハ!
   ト--|: : :.!: : 、|  ー‐'' ´ `'ー  }: :.ト
  ミ ミ ミ : :!: : : :! z=≡   ≡z.{: :.ハ    ミ ミ ミ
 /⌒)⌒)⌒.ハ :_Nとつ \\\ C VVリ   /⌒)⌒)⌒)
 | / / /:弋こ \ヽ __,.   } (⌒)/ / / //
 | :::::::::::(⌒) : :}\  /   1  /  ゝ  :::::::::::/
 |     ノくf⌒Y ` {_  _,ノイ|    /  )  /
 ヽ    /  ヽ ヘ,、  _「 |::!:::::}   /    /     バ
  |    |   l||l 从人 l||l.!::|イ:::ヽ_./ l||l 从人 l||l  バ  ン
  ヽ    -一''''''"~~``'ー--、/:::::イ;  -一'''''''ー-、    ン

761:デフォルトの名無しさん
09/03/02 22:32:15
必死になってAA探してくるほど悔しかったの?

762:デフォルトの名無しさん
09/03/02 23:00:23
>>761
かわいそうだからそっとしておけ。

763:デフォルトの名無しさん
09/03/02 23:24:22
A1.WSHとVBSの機能では不可能
A2.そもそもWSHやVBSはWinAPIを呼べない

COMと呼ばれる汎用コンポーネントを介すことで
実現自体は不可能じゃないけどね
どうしてもやりたければ、WSHやVBSではなくそっち方面を調べること

764:デフォルトの名無しさん
09/03/02 23:54:32
そんなに怖い顔してモニターを睨まないでください

765:デフォルトの名無しさん
09/03/03 00:49:54
反撃したいなら、間違ったこと書いてるレスをコピペしないと反撃にならないぞ

766:デフォルトの名無しさん
09/03/03 01:37:17
VBSもCOMですけど

767:デフォルトの名無しさん
09/03/03 01:39:21
JScriptもCOMですけど

768:デフォルトの名無しさん
09/03/03 03:01:44
┐(´ー`)┌

769:デフォルトの名無しさん
09/03/03 03:09:20
COMMAND.COM も COM ですけど

770:デフォルトの名無しさん
09/03/03 03:40:59
完全に論破されて壊れちゃったんだね

771:デフォルトの名無しさん
09/03/03 12:55:13
>733
 AppActivate() で目的のウィンドウを手前に持って来る
 → SendKeys()
 
 …で十分みたいな気がするのは俺だけか?

772:デフォルトの名無しさん
09/03/03 14:00:02
COMで確実に操作できるのにわざわざタイミングのむずかしいSendKeysを使うものか

773:デフォルトの名無しさん
09/03/03 14:14:26
WScript.Echo('JScriptはCOM',typeof(new Object()),'ですけど');

774:デフォルトの名無しさん
09/03/03 14:30:12
sub sub1()
end sub
msgbox "VBScriptはCOM " & typename(getref("sub1")) & "ですけど"


775:デフォルトの名無しさん
09/03/03 14:57:00
MORE.COMはEXEですけど

776:デフォルトの名無しさん
09/03/03 19:23:16
結局勘違いして大法螺吹いてるだけだったわけだ。
何か俺等の知らない高いスキルでも持ってるのかと少しは期待したが
出てきた物は糞の足しにもならない言い訳がましい勘違い屁理屈ばかり。
格下と解りゃ煽っても踊らせても何も得る物は無いわけだから
あとは玩具として楽しめれば上等って話だな。

777:デフォルトの名無しさん
09/03/04 19:52:55
「ググレカス」は
大見得切ってみせたものの出す物出せない忍者ハッタリくんの
隠れ身の術の呪文なんだよ^^

778:デフォルトの名無しさん
09/03/05 20:32:59
真珠を投げないでください

779:771
09/03/05 20:53:21
>772
 
 ホントだ、試してみたら >>745 の CurrentViewMode を使う方が
 便利だわ。収穫だった、thx

780:デフォルトの名無しさん
09/03/05 23:21:47
>>778
"真珠"は投げられてない

781:デフォルトの名無しさん
09/03/06 02:31:06
>>745の中にキラッと光るものが、、、あっ真珠だ!

782:デフォルトの名無しさん
09/03/06 02:45:52
自分で垂れ流した糞を褒め称えてりゃ世話無いぜw

783:デフォルトの名無しさん
09/03/06 02:57:38
ヒントを与えすぎたかと思ったがわからんかったようやね?よかったよかった

784:デフォルトの名無しさん
09/03/06 03:10:25
ヒントどころかズバリ書いちゃってるじゃん
アレでわかんない奴なんて居ないよ

785:ショートカット
09/03/17 22:58:26
ショートカットの指してる先のファイルをNTFSパーティーション上で
移動したりすると
元のショートカットそのものも次にダブルクリックしたときに
自動的に更新するよね?
(知らなかった人は試してみ?)

そんでこの自動更新を一個一個ダブルクリック等せずに
WSHでやる方法ないですか?

画像のショートカットが大量にあって
リンクが外れてサムネイルがみれなくなってしまって困ってるんだ
(もちろんダブルクリックすれば見れるようになるんだけど、数がおおくてめどい)

これじゃおちおち画像の整理もできやしないよ!

786:デフォルトの名無しさん
09/03/17 23:03:03
WshShotcut Resolve

787:ショートカット
09/03/18 00:03:00
Resolveてなに?

788:ショートカト
09/03/18 00:48:35
WshShortcutオブジェクトでResolve試してみたけど

オブジェクトでサポートされていないプロパティまたはメソッドです XXX.Resolve

てなっちゃったよ
XXX.Resolve 4
XXX.Resolve = 4
両方同じ

具体的にどうやってResovlveすんの?
一応WSHは5.7でVBScript

789:デフォルトの名無しさん
09/03/18 00:56:33
shell.application
folderitem.getlink.resolve

790:デフォルトの名無しさん
09/03/18 01:00:56
元ファイルのフォルダごとリンク先を変えたのなら、
Shortcut Director というツールで一括変更できる。

WshShortcut の Resolve はリファレンスにあるけど、存在しない。

791:デフォルトの名無しさん
09/03/18 01:03:08
saveし直せばいいんじゃね

792:デフォルトの名無しさん
09/03/18 01:55:45
ショートカットファイルを複数D&D。
でも当方Vistaで削除しますか?っていわれちゃう。
-----------------------------
Option Explicit

Dim shellapp
Dim fso
Dim fc
Dim fcItem
Dim lnkFile
Dim objlnk
Dim e

Set shellapp = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")

For Each lnkFile In WScript.Arguments
Set fc = shellapp.NameSpace(fso.GetParentFolderName(lnkFile))
Set fcItem = fc.Items
For Each e In fcItem
If e.Path = lnkFile And e.IsLink Then
Set objlnk = e.GetLink
objlnk.Resolve(4)
objlnk.Save
End If
Next
Next

WScript.Echo "Done."
Set fso = Nothing
Set shellapp = Nothing


793:デフォルトの名無しさん
09/03/18 03:41:20
set e=fcItem.item(fso.GetfileName(lnkFile))


794:ショートカット
09/03/18 07:36:45
みんなありがとう
今日帰ったら早速試してみるよ
>>789-793

795:デフォルトの名無しさん
09/03/18 15:29:21
自宅のXPマシンだと出来た。
OSの追跡機能をOFFってるとそもそもだめなのね。
>>793反映版。

Set shellapp = CreateObject("Shell.Application")
Set fso = CreateObject("Scripting.FileSystemObject")

For Each lnkFile In WScript.Arguments
Set fc = shellapp.NameSpace(fso.GetParentFolderName(lnkFile))
Set fcItem = fc.Items
Set e = fcItem.Item(fso.GetFileName(lnkFile))
Set objlnk = e.GetLink
objlnk.Resolve(4)
objlnk.Save
Next

WScript.Echo "Done."

796:デフォルトの名無しさん
09/03/19 14:26:34
俺は追跡はウザイだけなので切ってるよ。

797:デフォルトの名無しさん
09/03/20 14:54:30
そもそもショートカットっていらなくね?

798:デフォルトの名無しさん
09/03/20 16:28:11
つかえないやつにかぎってそういうんじゃね?

799:デフォルトの名無しさん
09/03/20 17:58:52
データに対するショートカットって使わないな。
ハードリンク使うし。

800:デフォルトの名無しさん
09/03/20 18:10:22
うん。ランチャとジャンクション使うよ普通は

801:デフォルトの名無しさん
09/03/20 18:52:59
.wshのショートカットって使わないな。
.lnkのショートカット使うし。


802:デフォルトの名無しさん
09/03/20 18:54:51
WSHって使わないな。
PowerShell使うし。

803:デフォルトの名無しさん
09/03/20 19:37:41
PowerShellって使わないな。
AppleScript使うし。

804:デフォルトの名無しさん
09/03/20 19:56:04
> AppleScript
どこら辺を笑えばいいの?

805:デフォルトの名無しさん
09/03/20 20:21:43
あまりの滑りっぷりの寒さ

806:デフォルトの名無しさん
09/03/21 11:46:27
#!/bin/bash
hostname
who is god
hostname | sed 's/^[^\.]*\.//'

# VBSでやるとしたら
#Option Explicit
#
#Dim WSHNetwork
#Set WSHNetwork = WScript.Createobject("WScript.Network")
#
#WScript.Echo "ドメイン名  :" & WSHNetwork.UserDomain
#WScript.Echo "ユーザー名  :" & WSHNetwork.Username
#WScript.Echo "コンピューター:" & WSHNetwork.ComputerName


807:デフォルトの名無しさん
09/03/21 11:47:47
#!/bin/bash
sed 's/ようこそ/Welcome/g' youkoso.txt > welcome.txt

# VBSでやるとしたら
#Set fso = CreateObject("Scripting.FileSystemObject")
#Set regEx = New RegExp
#Set inFile = fso.OpenTextFile("C:\TechEzo\Round23.txt")
#Set outFile = fso.CreateTextFile("C:\TechEzo\Round23_2.txt")
#
#regEx.Pattern = "ようこそ"
#repStr = "Welcome"
#Do Until inFile.AtEndOfStream
# tempLine = inFile.ReadLine
# repLine = regEx.Replace(tempLine, repStr)
# outFile.WriteLine repLine
#Loop
#
#inFile.Close
#outFile.Close

808:デフォルトの名無しさん
09/03/21 11:52:56
MSがWSHを半ば見限ってPowerShellを開発したのは当然のこと。
上記二例からわかる通り、WSHでは
非開発者の管理者やエンドユーザには負担が大きくなるからだ。

809:デフォルトの名無しさん
09/03/21 13:13:07
わかってないなぁ
M$は普通の人にPCを便利に使ってもらう必要はない
直感的に操作できるようにして便利だと錯覚させればOKだから

それに、一般人に簡便なスクリプト言語与えたら、簡単なツールで金取ってるような無能が失業するだろ
色んな意味で、馬鹿にはコンビューティングに目覚めないでもらったほうが都合がいいのさ

810:デフォルトの名無しさん
09/03/21 14:12:53
PowerShellなら
(cat youkoso.txt) -replace "ようこそ","Welcome">welcome.txt
でいいんだもんな。リダイレクションだとUnicodeになっちゃうからOut-Fileを使う方がいいんだろけど。
WSHはエディタの補完機能がないと全く書く気になれない。

811:デフォルトの名無しさん
09/03/21 14:24:17
> 上記二例からわかる通り
そんな不適切な例で、何が解るって言うつもりだ?

君がやってるのは、「四則演算は電卓の方が手軽だからPCはこの世に必要ないものです」と同じ事。
電卓側が手軽になる例だけ挙げて、その逆やましてや電卓で不可能なことには触れていない。

本気で書いてるなら「視野が狭い」と言うべきだが、きっと故意にやってるので「頭が悪い」と言った方が正しいな。

812:デフォルトの名無しさん
09/03/21 15:41:01
> 上記二例からわかる通り
「頭が悪い」

813:デフォルトの名無しさん
09/03/21 15:47:49
実にくだらない争いを見た。

814:デフォルトの名無しさん
09/03/21 16:57:26
PowerShellやbashより簡単になる例ってどんなのがあるの?

815:デフォルトの名無しさん
09/03/21 17:01:31
すれ違い

816:デフォルトの名無しさん
09/03/21 17:02:57
しつこい

817:デフォルトの名無しさん
09/03/21 19:00:47
>>807
Set fso = CreateObject("Scripting.FileSystemObject")
fso.CreateTextFile("C:\TechEzo\Round23_2.txt").Write Replace(fso.OpenTextFile("C:\TechEzo\Round23.txt").ReadAll,"ようこそ","Welcome")


818:デフォルトの名無しさん
09/03/21 21:19:05
>>817
それでもbashより面倒なのがイタいな

819:デフォルトの名無しさん
09/03/21 21:25:09
そんなに行数、文字数減らしたかったら、
sed win32版を使えばいいだけ。あとはcygwinでも使え。
比較すること自体が嫌がらせ。荒らすなよ。

820:デフォルトの名無しさん
09/03/21 22:00:41
>>818はsedをbashだと思ってるのかな?

821:デフォルトの名無しさん
09/03/21 22:05:54
というか >>807 の「VBSでやるとしたら」のコードが面倒過ぎなだけだろうもん。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
sText = Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

822:デフォルトの名無しさん
09/03/21 22:06:54
間違った・・・・。

Set oShell = CreateObject("WScript.Shell")
oShell.Exec("cmd /c more > C:\TechEzo\Round23_2.txt").StdIn.Write _
Replace(oShell.Exec("cmd /c type C:\TechEzo\Round23.txt").StdOut.ReadAll, "ようこそ", "Welcome")

823:デフォルトの名無しさん
09/03/21 23:11:20
perl(Active) や PHPから使えばいいじゃん。

824:デフォルトの名無しさん
09/03/22 01:18:30
@if(0)==(0) CScript.exe //NoLogo //E:JScript "%~f0" <youkoso.txt > welcome.txt & GOTO :EOF & @end
WScript.StdOut.Write(WScript.StdIn.ReadAll().replace(/ようこそ/g,"Welcome"));

825:デフォルトの名無しさん
09/03/22 03:22:35
WSHでの正規表現の扱いは、確かに面倒ではある

826:デフォルトの名無しさん
09/03/22 03:45:23
その代わりに柔軟だけどね

827:デフォルトの名無しさん
09/03/22 04:26:12
> 上記二例からわかる通り
ほんとよく分かった。もっと勉強してから出直せよ

828:ショートカット
09/03/22 14:16:58
>>799
>>799

おーハードリンクいいですね

早速ショートカットをハードリンクに置き換えるスクリプトでも、、

と思ったんだけどひとつ素朴な疑問。

同じ内容の2ファイルが
ハードリンクなのか別コピーなのか識別する方法って
どうやるの?
(内容がFC /bとかで一致してるのがわかってるとして

829:ショートカット
09/03/22 14:17:56
さすがに
試しに片方のファイルに追記してみるとかはなしで

830:デフォルトの名無しさん
09/03/22 16:43:41
ハードリンクの意味わかってるか?

831:ショートカット
09/03/22 17:27:38
>>830
その質問は本人に聞いても意味ないでしょ

832:デフォルトの名無しさん
09/03/22 17:28:07
>>830
質問の意味わかってるか?


833:デフォルトの名無しさん
09/03/22 17:35:55
fsutil objectid query ファイル名
の結果が一致したら実体が同一ってことのはず。

834:デフォルトの名無しさん
09/03/22 17:45:30
リンクカウントは?

835:デフォルトの名無しさん
09/03/22 17:50:50
カウントだけじゃ
・AとBが同一内容で実体が別
・それぞれA=A'とB=B'のハードリンクが存在する
というケースで誤認するはず

836:デフォルトの名無しさん
09/03/22 17:54:17
そうじゃなくてリンクカウント調べるには?


837:デフォルトの名無しさん
09/03/22 18:14:17
objectidが一致するファイル名を数える

838:デフォルトの名無しさん
09/03/22 18:15:18
だからリンクカウントじゃハードリンクの存在しかわからないから
誤認する可能性があると言ってる。厳密にやる必要性については知らん。

839:デフォルトの名無しさん
09/03/23 00:11:43
GetFileInformationByHandle()つかうみたいね

840:618
09/03/23 00:52:03
>>836
「リンクカウント調べる の は?」
と空目してた。正直すまんかった

841:デフォルトの名無しさん
09/03/23 21:34:37
IE8 入れたけど、htmlfile から window オブジェクト取得して
userAgent 調べると MSIE 7.0 のままなんだけど、何故に?

IE から調べるとちゃんと MSIE 8.0 が表示される。

842:デフォルトの名無しさん
09/03/23 23:39:00
IE8、正式版と言うわりには色々おかしいような
WSH関係無いけど、SSLのクライアント証明書が使えなくなった

843:デフォルトの名無しさん
09/03/24 20:59:43
>>841
べつのdllなんじゃろうて
その理由はきっとこぴぺ開発
もっともらしく言えば既存環境に影響を与えないように環境を二重にしたとか

844:デフォルトの名無しさん
09/03/25 03:05:21
確かに htmlfile と IE の window オブジェクトは色々違いあるね。
前者は特にクリップボードに書き込みできないのが勿体無い。

845:デフォルトの名無しさん
09/03/25 10:17:45
それは単にセキュリティゾーンの設定

846:デフォルトの名無しさん
09/03/25 11:10:30
prompt()がだめとか

847:デフォルトの名無しさん
09/03/30 00:10:40
wsfの拡張子を他のに変えてWSHに渡すと
「ファイル拡張子 ".xxx" を持つスクリプト エンジンはありません。」
って言われるんだが、内容はwsfの様式で、拡張子が.wsfではないファイルを
wsfとして実行させるにはどうしたら良い?

.wsfはwscript.exeの通常実行のままで、他を拡張子毎にcscript.exe実行やデバッガ実行などを
既定動作にしたいんだが、.wsf時には正常に実行できるファイルでも、拡張子を変えた途端にエラーとなる。
デバッグの有無(//D)なら、<?job debug="true" ?>で済むが
デバッガ実行(//X)とかcscript.exe実行とかはxml要素での指定が出来ないし。

スクリプトで自身を実行し直したり、ラッパー噛ませたりと妥協策は有るには有るが
そういう姑息な方法ではなく、別拡張子を直接渡して問題なく実行できる方法が有ったら教えて欲しい。

848:デフォルトの名無しさん
09/03/30 00:15:15
ない

849:デフォルトの名無しさん
09/03/30 00:17:29
?script.exeの名前を変えてバイナリ書き換え

850:デフォルトの名無しさん
09/03/30 02:48:41
短いファイル名を使えばできるかも

851:デフォルトの名無しさん
09/03/30 03:47:59
拡張子を偽装するほうが、”姑息な方法” だと思うが。姉歯か?おまいは・・・

バッチで
CD /D %~dp1
IF %~x1==.wsf wscript.exe %1
IF %~x1==.vbs cscript.exe %1
IF %~x1==.unko cscript.exe //X %1
みたいなのを作って、ドラッグ&ドロップするのが簡単


852:デフォルトの名無しさん
09/03/30 03:54:39
知らないのに無理にレスすんな

853:デフォルトの名無しさん
09/03/30 16:51:02
ショートカットで我慢しろ

854:デフォルトの名無しさん
09/03/30 19:24:03
なるほど
ありがとうございました

855:847
09/03/30 19:50:17
>>848
ご存じありませんか。

>>849
それが出来るならそれでも良いんですが、バイナリをいくつかの文字コードで検索してみたところ、
使用方法説明の「//Job:xxxx Execute a 【WSF】 job」や、無関係な「Windo【wsF】older」しかヒットしません。

「もしかしたらこれで出来るかも」という思いつきなら、残念ながら出来ないようですということになりますが
間違いなく出来ると言うなら、書き換えるバイナリアドレスを教えてください。

>>851
取り違えられているようなので、今一度説明します。
問題は、拡張子によって実行コマンドを変える方法ではなく、
.wsfの拡張子を変更した物を渡して実行させる方法です。

他人の目を欺く偽装ではなく、自分の環境での話なので、
拡張子によって実行コマンドを変える部分は関連付けの変更により既に解決しています。
847でも書いた通り、問題は関連付けで既定動作(つまりダブルクリックやEnterキー押下で
wscript.exeやcscript.exeに渡るよう)にした上で、渡されたファイルが実行されないことです。

そのバッチも無意味で、.vbsを.unkoとしたものなら
IF %~x1==.unko cscript.exe //X //E:VBScript %1
で実行されますが、.wsfを.unkoとしたものでは>>847の2行目で書いたエラーが出るだけです。

>>853
妥協策としてはショートカットよりはラッパーを選びます。



今のところ、可能であるなら>>849が最有力候補です。
他人のPCで実行させる話ではなく自分のPCでの話なので、システムフォルダ内や関連付けは
自由に弄れますから、>>849が可能なら解決です。

856:デフォルトの名無しさん
09/03/30 19:57:32
なんでそんなことしたいん?

857:847
09/03/30 20:10:23
>>856
最初にも書いた通り、
> 拡張子毎にcscript.exe実行やデバッガ実行などを既定動作にしたい
からです。

vbsの拡張子をvbcに変えた物を既定でcscript.exe実行に定義する「VBCFile」と同じです。
URLリンク(www.vector.co.jp)
> .VBS、.JSファイルはWScript.EXEか、CScript.EXEのいずれか既定値で起動されます。
> 既定値は変更できますが、すべてのスクリプトファイル起動方法が一律に変わります。
> 例えば、大部分のスクリプトファイルはWScript.EXEで起動し、一部のスクリプトファイルだけを
> CScript.EXEで起動したい、というような使い分けが出来ません。
> そこで、CScript.EXEで起動する専用の拡張子を別に作ります。
> 「.VBS」に対して「.VBC」、「.JS」に対して「.JSC」です。

これを.vbsや.jsではなく.wsfでやりたいというだけの話です。

858:デフォルトの名無しさん
09/03/30 20:13:00
前スレか他スレで昔やってたやついたよ。

859:デフォルトの名無しさん
09/03/30 20:15:14
未解決の前例なんて無いのと同じ

860:デフォルトの名無しさん
09/03/30 20:25:38
wshext.dll内に.wsfがあるけど

861:847
09/03/30 20:42:51
>>858
確認してみましたが、>>859さんの言う通り、未解決のまま立ち消えのようです。

>>860
?script.exe以外だと、別拡張子が実行できるようになったとしても
今度は.wsfが実行できなくなって、本来の目的である使い分けが出来ないということになりませんか?

862:デフォルトの名無しさん
09/03/30 20:48:16
VectorにWSFFileがあるだろ

863:847
09/03/30 21:26:06
>>862
ありがとうございます。おかげさまで解決しました。
VBCFileと同じ作者のものなのに見逃してました。

864:デフォルトの名無しさん
09/03/31 00:57:39
吉岡さんは神

865:デフォルトの名無しさん
09/03/31 01:39:03
MVP落ち

866:デフォルトの名無しさん
09/03/31 23:43:58
バイナリ書き替えなくても>>850でできるのでは?

867:デフォルトの名無しさん
09/04/01 18:39:59
うん

868:デフォルトの名無しさん
09/04/01 18:55:59
無理

869:デフォルトの名無しさん
09/04/01 19:06:06
有理

870:デフォルトの名無しさん
09/04/01 22:03:54
実際に試してから書いた方がいいぜ

871:デフォルトの名無しさん
09/04/02 00:27:23
遅レスだけど、レジストリエディタで↓を参照。>847

HKEY_CLASSES_ROOT\.WSF
HKEY_CLASSES_ROOT\WSFFile\Shell\Open\Command

872:871
09/04/02 00:30:51
ちなみにVistaだとコンテキストメニューに「コマンドプロンプトで開く」ってのが
標準装備されてますな。

873:デフォルトの名無しさん
09/04/02 00:32:25
>>847を読み直したほうがいいぜ

874:デフォルトの名無しさん
09/04/02 14:37:34
なるほど

875:デフォルトの名無しさん
09/04/02 15:48:38
なるほど っていいたいだけだろ

876:デフォルトの名無しさん
09/04/02 15:56:29
なるほど

877:デフォルトの名無しさん
09/04/06 14:45:01
すみません、以前どこかで見たことがあるような気がするんですが
けっきょく捜しきれなかったので質問させていただきます

LAN内のほかのマシンで実行中のアプリ(MSAccess)をリモートから強制終了
させるVBSってのが知りたいのです

878:デフォルトの名無しさん
09/04/06 14:47:07
あれれ、質問なのにSageちゃった
ごめんなさい
あげさせてもらいますね

879:877
09/04/06 16:50:49
自己解決しました。

880:877
09/04/06 17:23:52
877です。
879は、私ではありません。

881: ◆877pupbpBk
09/04/06 17:33:07
本物の877です。
879は、私ではありません。
880も、私ではありません。

とは言え自己解決はしてますのでもう消えます。
この状況ではこの後も私の偽物が出てくるかも知れませんが
以後放置してくださって結構です。


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch