仕事を辞めたい、怠け者だからな

仕事を辞めたいとグダグダ言いながらも、やめる手順が面倒だということで結局やめない「からな」の面倒嫌いブログです。日々のことなり、色々書いていきます。自由気まま、やりたいことばかりやっちゃう。

仕事を辞めたい、
怠け者だからな

メインブログです。
ぐだぐだしつつも、
やりたいことに全力全身!

  最高の出会いを求めて
自身の最高の出会いまでの道のり、
方法を書いていきます。

  標準体重を目指して
標準体重を目指して奮闘する!
ダイエットグッズ実践含みます。

【VBS】コマンドプロンプト PINGを打ちたい場合

Systemメモメモ: VBScriptでPing

MsgBox fncPing("192.168.1.1")

Function fncPing(host)
 Set objWMI = GetObject("winmgmts:\\.\root\cimv2")
 Set colItems = objWMI.ExecQuery("select * from Win32_PingStatus where address ='" & host & "'")
 For Each objItem In colItems
  If objItem.StatusCode = 0 Then
   fncPing = True
  Else
   fncPing = False
  End If
 Next
 Set objItem = Nothing
 Set colItems = Nothing
 Set objWMI = Nothing
End Function
http://happy44s.blogspot.jp/2012/03/vbscriptping.html


こういうことらしい。
大変便利なソースでございまする。

MsgBox fncPing("192.168.1.1")

Msgboxでは、fncPingを呼び出している。
そして引数は192.168.1.1

要するに、192.168.1.1にPINGを打つ。

そしてFunction fncPingの中を見る。
ステータスコードが0のときは問題なく
PINGが打てたときだ。

そのため、0の場合はfncPingにはTrueを返す。
それ以外はFalse。

そのため、MsgboxではFalseが表示される。

【WSH】他のバッチを呼びその終了を待つ方法【VBS】

VBSでWSHを使い
バッチファイルを呼び出す!そういった処理をしていました。

バッチファイルでFINDSTRを使ったんですね。
VBSじゃ出来ないもんね。たぶん。
てか、バッチファイルのほうが楽だし。

mochi-ha.hatenablog.com

で、確認してみたところ
バッチファイルの終了待ちをしていないみたいだった。

WSHでバッチファイルを呼び出して処理させるのは良いけれど
その後、処理後のファイルが必要になる。
その時の速度が速すぎるせいで、前回使用したデータを参照してしまっていた。

どうしたものか…と考えていたところ、解決策を発見!

ws.run("tmp.bat",1,1);
としてみて下さい。
3つめの引数が0以外の時終了待ちします。

http://oshiete.goo.ne.jp/qa/2168093.html

おほう?
やってみたけれど上手く行かなかった。

Document and Settings
とかの空白を引数だとコマンドプロンプト
判定されないように、わざわざ
最初と最後をダブルコーテーションで囲んでた。

それが問題かと思ったけど違う。

はて?

って思ったら以下サイトにありました。

Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
WSHShell.Run ("""%SystemRoot%\notepad.exe"""),1,true
'WScript.sleep(1000)
WSHShell.Run ("""%SystemRoot%\System32\calc.exe"""),1,true
WScript.Quit
http://blogs.yahoo.co.jp/memo_jane/2802229.html

ほ?
おお、できた!


ってことでソース。

'スクリプト名を含まないフルパスを編集する
	strScriptPath = Replace(window.location & "" , "file:///","")
	strScriptPath = Replace(strScriptPath,"/","\")
	strScriptPath = Replace(strScriptPath,"%20"," ")

	count=LEN(strScriptPath)
	
	For i=count to 1 step -1
		TEST=MID(strScriptPath,i,1)
		If	TEST<>"\" then
			strScriptPath=LEFT(strScriptPath,i)
		End if
		If TEST="\" then
			strScriptPath=LEFT(strScriptPath,i-1)
			Exit for
		End if
	Next
Set FS = CreateObject("Scripting.FileSystemObject")'ファイル存在するかを確認
If FS.FileExists(strScriptPath & "\data\Database.csv")=True then 'ファイルがある場合は
Dim ComDATA
	Set Shell = CreateObject("WScript.Shell")
	Shell.Run("""" & strScriptPath & "\test.bat" & """" & " " & HIKISUU),0,true

ちなみに、HIKISUUってのは引数です。

一つ目の0 で コマンド非表示
二つ目のTrueで 完了待ち ということです。

【C#をVBAで説明する】VBAで言うところの標準モジュールとは

最近ずっと、VBAやVBSばっかりやってきて

C言語C#JAVAとは無縁なところに居ました。

 

えぇ、すっぱりさっぱり綺麗に忘れてしまいました。

 

VisualStudio2015のDesktopが無料でダウンロードできるため

ダウンロードして、C#アプリ(WPFアプリ)を作成することにしました。

 

思い立った時、行動あるのみ!

 

ということで、やろうととりあえず画面は作ったのですが

プログラムの組み方が全く、一切さっぱり分からん。

 

ということで、ググリました。

Google先生大活躍です。

 

…でもやっぱり、VBAで怠けていた私の脳の理解力は10%でした。

半分も進まない。

 

ということで、今度はYahoo知恵袋にて検索。

 

同じようなことで悩んでいる人がいたので見たところ

スッパリスッキリ分かったので転載します。

 

【急ぎ】C#プログラムについてVBAで説明して欲しい


C#で初めてプログラム組んでいます。

VBAとか、VBS、C言語をかじってきましたが、
C言語はだいぶ前にやったためC#になると良く分からないです。

VBAでいう、標準モジュール。
色んなところから引数を入れて関数を参照し、結果を出す
そんなものはC#にあるのでしょうか?
あったら、参考リンク教えてください。

クラスとは別物ですよね。

C#について、VBAを用いて説明して頂けないでしょうか。
上司に無理難題叩きつけられるまえに、何とか速めに対処したいと思っています。

よろしくお願いいたします。

 それに対する回答がこちら。

標準モジュールのように関数(メソッド)だけを提供したい場合、
スタティックメソッドを定義すればいいです。

public class A
{
public static void Method()
{
...
}
}

こんな感じに定義したら、使う側では

A.Method();

のように使用できます。

VBAでいうモジュールごとに一つのファイルを用意するのが
いいのではないでしょうか。

 

とのこと。

 

VBAで言う標準モジュールに書く

Module1ファイル

 Sub TEST()

 End Sub

 

この内容は、

Module1クラス

public class Module1
{
      public static void TEST()
      {
      ...
      }
}

 

これと同じということですね!

Module1.TEST(); で呼び出すことが可能!

 

引数がどうなってるかとかは別途調べないと分からないな。

PCMAX ハッピーメールバナー