ILH さん 2007年 09月 21日 08時 29分 37秒

むたぐちさん、有難う御座いました。

ただ残念ながらログを探してみましたが見つかりませんでした。

管理人むたぐち さん 2007年 09月 18日 20時 49分 18秒

To: van さん

直接の回答ではないんですが、ShellNameSpaceをHTA内で定義し、それをWSHからRunで呼び出してなんとか使えないでしょうか?
曖昧な返答になってしまったのは、このオブジェクト、今までの方法ではVistaでは使えないみたいなんで検証をあきらめてしまいました。XPなら理論上はいけるんじゃないでしょうか。


To: 眠たい詩人 さん

それだと文字通り打ち込んだURLしか取得できない気がします。
履歴とはちと意味が違うような。


To: ILH さん

InternetExplorerオブジェクトを呼び出して、HTMLでダイアログを作ってやるとかでしょうか。ログにサンプルあるかもないかも。

ILH さん 2007年 09月 18日 16時 14分 44秒

お初お目にかかります。

早速ですがVBScriptで
・○○を実行
・△△を実行
・キャンセル
の3つのボタンの有るダイアログを表示させる事は不可能でしょうか。

MsgBoxで出来るだろうと思ってたんですが、どうもこの機能は無いようで。

眠たい詩人 さん 2007年 09月 17日 11時 57分 15秒

van さん
> 一番最近にアクセスしたURLを取得
set objWsh=WScript.CreateObject("Wscript.Shell")
msgbox objWsh.RegRead("HKCU\Software\Microsoft\Internet Explorer\TypedURLs\url1")

van さん 2007年 09月 12日 23時 59分 29秒

初めまして。いつも大変参考に見させていただいております。
申し訳ありませんが、1点非常に困った問題があり質問させていただきたく書かせてもらいました。

行いたいアクションは「IEの履歴の中から一番最近にアクセスしたURLの取得」です。

そこで、私が最初に考えたスクリプトの動作は以下の通りです。

・「履歴フォルダ→今日→指定ホスト」にアクセス
・最終表示日時を比較して一番最近にアクセスしたURLを取得

しかし、上のように、最終表示日時を比較すると、
履歴フォルダの最終表示日時は秒数が保存されていないため、同時同分のアクセスが複数あると正確に一番最近にアクセスしたURLが取得できません。

取れないものだと思っていましたが、IEを起動して、エクスプローラーバーの履歴の「今日表示したページ順」にすると、同時同分の複数アクセスでもきちんとソートされています。

そこで、どうにか「今日表示したページ順」のような方法から一番最近にアクセスしたURLを取得できないものでしょうか?
申し訳ありませんがよろしくお願いいたします。

以上の文は、別の掲示板でも1度質問させていただいたのですが、回答は0件でした。
そのため、ぜひこちらでお助けいただければと思います。

この掲示板の昔の投稿をたどっていると以下のような発言が見つかりました。私なりに調べたのですが、情報が少なくやはり目的を達成することはできまんでした。

>jin-ren さん (sleipnir@xi.sub.jp) 2002年 10月 04日 21時 28分 50秒
>URL:http://sleipnir.sub.jp
>
>管理人さん、この間はありがとうございました。
>
>ShellNameSpaceについて、履歴表示の変更方法がわかりましたのでご報告に>参りました。
>
> CountViewTypes
> SetViewType
>
>この2つを使用します。
>あからさまに「SetViewType」が怪しいと思っていたのですが、
>これ単独では動作しませんでした。
>まず、どんな形でもいいので一度「CountViewTypes」を呼びます。
>
> lngRtn = nsc.CountViewTypes;
>
>その後、「SetViewType」に値を入れます。
>
> -1:日付順
>  0:サイト順
>  1:サイトを表示した回数順
>  2:今日表示したページ順
>
>これで変更されます。

ワンダユウ さん 2007年 09月 11日 11時 22分 03秒

>管理人むたぐち さん
返答ありがとうございます。
ファイルアップロードの件、了解しました。

>CreateObjectメソッドの第2引数を使う方法はダメなんでしょうか?
>DocumentからたどれるDHTMLオブジェクトにはGetRef関数も使えたと思いますし実用上は問題ないかと。


>>管理人むたぐち さん 2000年 07月 27日 12時 27分
を参考にGetRefで既存のIEのイベントを取得できました。

ありがとうございました。

