|
WindowsのInDesignCSのjavascript上で コンピュータ名を取得したいのですが、 どうにも実現できません。 ご教授お願いします。
1行記載なので、どうにも読みにくいかも しれませんが… var tmpStr='Set ws=CreateObject("WScript.Shell")\nSet colItems = GetObject("winmgmts:\\\\.\\root\\cimv2").ExecQuery("Select * From Win32_ComputerSystem")\nFor Each aa in colItems\nws.Echo aa.Name\nNext\n'; はエラーを吐かれてダメ…
var tmpStr='Set colItems = GetObject("winmgmts:\\\\.\\root\\cimv2").ExecQuery("Select * From Win32_ComputerSystem")\nFor Each aa in colItems\nmsgbox aa.Name\nNext\n'; alert(app.doScript(tmpStr,ScriptLanguage.VISUAL_BASIC)); は行けるが、 戻り値が戻らない…
この辺りで手が挙がってきてしまいました。
|
No.7640 2013/07/03(Wed) 18:21:04
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; YTB730; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)
|
Re: javascriptでコンピュータ名取得 / 流星光輝  |
|
|
|
> 戻り値が戻らない…
せうぞーさんの所に記載があるのですが、 http://d.hatena.ne.jp/seuzo/20080804/1217855399
取り出したい値がVBソース上に無いですね。 msgboxで取り出した内容を表示しようとしているだけです。 まぁ、そんなこと書いても動かないですから、 うごくコード晒しておきます。たぶんググれば解決できたはず(過去の自分がググって解決したんで)
あ、ちなみに、CS1でテストしてないです。 CS3でテストしました。
#target 'InDesign' var tmpStr='Set colItems = GetObject("winmgmts:\\\\.\\root\\cimv2").ExecQuery("Select * From Win32_ComputerSystem")\nFor Each aa in colItems\nPCName=aa.Name\nNext\napp.scriptArgs.SetValue \"myPCNAME\",PCName'; app.doScript(tmpStr,ScriptLanguage.VISUAL_BASIC); alert(app.scriptArgs.getValue("myPCNAME"));
|
No.7646 2013/07/04(Thu) 10:00:33
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
|
|
Re: javascriptでコンピュータ名取得 / お〜まち |
|
|
|
> 流星さん scriptArgはCS2からで、CSにはありません(ToT)
なので戻り値として取得できないので、 VBScript中でapp.userNameとかapp.FindPreferences.FindTextなどに書き込んでおいて、 それをJavascriptで読み出す。 という手順が必要になると思います。
CSはもう使ってないので全然テストできないですが(^^;
|
No.7647 2013/07/04(Thu) 10:15:45
Opera/9.80 (Windows NT 6.1) Presto/2.12.388 Version/12.15
|
|
Re: javascriptでコンピュータ名取得 / 流星光輝  |
|
|
|
> scriptArgはCS2からで、CSにはありません(ToT) IDLファイル検索して存在しないことを確認してきました… なんだかすみません。 CS1の環境は、そろそろ脱出できそうと思い、 最近は、もっぱらjsxはCS3を動作確認にしているのが仇に… そしてCS1にjs入れて玉砕したところです。orz
CreateObjectの失敗を恐れていて、 doScript内のコードで完結できないと、 困るんだと思うですが、思うだけです。
少し深追いしてみますけど……
|
No.7648 2013/07/04(Thu) 10:39:37
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
|
|
Re: javascriptでコンピュータ名取得 / 流星光輝  |
|
|
|
お〜まちさんのご指摘を受け、 CS1では動かないので、どーしてもCS1で動かしたいんだよ。 という場合の応急処置で、CreateObjectで参照して、 findPreferences.findTextに取得した値入れて、 doScript後に拾うように書きました。
このコードはCS1で動作確認済です。
var tmpStr='Set colItems = GetObject("winmgmts:\\\\.\\root\\cimv2").ExecQuery("Select * From Win32_ComputerSystem") \n For Each aa in colItems \n PCName=aa.Name \n Next \n set idapp=CreateObject("InDesign.Application.CS") \n idapp.FindPreferences.FindText=PCName'; app.doScript(tmpStr,ScriptLanguage.VISUAL_BASIC); alert(app.findPreferences.findText);
あんまし、綺麗じゃないなぁ…
|
No.7649 2013/07/04(Thu) 11:24:59
Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
|
|
Re: javascriptでコンピュータ名取得 / kuw |
|
|
|
流星光輝さん お〜まちさん ありがとうございます。
そうか! findTextとかに一度書き出す手もありですね。 Quitで戻り値得られないもんだから textで書き出す事ばかり考えてました。 目から鱗です。 質問してよかったです^^
レジストリからコンピュータ名を取得するようにして、 少しスリム化させました
var tmpStr='CreateObject("InDesign.Application.CS").FindPreferences.FindText= CreateObject("WScript.Shell").RegRead("HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\ComputerName\\ComputerName\\ComputerName")\n'; app.doScript(tmpStr,ScriptLanguage.VISUAL_BASIC); alert(app.findPreferences.findText); で上手く動きました。 感謝!
|
No.7650 2013/07/04(Thu) 13:34:03
Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; YTB730; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; CIBA)
|
|