TIL

Today I Leaned. 無理せず。できるときに。自分のペースで。

エクスプローラを表示させる - VB.net

System.Diagnostics.Process.Start()メソッドを使う。第一引数に"EXPLORER.EXE"、第二引数にオプション、ファイルパスを渡してあげる。

以下のソースではC:\My Documents\GitHubフォルダを開いている。

System.Diagnostics.Process.Start("EXPLORER.EXE", "C:\My Documents\GitHub")

指定したファイルを選択した状態で開くこともできる。

C:\My Documents\GitHub\hello.txtを選択した状態で開く。

System.Diagnostics.Process.Start("EXPLORER.EXE", "/select,""C:\My Documents\GitHub\hello.txt""")

"の中で"を表すには""と記述する必要がある。



参考文献

[指定したフォルダをエクスプローラで開く: .NET Tips: C#, VB.NET](https://dobon.net/vb/dotnet/process/openexplore.htm

文字列の指定範囲を取得 - VB.net

VB.netで文字列を取得するときにはString.Substring()メソッドを使う。

String.Substring(取得開始位置, 取得文字数)

Dim myStr As String = "aiueo"
Dim s1 As String = myStr.Substring(0, 2)    ' ai
Dim s2 As String = myStr.Substring(1,2)     ' iu
Dim s3 As String = myStr.Substring(3)       ' eo



参考文献

文字列から指定した部分を取得する: .NET Tips: C#, VB.NET

指定した時間停止させる - VB.net

Thread.Sleep()メソッドを使う。ミリ秒で時間を渡すこと。

System.Threading.Thread.Sleep(1000)

参考文献

指定した時間停止する: .NET Tips: C#, VB.NET

Slackのメッセージの見栄えを良くする - Slack

メッセージの見栄えを良くするには Attachment を使う。

Slackのサイトに乗っていたサンプルを載せる

{
    "attachments": [
        {
            "fallback": "Required plain-text summary of the attachment.",
            "color": "#36a64f",
            "pretext": "Optional text that appears above the attachment block",
            "author_name": "Bobby Tables",
            "author_link": "http://flickr.com/bobby/",
            "author_icon": "http://flickr.com/icons/bobby.jpg",
            "title": "Slack API Documentation",
            "title_link": "https://api.slack.com/",
            "text": "Optional text that appears within the attachment",
            "fields": [
                {
                    "title": "Priority",
                    "value": "High",
                    "short": false
                }
            ],
            "image_url": "http://my-website.com/path/to/image.jpg",
            "thumb_url": "http://example.com/path/to/thumb.png",
            "footer": "Slack API",
            "footer_icon": "https://platform.slack-edge.com/img/default_application_icon.png",
            "ts": 123456789
        }
    ]
}

こんな感じで表示される。

f:id:tmg1998:20171015104831p:plain:w410

各パラメータの説明

fallback

必須項目。要約メッセージを指定する。通知やモバイル端末での表示に使われる。

{"fallback": "Required plain-text summary of the attachment."}

color

(ほぼ)必須項目。左のラインの色を設定する。Slackで用意されているgoodwarningdangerの3つを指定するか、カラーコード(#2E64FE)を指定する。

f:id:tmg1998:20171015110257p:plain:w200

colorを指定しなかった場合の表示

f:id:tmg1998:20171015110536p:plain:w200

pretext

オプション項目。アタッチメントブロック(左に線が引いてある部分)の上に表示する文字。

{"pretext": "アタッチメントブロックの上に表示"}

f:id:tmg1998:20171015111002p:plain:w300

authorパラメータ

authorパラメータを設定すると、著者につい手の情報をアタッチメント内の上部に小さく表示する。

  • author_name

    著者名のテキスト

  • author_link

    author_nameにリンクを付ける。ユーザーが存在する場合のみ有効になる。

  • author_icon

    author_nameの左側に16x16のアイコンを表示するためのURL。ユーザーが存在する場合のみ有効になる。

{
    "author_name": "Bobby Tables",
    "author_link": "http://flickr.com/bobby/",
    "author_icon": "http://flickr.com/icons/bobby.jpg"
}

f:id:tmg1998:20171015112040p:plain:w220

titleとtitle_link

  • title

    アタッチメントボックスの先頭に太字で表示される文字。

  • title_link

    有効なURLを指定すると、titleハイパーリンクになる。

{
    "title": "Slack API Documentation",
    "title_link": "https://api.slack.com/"
}

f:id:tmg1998:20171015112840p:plain:w250

text

メインテキスト。700字以上か5行以上のテキストの場合には自動的に折りたたまれる。また、標準のマークアップが使える。

{"text": "1\n2\n3\n4\n5\n6\n7"}

f:id:tmg1998:20171015113631p:plain:w200

fields

  • title

    valueの上に太字で見出しとして表示される。マークアップを含むことはできず、エスケープ処理がされる(Macでは表示されたが、iPhoneのアプリでは絵文字が表示されなかった)。

  • value

    テキスト。標準のメッセージマークアップが使える。

  • short

    valueを横に並べられるときには横に並べる。truefalseのどちらか。

"fields":[
    {
        "title": "Title",
        "value": "value",
        "short": "true"
    },
    {
        "title": "Title2",
        "value": "value2",
        "short": "true"
    }
]

f:id:tmg1998:20171015115612p:plain:w330

image_urlthumb_urlfooterfooter_icontsについてはいつかやる(多分やらない)



参考文献

Attaching content and links to messages | Slack

PythonでSlackにメッセージを送信する

SlackのIncomingWebHookを使ってPythonからメッセージを送信してみる。

ここの「incoming webhook integration」でメッセージを送信したいチャンネルのURLを取得する。

取得したURLに対してPOST送信すればメッセージ送信ができる。POST送信はrequestsを使って行う。

>>> import requests
>>> import json
>>> payload = {'text': 'hello!'}
>>> requests.post(取得したURL, data=json.dumps(payload))
<Response [200]>

これで以下のようにメッセージが送信されているはず

f:id:tmg1998:20171014224146p:plain:w300


送信するデータについて

post()メソッドのdataで色々なことができるらしい。Incoming WebHooks | Slack App Directoryをそのままメモしておく。

text

チャンネルに送信するメッセージ

payload={'text': 'hello!\nworld!'}

f:id:tmg1998:20171014230015p:plain:w280

リンクを付ける

リンクを付けるにはリンクにしたいURLを< >で囲む。

payload={'text': '<http://tmg0525.hatenadiary.jp>'}

また、表示文字を変更するときには<url|表示文字>とする。

payload={'text': '<http://tmg0525.hatenadiary.jp| ここをクリック>'}

f:id:tmg1998:20171014231704p:plain:w280

username

メッセージを送信するボット名

payload={'username': 'botbotbot', 'text': 'hello!'}

f:id:tmg1998:20171014234102p:plain:w260

icon_url

アイコンのURL

payload={'icon_url': 'https://slack.com/img/icons/app-57.png', 'text': 'hello'}

f:id:tmg1998:20171014234711p:plain:w280

icon_emoji

アイコンの絵文字

payload={'icon_emoji': ':dog:', 'text': 'hello'}

f:id:tmg1998:20171015000032p:plain:w280



参考文献

はてなブログで画像のサイズを変更する

通常通りに「選択した写真を貼り付け」を行うと以下のようになる。

[f:id:tmg1998:20171014224146p:plain]

語尾に:wサイズとすることで横幅が指定できるので、それでサイズを変更する。

[f:id:tmg1998:20171014224146p:plain:w200]



参考文献

はてなブログで画像のサイズを変更する方法(Markdown環境) - conf t

.bashrcと.bash_profile

.bash_profile.bashrcの違いをぐぐってみたのでメモしておく。

.bash_profile

.bash_profileはログインするたびに読み込まれる。

.bashrc

対話モードのbashを起動するたびに読み込まれる。


.bashrcが反映するようにする

.bash_profileに以下の記述をする

source ~/.bashrc



参考文献

本当に正しい .bashrc と .bash_profile の使ひ分け - Qiita