管理人むたぐち さん 2007年 09月 11日 00時 22分 13秒

To: きー さん

お気になさらないで結構ですよー。
むしろ、現状を考えるきっかけを与えてくれてありがたく思っています。

たしかに紛らわしいですね、サイトのリンクの記述などで。すみません。

現状、PowerShellの質問を投げるところはtechnetかmixiコミュ、admintech.jpのMLくらいですから、掲示板がもう一個くらいあったほうがいいかもと思っているんですが、当方の管理能力の限界でこれ以上増やすのもちとつらいところがありまして、それならここでまとめてやっちゃうのもありかな?と思ったりいろいろしてまして。
当面は、ここでPowerShellの質問も可、ただしtechnetに投稿できる場合はそちらで、という暫定ルールを定めておきます。よろしくです。
(ただし、当方PowerShellはまだまだ研究段階なので満足いくサポートはできないかもですご容赦を)

あとノートンが反応する件は少し前のログに書いてあるので参照してください。
管理人むたぐち さん 2007年 07月 28日 12時 16分 48秒


To: ワンダユウ さん

たしかにIEオブジェクトにはConnectObjectが効きませんが、
CreateObjectメソッドの第2引数を使う方法はダメなんでしょうか?
DocumentからたどれるDHTMLオブジェクトにはGetRef関数も使えたと思いますし実用上は問題ないかと。

AKAさんの投稿されたコードは、当方の不手際でログが流れてしまいました。
この場を借りてAKAさんと利用者の方々にお詫び申し上げます。
アップローダの管理まで手が行き届かなかったのが要因です。ので、アップローダは閉鎖しました。もしAKAさんが見ておられたら、ぜひご自分でサイトを立ち上げてそこに静的ファイルとして保管していただくと嬉しいです。

ワンダユウ さん 2007年 09月 10日 21時 48分 21秒

こんにちは。

>>>
AKA さん 2006年 06月 24日 15時 17分 35秒

しばらく前にWScript.ConnectObject()ができないオブジェクトにConnectObject()させるコンポーネントを投稿しました。
<<<

のログを検索してやってきました。
やりたいのは上記のように、「IEにConnectObjectをする」です。

しかし、サンプルコードを実行してみると
ActiveXオブジェクトはオブジェクトを作成できません "WrapWithClassInfo"
のエラーになります。
環境はIE6(SP1) です。

WrapWithClassInfoは検索してもまったく情報が出ず、独自のクラスなのかもしれません。
さらにファイルのリンクが切れている状態でしてどうにもなりません。

もし過去にこのscriptを確認していた方がいましたらお知恵を拝借させてください。

きー さん 2007年 09月 10日 16時 19分 39秒

To: 管理人むたぐちさん

PowerShellスクリプトを書いていて分からず、色々と探したのですが解決せず、当初こちらに質問投稿しました。
左側に「PowerShell Scripting」のリンクもあり、掲示板はここだけなので勘違いしました。
投稿後、ここはWSH掲示板だと気づき、Technetに再質問し回答を頂きました。
その後、こちらの掲示板の取消しをしたかったのですが、取消し出来ず、かと言って、質問提示だけで終わるのも
嫌だったので、自己レスを付けました。
ですので、お題違いと言う事で質問記事及び自己レスを消去して頂いて結構です。
お騒がせしました(^^;)

そう言えば、過去ログを検索していた時に、確か「過去の記事リスト130」だったと思いますが、ノートンが
「http://www.roy.hi-ho.ne.jpによる侵入の試みを遮断しました。」とメッセージを表示しました。
どこかに設定誤りがあるのでしょうかね?

管理人むたぐち さん 2007年 09月 09日 20時 46分 02秒

To: たくさん
WSFファイルというと<object>に記述してるんでしょうか。
コード本文中でCreateObjectして、前後をOn Error Resume Next、On Error Goto 0で囲ってエラーをキャッチするのはいかがでしょうか?
あるいは、RegReadでHKEY_CLASSES_ROOTにあるProgIDがあるかないかを見るとか。いずれにしてもエラートラップが必要になりますが。
エラー処理に関しては@ITの連載をご覧ください。
http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh09/cformwsh09_02.html

To: きーさん
PowerShellのお題ですかー。
ここで取り扱うのがいいのかなぁ?
それともこんな感じのPowerShell掲示板があるといいでしょうか?
Technetにあるのでいらないかなぁとも思うのですが、サインインとか面倒ですしね。

きー さん 2007年 09月 08日 07時 12分 37秒

「PowerShellでの半角→全角、全角→半角の数値変換」の自己レスです。
と言っても受け売りですが・・・。
こんな感じです↓。

[reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")
$to_narrow = [Microsoft.VisualBasic.VbStrConv]::Narrow
$to_wide = [Microsoft.VisualBasic.VbStrConv]::Wide
[Microsoft.VisualBasic.Strings]::StrConv("12345", $to_narrow)
[Microsoft.VisualBasic.Strings]::StrConv("67890", $to_wide)

とても親切に教えて頂き、感謝。

たく さん 2007年 09月 05日 13時 44分 53秒

はじめまして、いつも興味深く拝見させていただいております。

質問がありまして投稿させていただきました。

現在WSFファイルを用いてVBとPowerPointと連結させているのですが、
インストールされていない場合、[参照が追加されていません]と表示されるのですが、それを表示させないOr自らエラーダイアログを作成してエラーを表示したいですが、どうすればよいか判りかねます。

お詳しいかたが居られましたら、ご教授のほどよろしくお願いします。

きー さん 2007年 09月 04日 17時 37分 28秒

はじめまして。

PowerShellで半角→全角、全角→半角の数値変換をしたいのですが、スクリプトが分かりません。
過去ログも探したのですが、無いようです。
.NET Frameworkオブジェクトを使用すると思いますが、どなたかご教授して頂けませんか?
宜しくお願い致します。

JokER さん 2007年 08月 27日 20時 16分 38秒

あ、うまくいきました^^;
ありがとうございました(^^)

JokER さん 2007年 08月 26日 04時 30分 31秒

管理人さんへ
どうにかできることができました。
ありがとうございます。
それでですね、
VBS講座・基礎編のL8の数字当てゲームみたいに
一回終わったら続けるかどうかの選択肢をだして、
「はい」を押したらまた数字を表示して
「いいえ」を押したら終わらせるようにしたいんですが、
どのような方法がいいでしょうか?
数字当てゲームのほうはどのような仕組みになっているのかよく分からなくて(汗

管理人むたぐち さん 2007年 08月 25日 19時 45分 43秒

To: JokER さん

ちょうど、そういうサンプルプログラムを記事で書いたので参考にしてください。基本は配列のシャッフルです。

http://www.atmarkit.co.jp/fwin2k/tutor/cformwsh06/cformwsh06_02.html

0を入れない方法については、Int((99 - 0 + 1) * Rnd + 0)を
Int((99 - 1 + 1) * Rnd + 1)とするとよいでしょう。

JokER さん 2007年 08月 24日 23時 31分 03秒

プログラムについて聞きたいんですが、
メモ帳で出来るVBSで
1〜75までの数字のを重ならないように24個ランダムに選んで表示をさせるプログラムを作りたくてやってみたんですが、
0が入ったり重なってしまって、
0が入らないようにして重ならないようにする方法を知りたいんですが
ありますか?
表示の仕方は単純に
3 53 23 37 2 18 42 46 18 67 61 31 25 5 …
みたいのでいいんですが

ラクテン さん 2007年 08月 24日 20時 52分 10秒

To管理人たむぐちさん
解決いたしました
ありがとうございます

管理人むたぐち さん 2007年 08月 19日 23時 28分 18秒

お返事たいへん遅くなってすみません。
忙しいというか忙しいですねw

To: ラクテン さん 2007年 07月 28日 21時 53分 10秒

> エクセル、マーケットスピード等はキーボードマクロなど利用し終了再起動
> るのですがRSSのみタスクトレイに常駐しますので最起動できません
> よい方法はありませんか

お勧めはしませんがWMIのWin32_Processクラスを使う手があります。プロセスを終了します。

Set Locator = WScript.CreateObject("WbemScripting.SWbemLocator")
Set Service = Locator.ConnectServer

Set oProcs = Service.ExecQuery _
("Select * From Win32_Process Where Description=""終了したいプロセスのexe名.exe""")
For Each oProc In oProcs
     oProc.Terminate
Next


To: ラクテン さん 2007年 07月 28日 23時 42分 24秒

> ウィンドウズの再移動ですがこれだけでは再起動しません
> ウィンドウズビスタです何が足りないのでしょう

VistaではWindows再起動はWMIを使います。

http://www.microsoft.com/japan/technet/prodtechnol/windows2000serv/maintain/featusability/mngwmi.mspx

リモート マシンを再起動する のところ、ローカル用に書き換えてください。

Set OpSysSet = _
GetObject("winmgmts:{impersonationLevel=impersonate,(Shutdown)}").ExecQuery _
("select * from Win32_OperatingSystem where Primary=true")
for each OpSys in OpSysSet
OpSys.Reboot()
Next

あとはshutdownコマンドがXPから搭載されていますのでそれを使うのもよいです。
WshShell.Run "shutdown -r"


To: kasa さん 2007年 08月 01日 18時 13分 18秒

> wsh 実行時、800A0030 DLL読込み時のエラー....が出ます。原因はなんでしょうか!

うーん、ちょっとわかりませんねぇ。
コードはどんな感じですか?それともどんなスクリプトもこのエラーが出るのですか?
WSHの再インストールをやってみるとか。


To: @MC さん 2007年 08月 08日 23時 10分 02秒

> 「プログラムの追加と削除」および「Windowsコンポーネントの追加と削除」
> の一覧をテキストに書き出すことを考えております。

http://www.roy.hi-ho.ne.jp/mutaguchi/bbs/list163.shtml
163-10 palazzo さん 2007/06/12 22:48
の記事を参考にしてください。


To: domingo さん 2007年 08月 10日 14時 44分 00秒

> なんとかならないでしょうか?

すみません、なんとかしてください(汗
というか、何が問題なのかちょっとよくわかりません。
版権的な問題ならばAKAさん最近来られませんので私にはちょっと対処しかねます。

オディール さん 2007年 08月 15日 16時 23分 36秒

下記の標準出力をイベントログの説明に書き込む件について解決しましたので、お知らせします。
とった方法ですが、一度標準出力、エラー出力をファイルにリダイレクションし、リダイレクトしたファイルを読み込んで、イベントログに出力するコマンドの引数に指定し、実現しました。
大変、お騒がせ致しました。また機会がありましたらよろしくお願い致します。

domingo さん 2007年 08月 10日 14時 44分 00秒

いつもお世話になっております。
ここで、質問するのは場違いかもしれませんが、何かヒントでもと思い
投稿させて、頂きました。

------------------------------------------------------------
AKA さん 2005年 12月 24日 06時 27分 12秒
クリップボード機能のオートメーションオブジェクトを作りました。
------------------------------------------------------------

自分で使う為に、ウィンドタイトルを取得する、exeファイルを作りました。
それを、
Set objWshel = CreateObject("WScript.Shell")
objWshel.Run "自作.exe"で起動して使っているのですが
取得したタイトルはクリップボード経由なのでちょっと面倒です。
そこで、AKAさんの作られたDLLのソースのgetDataの部分に
自分で作ったソースを入れてみたところ、うまくいきました。
(無断ですみませんm(_ _)m)
ただ、それではAKAさんの作った方が使えないので不便です。
そこで、独立してDLLを作りたいのです。
とても、敷居が高いのはわかっているのですが、
なんとかならないでしょうか?


@MC さん 2007年 08月 08日 23時 10分 02秒

こんにちは。

早速の質問で申し訳ないのですが、
「プログラムの追加と削除」および「Windowsコンポーネントの追加と削除」
の一覧をテキストに書き出すことを考えております。

コントロールパネルのように
 NameSpace(3)
で簡単に取得できなそうで・・・。

「Windowsコンポーネントの追加と削除」などへのアクセス方法について
何かよい方法をご存知ではないでしょうか?

オディール さん 2007年 08月 08日 12時 03分 54秒

はじめまして。
WSHにてEXECでコマンド実行し、標準エラー(stdErr)、標準出力(stdOut)を
イベントログに書き込みたいのですが、
下記のようなコードで書いてみたところ、できませんでした。
(コマンドは長いので省略していますが、実際のソースでは動作確認
できています。)
実現方法のヒントだけでもいただけると幸いです。

'コマンド実行
Set oExec = oShell.Exec("cmd.exe /c " & コマンド)

' 処理完了を待つ
Do While oExec.Status = 0
  WScript.Sleep 100
Loop
    
'正常終了
If Not oExec.StdOut.AtEndOfStream Then
  '標準出力を変数に格納
  Set strResult = oExec.StdErr.ReadAll         
  'イベントログの書込    
  oShell.Exec(イベントログ書込コマンド & strResult)
End If
'エラー発生
If Not oExec.StdErr.AtEndOfStream Then
  '標準エラー出力を変数に格納
  Set strResult = oExec.StdErr.ReadAll         
  'イベントログの書込    
  oShell.Exec(イベントログ書込コマンド & strResult)
End If

kasa さん 2007年 08月 01日 18時 13分 18秒

wsh 実行時、800A0030 DLL読込み時のエラー....が出ます。原因はなんでしょうか!

domingo さん 2007年 07月 29日 17時 56分 20秒

To 管理人むたぐち さん 2007年 07月 28日 12時 16分 48秒

>危険スクリプトが実行されることはありません。その点はご安心ください。

了解です、安心しました。
とりあえず、list139だけ削除して使っています。

ありがとうございました。

ラクテン さん 2007年 07月 28日 23時 42分 24秒

追記します
ウィンドウズの再移動ですがこれだけでは再起動しません
ウィンドウズビスタです何が足りないのでしょう
Set WSHSHell=CreateObject("WScript.Shell")
WSHShell.Run "C:\WINDOWS\RUNDLL.EXE USER.EXE,ExitWindowsExec"

ラクテン さん 2007年 07月 28日 21時 53分 10秒

はじめまして、暇なとき株トレーダーをします
楽天証券のRSS(リアルタイムスプレッドシート)を活用して日々
のデータをエクセルに保存しております前場のデータは保存できます
が後場のデータが保存できません調べてみると一度12時以降に
再起動しなくてはデータを取得できないようです
朝はすべてWINスケジューラーにVBSで組んだ自動起動で記録しておりますが
一日中見てることがありませんので午後からのデータが取れません
エクセル、マーケットスピード等はキーボードマクロなど利用し終了再起動
できるのですがRSSのみタスクトレイに常駐しますので最起動できません
よい方法はありませんか
ちなみにRSS起動は以下の記述です
'RSS起動
Set WshShell = CreateObject("WScript.Shell")
WshShell.CurrentDirectory = "C:\Program Files\MarketSpeed\MarketSpeed"
WshShell.Exec("C:\Program Files\MarketSpeed\MarketSpeed\RSS.exe")
終了さえできれば起動はできるのですが
ちなみに、タスクマネージャーにも表示されておりません



管理人むたぐち さん 2007年 07月 28日 12時 20分 35秒

To kayama1551 さん 2007年 07月 26日 21時 58分 27秒

追加コンポーネントを使っていいならこういうのもあります
http://hyons.hp.infoseek.co.jp/#TrayErControl

管理人むたぐち さん 2007年 07月 28日 12時 16分 48秒

To: domingo さん

> WSH Lab. 掲示板 記事検索プログラムで検索していたら、
> エラーが出て検索できなくなってしまいました。
> 原因を探してみたら、list139.htmが原因でした。
> その部分だけをローカルに保存すると表示出来ません。

ウィルスバスターが投稿された何らかのスクリプトをウィルスや
ワームの類と誤認識していて、置換処理を行っているのが原因と思われます。
当掲示板は<script>タグなど危険タグはサニタイズ(無効化)され、本文中にべたに書かれるので、危険スクリプトが実行されることはありません。その点はご安心ください。

対策ですが、ウィルスバスターの対象除外指定とかないですか?
私はちょっと持ってないのでわからないのですが…。
あるいはlist139だけはあきらめて、ほかのファイルをコピーして上書きするとかですね。とりあえずエラーだけは防げると思います。

K&K さん 2007年 07月 27日 20時 13分 15秒

a3さん ちゃっぴさん kayama1551さん
お三方ありがとうございました 個々にお礼を申し上げべきですが
皆様の意見記述を見ながら
やっていたら、できるようになりました
とても感謝です
ありがとうございます
では、

ちゃっぴ さん 2007年 07月 27日 18時 14分 35秒

To kayama1551 さん 2007年 07月 26日 22時 18分 24秒

> 個人的に、テスト中のスクリプトやアプリを強制的に中止するのに使用していますが、下記のようなスクリプトでできます

なんでも強制終了はよくないですよ。
相手の application によっては問題が生じます。

ちゃっぴ さん 2007年 07月 27日 18時 12分 20秒

To xylish さん 2007年 07月 27日 10時 16分 50秒

> WSHを使用して、アプリケーションのアンインストールを自動で行う事は可能なのでしょうか?

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall

配下の対象の application の subkey で UninstallString の値を
実行してやればよいでしょう。

ただし、silent uninstall を行いたいなら、対象の installer の
しかるべき option switch を指定する必要があります。

ちゃっぴ さん 2007年 07月 27日 18時 03分 54秒

To kayama1551 さん 2007年 07月 26日 21時 58分 27秒

> HTAを使用して、システムトレイに任意のアイコンを表示させたいのですが、良い方法がみつかりません。

WSH では無理ですね。
別の言語を使いましょう。

a3 さん 2007年 07月 27日 10時 47分 57秒

> aroma10 さん 2007年 07月 26日 22時 47分 02秒

Option Explicit ステートメントを使用する場合は、スクリプト内の他のステートメントより前に記述する必要があります。


a3 さん 2007年 07月 27日 10時 44分 16秒

> K&K さん 2007年 07月 26日 22時 02分 47秒

> 以下の記述をしましたが動作しません間違いでしょうか?
> Set WshShell = CreateObject("WScript.Shell")
> WshShell.SendKeys("% AppData%\Microsoft\Internet Explorer\Quick Launch\デスクトップの表示.scf")

間違いです。

SendKeysでWindowsキーが使えないので
Sendkeysメソッドの代替案として
「デスクトップの表示.scf」実行を示唆したつもりでした。

バッチファイルを準備し、内容を
%AppData%\Microsoft\Internet Explorer\Quick Launch\デスクトップの表示.scf
にして、
・コマンドから実行。
・WshShell.Runなどで実行
すればよいのでは?

まあ、それよりも
> ちゃっぴ さん 2007年 07月 26日 21時 24分 54秒
> kayama1551 さん 2007年 07月 26日 22時 05分 59秒
のお2人が勧められている

Set Shell = CreateObject("Shell.Application")

Shell.MinimizeAll()       '最小化
Shell.UndoMinimizeAll()     '元に戻す

が、楽でしょう。Windows2000以降なら問題なし。
それ以前で、シェル統合がされていないOSではできませんが。


余談ではありますが、SendKeysでWindowsキーが使えない理由は
SendKeysは、アクティブなウィンドウへキーストロークを送り込む機能ですが
Windowsキーは必ずタスクバーが処理するため、アクティブなウィンドウへ
「Windowsキーを押した」ということが伝えることができないためです。

xylish さん 2007年 07月 27日 10時 16分 50秒

WSHを使用して、アプリケーションのアンインストールを自動で行う事は可能なのでしょうか?

domingo さん 2007年 07月 27日 07時 27分 45秒

いつも、お世話になってます。
WSH Lab. 掲示板 記事検索プログラムで検索していたら、
エラーが出て検索できなくなってしまいました。
原因を探してみたら、list139.htmが原因でした。
その部分だけをローカルに保存すると表示出来ません。

list139.htmになにかあるのでしょうか?
ウイルスバスターもすごい勢いで警告してきます・・・

aroma10 さん 2007年 07月 26日 22時 47分 02秒

kayama1551サン
追記です
2行目にステートメントがありませんのエラーがでます

aroma10 さん 2007年 07月 26日 22時 44分 12秒

kayama1551san
記述はこれで間違いないですか?動作しません
タスクマネージャー名はmkspです
Set WshShell = CreateObject("WScript.Shell")
Option Explicit
Dim strComputer, objWMIService, colProcessList, objProcess
strComputer = "."
Set objWMIService = GetObject("winmgmts:"& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery ("Select * from Win32_Process Where Name = 'mksp'")
For Each objProcess in colProcessList
objProcess.Terminate()
Next

kayama1551 さん 2007年 07月 26日 22時 18分 24秒

aroma10さんはじめまして!

>私の仕事柄同じアプリを一定時間ごとに起動、終了を繰り返さなければならないのですが、
>アプリ終了のVBSが組めません御教授くださいませんか?

>実際どのように記述すればよろしいですか?
>推奨されてないようですが後は自己責任ということで
>お願いいたします


任意のアプリケーションを終了させる方法として、タスクマネージャーに表示される「イメージ名」から終了させることもできます。

個人的に、テスト中のスクリプトやアプリを強制的に中止するのに使用していますが、下記のようなスクリプトでできます

Option Explicit

Dim strComputer, objWMIService, colProcessList, objProcess

strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
  & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colProcessList = objWMIService.ExecQuery _
  ("Select * from Win32_Process Where Name = 'タスクマネージャーのイメージ名'")
For Each objProcess in colProcessList
  objProcess.Terminate()
Next

Wscript.Quit

環境によってうまくいくかわかりませんが、よろしければ「自己責任」でお試しください

kayama1551 さん 2007年 07月 26日 22時 05分 59秒

K&K さん はじめまして!

> 操作したいのは[Windows]+[D]のキイを操作ししたいのですが

代替方法として、こんな方法も有りますよ!

Dim Shell
Set Shell = WScript.CreateObject("Shell.Application")
  '#これで、表示されているウィンドウがすべて最小化されます 
  '#もし、最小化したものを戻したければ、下記のスクリプトを必要なイベント時に動作させます
Shell.UndoMinimizeAll()

ご参考までに



K&K さん 2007年 07月 26日 22時 02分 47秒

To a3さん
以下の記述をしましたが動作しません間違いでしょうか?
Set WshShell = CreateObject("WScript.Shell")
WshShell.SendKeys("% AppData%\Microsoft\Internet Explorer\Quick Launch\デスクトップの表示.scf")


kayama1551 さん 2007年 07月 26日 21時 58分 27秒

はじめまして!
HTAを使用して、システムトレイに任意のアイコンを表示させたいのですが、良い方法がみつかりません。
なにか良い方法はありませんでしょうか。

ちゃっぴ さん 2007年 07月 26日 21時 26分 18秒

To aroma10 さん 2007年 07月 25日 18時 08分 16秒

上の link から help を download して調べてください。
Sample 書いてあります。

ちゃっぴ さん 2007年 07月 26日 21時 24分 54秒

To K&K さん 2007年 07月 26日 16時 19分 47秒

> 操作したいのは[Windows]+[D]のキイを操作ししたいのですが

http://msdn2.microsoft.com/en-us/library/ms630417.aspx

a3 さん 2007年 07月 26日 21時 23分 41秒

> K&K さん 2007年 07月 26日 16時 19分 47秒

代替案を提示します。
"%AppData%\Microsoft\Internet Explorer\Quick Launch\デスクトップの表示.scf"
を実行します。
(タスクバーの「デスクトップの表示」アイコンクリックと等価)

a3 さん 2007年 07月 26日 21時 11分 08秒

> K&K さん 2007年 07月 26日 16時 19分 47秒

まず最初に、掲示板の上のほうに
「ヘルプファイルをダウンロードすることもできます。」
とリンクがありますので、そこからヘルプファイルを
ダウンロードしてみてみると良いですよ。

SendKeysのヘルプをみてみますと、Windowsキーの指定方法が無いですね。
何か別の方法を考えないといけませんね。

a3 さん 2007年 07月 26日 20時 55分 25秒

>さくら さん 2007年 07月 24日 23時 44分 11秒

ちゃっぴさんの内容に補足します。
> そもそも FullName (LDAP では DisplayName attribute) 自体が AD 上で
> unique になっていないので、結果として複数の結果が返ってくる可能性が
> あることはわかりますか?

LDAPへのクエリ結果で
同名の人がいる場合は、複数の結果が返ってくるのは当然ですが、
文字列としては異なる全角/半角の違いでも両方検索にひっかかって
来ることがあります。

(例)「a3」と「a3」は同じクエリで引っかかる可能性がある。
ご注意ください。


a3 さん 2007年 07月 26日 20時 43分 30秒

> 小鉄 さん 2007年 07月 17日 16時 22分 12秒

ちゃっぴさんからもご指摘があったとおり
レジストリ操作については
WindowsXP以降であれば、reg.exeを利用するのが楽です。
Window2000だとSupport Toolsの中に入っていたと思います。

K&K さん 2007年 07月 26日 16時 19分 47秒

素人です御教授ください
センドキイを使ってキーボード操作をしたいのですが
記述がわかりません
ちなみにわかっているのは
WshShell.SendKeys("% X")だけこれは最大化の意味だそうですが
操作したいのは[Windows]+[D]のキイを操作ししたいのですが
デスクトップの表示と非表示を
センドキイで操作したいのです
初歩的な内容ですいません

Return