BOUNOTEhttps://bounote.jp自論と備忘録Sun, 16 Apr 2023 12:03:55 +0000jahourly1https://bounote.jp/wp-content/uploads/2022/04/bounote_logo_dot_1.pngBOUNOTEhttps://bounote.jp3232 LogseqでScheduled and Deadlineの表示日程を当日のみに変更するhttps://bounote.jp/logseq-schedule-and-deadline-days-fix/https://bounote.jp/logseq-schedule-and-deadline-days-fix/#respondSun, 16 Apr 2023 11:31:06 +0000https://bounote.jp/?p=2660

先日、いつも通りLogseqで日誌を書いていたら、下に表示されているSCHEDULED AND DEADLINEが、普段は当日のみしか表示されていなかったのに、そのさきも表示されるようになっていました。 どうやらアップデ ... ]]>

某

どーも!某 (@7254bou)です!

先日、いつも通りLogseqで日誌を書いていたら、下に表示されているSCHEDULED AND DEADLINEが、普段は当日のみしか表示されていなかったのに、そのさきも表示されるようになっていました。

どうやらアップデートで変更されていたようです。

今回は無事修正できたので備忘録を残します。

Scheduled and Dealineを修正する

Scheduled and Dealineの修正のやり方については、LogseqのGithubのIssuesに上がっていました。

同じように疑問を持っていた人がいたようです。

上記を参考にconfig.ednを修正します。

config.ednを開く

config.ednはLogseqのgraphとして指定したフォルダのlogseqフォルダ内に入っています。

logseqフォルダ内

これを好きなエディタで開いてください。

特になければ、Windowsなら「メモ帳」、Macなら「テキストエディット」で開けばOKです。

config.ednにコードを追加する

config.ednが開けたらコードの一番下にある「 } 」の一行上に、「 :scheduled/future-days 0 」と追加してください。

追加して下記のようになっていればOKです。

:scheduled/future-days 0
}

これで当日分の予定のみがSCHEDULE AND DEADLINEに表示されるはずです。

ちなみに0を別の数字に変えると1日前、2日前など好きな日程で予定を表示することができます。今までもっと前の日程も見たいなと思っていた方は変更してみると便利になるかもしれません。

某

今後もLogseqで便利に日程管理しましょう!

]]>
https://bounote.jp/logseq-schedule-and-deadline-days-fix/feed/0
MFC入門: 最小のMFCアプリケーションを作ってみよう!https://bounote.jp/mfc-introductory-minimum-mfc-application/https://bounote.jp/mfc-introductory-minimum-mfc-application/#respondFri, 10 Mar 2023 02:51:19 +0000https://bounote.jp/?p=2651

MFCの情報がWEBにあまりなかったので、自分の備忘録としてMFCでWindowsアプリを作成する方法を書いておきます。最小構成が分かればMFCについて少しは理解できるかも知れません。 MFCとは MFCはMicroso ... ]]>

MFCの情報がWEBにあまりなかったので、自分の備忘録としてMFCでWindowsアプリを作成する方法を書いておきます。最小構成が分かればMFCについて少しは理解できるかも知れません。

MFCとは

MFCはMicrosoft Foundation Classの略で、Windowsアプリケーションをつくるためのライブラリ(フレームワーク)です。もっと簡単に言えば、Windowsのプログラムを作るときに使われるコードの集まりです。MFCを使うと、Windowsが提供しているWindowsAPIを使ってアプリを作るよりも簡単に作ることができます。

環境構築

MFCを使うにはVisual Studioが必要です。MFCが必要な人は基本的に持っているとは思いますが、持ってない方は個人なら無料でVisual Studio Communityをダウンロードできるので入手しましょう。

また、Visual StudioでMFCを使うには各種設定が必要です。下記に環境構築の記事を書いたので必要な場合は確認してみてください。

MFCをVisual Studioで始めるための環境構築 (2019対応)

最小のMFCプログラム

さて、さっそくMFCを使った最も簡単なプログラムを書いてみましょう。コードは下記に記載したので、Visual Studioで.cppファイルを作成し、このコードをコピーした後に実行してみてださい。

#include <afxwin.h> //MFCに必要なクラスが定義されている
//ウィンドウクラスをCFrameWndから継承して作成
class CMainWin : public CFrameWnd
{
public: CMainWin(); DECLARE_MESSAGE_MAP()
};
CMainWin::CMainWin()
{ Create(NULL, _T("最小のMFCプログラム"));
}
//アプリケーションクラスをCWinAppから継承して作成
class CApp : public CWinApp
{
public: BOOL InitInstance();
}
BOOL CApp::InitInstance()
{ m_pMainWnd = new CMainWin; m_pMainWnd->ShowWindow(m_nCmdShow); m_pMainWnd->UpdateWindow(); return TRUE;
}
BEGIN_MESSAGE_MAP(CMainWin, CFrameWnd)
END_MESSAGE_MAP()
CApp App;

実行すると下記のような、タイトルに”最小のMFCプログラム”と書かれた真っ白なプログラムが起動します。

]]>
https://bounote.jp/mfc-introductory-minimum-mfc-application/feed/0
GradioアプリにExamplesで入力と出力の例を追加するhttps://bounote.jp/gradio-examples-how-to-use/https://bounote.jp/gradio-examples-how-to-use/#respondSun, 26 Feb 2023 13:22:00 +0000https://bounote.jp/?p=2645

GradioのExamplesとは GradioのExamplesとは、Gradioアプリの入力(または出力)の例を表示する機能です。GradioのExamplesを使うと、ユーザがGradioアプリを使う際に使い方をわ ... ]]>

GradioのExamplesとは

GradioのExamplesとは、Gradioアプリの入力(または出力)の例を表示する機能です。
GradioのExamplesを使うと、ユーザがGradioアプリを使う際に使い方をわかりやすくできます。

Examplesを追加する方法

GradioのExamplesを追加するには、Gradio.Examples()を使います。
Gradio.Examples()の引数には、入力の例をリストで渡します。

examples = [ ["Hello world!"], ["こんにちは世界!"], ["你好,世界!"],
]

Examplesを使った例

GradioのExamplesを使った例を紹介します。
GradioのExamplesを使って、入力の例を表示するGradioアプリを作ります。

import gradio as gr
def hello_world(text): return "Hello world!"
examples = [ ["Hello world!"], ["こんにちは世界!"], ["你好,世界!"],
]
app = gr.Interface( hello_world, gr.inputs.Textbox(lines=2, placeholder="Enter text here..."), gr.outputs.Textbox(label="Output"), examples=examples, title="Hello world!", description="This is a simple Gradio app.", allow_flagging=False,
)
app.launch()

GradioのExamplesを理解する

GradioのExamplesを理解するために、GradioのExamplesのパラメータを見てみます。

このクラスは Dataset コンポーネントのラッパーで、 ブロックやインターフェイスのサンプルを作成するために使用します。Dataset コンポーネントにサンプルを投入し、イベントリスナーを割り当てて、サンプルをクリックすると入出力コンポーネントへの入力が行われるようにします。オプションで、高速な推論を行うためのExampleのキャッシュを処理します。

Examplesに必須なパラメータはexamplesとinputsのみです。それ以外はoptionalです。

Examplesのパラメータ

パラメータ説明
examplesクリックすることで、特定のコンポーネントに入力することができる入力の例。外側のリストがサンプルで、内側のリストが各入力コンポーネントに対応する入力で構成されるネストされたリストであるべきです。サンプルのディレクトリへのパスも指定できますが、gradioアプリを実行しているPythonファイルがあるディレクトリ内にあるべきです。複数の入力コンポーネントがあり、ディレクトリが提供される場合、対応する入力をリンクするための log.csv ファイルがディレクトリ内に存在する必要があります。
inputs例に対応するコンポーネントまたはコンポーネントのリスト
outputsオプションで、例の出力に対応するコンポーネントまたはコンポーネントのリストを指定します。cache` が True の場合は必須である。
fnオプションで、サンプルに対応する出力を生成するために実行する関数を指定します。cache` が True の場合は必須である。
cache_examplesTrue の場合、高速に実行するためにサンプルをキャッシュする。True の場合、 fnoutputs を指定する必要がある。
example_per_page1ページにいくつの例を表示するか。
labelexamples コンポーネントに使用するラベル (デフォルトは “Examples”)
elem_idHTML DOM 内でこのコンポーネントの ID として割り当てられるオプションの文字列。
run_on_clickcache_examples が False の場合、例がクリックされても、関数は実行されません。これを True に設定すると、例がクリックされたときに関数が実行されます。cache_examples が True の場合は、何の効果もありません。
preprocessTrue の場合、予測関数を実行し、出力をキャッシュする前に、サンプルの入力の前処理を行います。cache_examples が True の場合のみ適用されます。
postprocessTrue の場合、予測関数を実行した後、キャッシュする前にサンプル出力を後処理します。cache_examples が True の場合のみ適用されます。
batchTrue の場合、この関数は入力のバッチを処理する必要があります。つまり、各パラメータの入力値のリストを受け入れる必要があります。cache_examples が True の場合のみ使用されます。
]]>
https://bounote.jp/gradio-examples-how-to-use/feed/0
Gradioアプリのフラグするって何?Flaggingを使う方法https://bounote.jp/gradio-flagging-how-to-use/https://bounote.jp/gradio-flagging-how-to-use/#respondSun, 19 Feb 2023 13:26:53 +0000https://bounote.jp/?p=2637

Gradioでwebアプリを作成すると、「フラグする」というボタンが表示されます。設定した覚えがないのになぜ表示されるのでしょうか? 今回はこの「フラグする」ボタンを管理できるFlaggingについて説明します。 Fla ... ]]>

某

どーも!某 (@7254bou)です!

Gradioでwebアプリを作成すると、「フラグする」というボタンが表示されます。設定した覚えがないのになぜ表示されるのでしょうか?

今回はこの「フラグする」ボタンを管理できるFlaggingについて説明します。

Flagging(フラグする)とは

Flagging(フラグする)とは、Gradioアプリの入出力データを保存する機能です。入出力データを保存することで、アプリの挙動を確認することができます。例えばAIモデルを利用したアプリを作成したとき、入力画像と出力画像を保存することで、モデルの挙動を確認することができます。また、入力データと出力データを保存することで、モデルの精度を計測することもできます。

Flagging(フラグする)を使う方法

Gradioアプリのインターフェースには、デフォルトで出力の下に表示される「フラグする」ボタンがあります。デフォルトでは、「フラグする」ボタンをクリックすると、入出力データがgradioデモを実行しているマシンに戻され、CSVログファイルとして保存されます。しかし、このデフォルトの動作は変更することができます。

Flagボタンをクリックしたときの動作を設定するには、FlaggingCallbackのサブクラスのインスタンスを、Interfaceコンストラクタのflagging_callbackパラメータに渡します。FlaggingCallbackのサブクラスは以下の通りですが、独自に作成することもできます。

SimpleCSVLogger

FlaggingCallback抽象クラスの簡略化された実装は、説明のために提供されます。各フラグ付きサンプル(入力データと出力データの両方)は、gradioアプリを実行しているマシン上でCSVファイルにログ記録されます。

CSVLogger

FlaggingCallback抽象クラスのデフォルトの実装です。フラグを立てたサンプル(入力データと出力データの両方)は、gradioアプリを実行しているマシンでヘッダー付きのCSVファイルにログ出力されます。

HuggingFaceDatasetSaver

各フラグ付きサンプル(入力データと出力データの両方)をHuggingFaceデータセットに保存するコールバックです。

「フラグする」ボタンを表示しない方法

「フラグする」ボタンを表示しないようにするには、Interfaceコンストラクタのallow_flaggingパラメータに’never’を渡します。

以下のサンプルコードでは、allow_flaggingパラメータに’never’を渡しているため、「フラグする」ボタンが表示されません。

import gradio as gr
def greet(name): return 'hello' + name
demo = gr.Interface(fn=greet, inputs='text', outputs='text', allow_flagging='never')
demo.launch()
]]>
https://bounote.jp/gradio-flagging-how-to-use/feed/0
SANGOのモバイル用フッター固定メニューにコメントジャンプを追加する方法https://bounote.jp/sango-mobile-footer-menu-comment/https://bounote.jp/sango-mobile-footer-menu-comment/#respondSat, 18 Feb 2023 12:59:23 +0000https://bounote.jp/?p=2633

SANGOのモバイル用フッター固定メニューって便利ですよね。 個人的にブログは読者と情報のやり取りできるのが理想だと思っているので、ユーザがコメントしたいと思ったらすぐにコメント欄にジャンプできるとコメントしやすくなるな ... ]]>

某

どーも!某 (@7254bou)です!

SANGOのモバイル用フッター固定メニューって便利ですよね。

個人的にブログは読者と情報のやり取りできるのが理想だと思っているので、ユーザがコメントしたいと思ったらすぐにコメント欄にジャンプできるとコメントしやすくなるなと思いました。

そこで、今回はモバイル用フッター固定メニューにコメントジャンプを追加する方法を紹介します。

SANGOのモバイル用フッターメニューとは

SANGOで書かれたブログの一番下に表示できるフッターメニューです。

基本的に追尾してくれるので、記事のどの部分を読んでいても表示されます。

モバイル用フッターメニュー

モバイル用フッターメニューを追加する方法

SANGOではデフォルトでモバイル用フッターメニューを設定できます。

基本的な使い方はSANGOのカスタマイズのページに書いてありますが、この記事でも紹介します。

外観からメニューを作成する

外観からメニューを作成します。

WordPressの管理画面から、外観 > メニューをクリックする。
外観 > メニューをクリック
新しいメニューを作成する

モバイル用フッター固定メニューを作成していない場合は、新しいメニューを作成しましょう。すでに作成済みの場合は、モバイル用フッター固定メニューを選択します。

「新しいメニューを作成しましょう」をクリック
新しいメニューの情報を入力する

まずはメニュー名を入力します。なんでも良いですが、私の場合は分かりやすいように「モバイルフッターメニュー」にしました。続いてメニュー設定の一番下にある「モバイル用フッター固定メニュー」にチェックを入れて、右下の「メニューを作成」ボタンをクリックします。

某

ここで作成したメニューにコメントジャンプ用のボタンを追加します。

メニューにコメントボタンを追加する

メニューにコメントボタンを追加します。

左側にあるメニュー項目を追加の「カスタムリンク」をクリックしてください。すると下記のようにメニュー項目がカスタムリンクで追加できます。

メニュー項目を追加

下記コードをコピーして、リンク文字列に追加します。

<i class="fa-solid fa-comment"></i>コメント

URLに#commentsを追加します。

これでコメントにジャンプするボタンが追加されました。

ただし、コメントが設定できないページ(トップページやカテゴリページなど)では、コメントボタンを押してもジャンプはされません。

某

これでモバイルユーザはコメントしやすくなるはず!

]]>
https://bounote.jp/sango-mobile-footer-menu-comment/feed/0
SANGOのモバイル用フッター固定メニューにシェアボタンを追加する方法https://bounote.jp/sango-mobile-footer-menu-share-button/https://bounote.jp/sango-mobile-footer-menu-share-button/#respondSat, 11 Feb 2023 11:06:09 +0000https://bounote.jp/?p=2537

SANGOのモバイル用フッターメニューにシェアボタンを追加しようと公式のカスタマイズ通りにやったのですが、うまくいきませんでした。 試行錯誤したところうまくいったので備忘録として残しておきます。 SANGOのモバイル用フ ... ]]>

某

どーも!某 (@7254bou)です!

SANGOのモバイル用フッターメニューにシェアボタンを追加しようと公式のカスタマイズ通りにやったのですが、うまくいきませんでした。

試行錯誤したところうまくいったので備忘録として残しておきます。

SANGOのモバイル用フッターメニューとは

SANGOで書かれたブログの一番下に表示できるフッターメニューです。
基本的に追尾してくれるので、記事のどの部分を読んでいても表示されます。

SANGOのモバイルフッターメニュー

SANGOのシェアボタンを追加する

SANGOのシェアボタン

SANGOではデフォルトでシェアボタンが表示されますが、これをオフにしているとモバイル用フッターメニューでも使えません。なので、シェアボタンを追加する必要があります。

シェアボタンを追加するには、外観 > カスタマイズ > SANGOオリジナル機能 > シェアボタンの設定 から設定します。
チェックボックスの「シェアボタンを表示しない」のチェックを外してください。

モバイル用フッターメニューを追加する方法

SANGOではデフォルトでモバイル用フッターメニューを設定できます。基本的な使い方はSANGOのカスタマイズのページに書いてあります。

しかしなぜかシェアボタンはうまくいかなかった(おそらく古い情報のままだった)ので、シェアボタンを追加する方法を書きます。

外観からメニューを作成する

外観からメニューを作成します。

WordPressの管理画面から、外観 > メニューをクリックする。
外観 > メニューをクリック
新しいメニューを作成する

モバイル用フッター固定メニューを作成していない場合は、新しいメニューを作成しましょう。すでに作成済みの場合は、モバイル用フッター固定メニューを選択します。

「新しいメニューを作成しましょう」をクリック
新しいメニューの情報を入力する

まずはメニュー名を入力します。なんでも良いですが、私の場合は分かりやすいように「モバイルフッターメニュー」にしました。続いてメニュー設定の一番下にある「モバイル用フッター固定メニュー」にチェックを入れて、右下の「メニューを作成」ボタンをクリックします。

某

ここで作成したメニューにシェアボタンを追加します。

メニューにシェアボタンを追加する

メニューにシェアボタンを追加します。

左側にあるメニュー項目を追加の「カスタムリンク」をクリックしてください。すると下記のようにメニュー項目がカスタムリンクで追加できます。

メニュー項目を追加

下記コードをコピーして、リンク文字列に追加します。

<label for="fab"><i class="fa fa-share-alt"></i>シェア</label>

ちなみにURL欄は空欄にしてください。

#sng_shareを入れると存在しないidとしてエラーになります。ただし、最初に追加する際はURLは必須なので、適当な名前で入力し後で空欄にしてください。

また、トップページやカテゴリページの場合はシェアできません。あくまで記事ページのみです。

某

ひとまずこれで記事のシェアボタンをモバイル用フッター固定メニューに追加できました。

]]>
https://bounote.jp/sango-mobile-footer-menu-share-button/feed/0
Gradioで文字列が使用できるTextboxコンポーネントの使い方https://bounote.jp/gradio-textbox-component-how-to-use/https://bounote.jp/gradio-textbox-component-how-to-use/#respondSat, 11 Feb 2023 08:24:14 +0000https://bounote.jp/?p=2505

Gradioは、Webアプリケーションを簡単に作成するためのPythonライブラリです。知らない方は下記記事をご覧ください。 今回は、そんなGradioで文字列が使用できるTextboxコンポーネントの使い方を紹介します ... ]]>

某

どーも!某 (@7254bou)です!

Gradioは、Webアプリケーションを簡単に作成するためのPythonライブラリです。知らない方は下記記事をご覧ください。

Google Colab上でwebアプリが作れるGradioの使い方

今回は、そんなGradioで文字列が使用できるTextboxコンポーネントの使い方を紹介します。

Textboxコンポーネントとは

Textboxコンポーネントは、文字列を入出力するためのコンポーネントです。例として名前を入力するためのTextboxコンポーネントを下記に示します。

Textコンポーネント

TextboxとTextAreaの違い

Gradioには、gradio.Textboxとgradio.TextAreaの2種類のコンポーネントクラスおよび、”text”と”textbox”と”textarea”の3種類のショートカット文字列があります(※コンポーネントクラス「TextArea」のAreaは大文字のA)。

一応それぞれの違いとしては、下記になります。

TextboxとTextAreaの違い
  • Textbox: 1行の文字列を入力するためのコンポーネント
  • TextArea: 複数行の文字列を入力するためのコンポーネント

しかしながら、実際にはTextboxでも複数行にできますし、TextAreaも1行にできます。基本的にはデフォルトの設定が違うだけで、使い方は同じなので個人的にはTextboxだけ使えばいいと思います(いずれは統一される気がしています)。

“text”と”textbox”と”textarea”の違い

ショートカット文字列(”text”, “textbox”, “textarea”)だと基本的にデフォルト設定になります。”text”と”textbox”は同じなので、基本は”text”を使ってコンポーネントを長くしたい場合は”textarea”を指定するのが良いでしょう。

“text”と”textbox”と”textarea”の違い
  • “text”: 最小値が1行
  • “textbox”: 最小値が1行 (”text”と基本的に同じ)
  • “texarea”: 最小値が7行

Textboxコンポーネントの使い方

シンプルにTextboxコンポーネントを使う

最もシンプルにTextboxコンポーネントを使うには、ショートカット文字列をinputsあるいはoutputsに指定します。

Textboxの場合は、ショートカット文字列として、”text”、”textbox”、”textarea”のいずれかを指定します。基本は”text”でいいと思いますが、テキスト領域を長くしたい場合は”textarea”を指定すると良いでしょう。

試しに入力に”text”、出力に”textarea”を指定したwebアプリを作ってみます。

import gradio as gr
def greet(name): return "Hello " + name
app = gr.Interface(fn=greet, inputs="text", outputs="textarea")
app.launch()

上記のコードを実行すると下記の画像のようになります。

ショートカットで作成したTextboxコンポーネント

出力側は”textarea”を指定したので、テキスト領域が長くなっているのが分かります。

Textboxコンポーネントを調節する

Textboxコンポーネントを調節するには、inputsあるいはouputsにTextboxオブジェクトを指定します。gradio.Textbox() または gradio.TextArea()を利用することで、Textboxオブジェクトを作成できます。

import gradio as gr
def greet(name): return "Hello" + name
app = gr.Interface( fn=greet, inputs=gr.Textbox( lines=2, placeholder="名前を入力してください", label="名前", ), outputs="text", )
app.launch()

上記のコードを実行したのが下記の画像です。

コンポーネントクラスを使ったTextboxコンポーネント

少し分かりにくいですが、入力コンポーネントの行数が2行になっていることがわかります。またラベルが「名前」で、何も入力しない場合は薄い文字で「名前を入力してください」と表示されています。

このようにコンポーネントクラスを使用すると、パラメータを指定することでコンポーネントを調節することができます。

Textboxコンポーネントのパラメータ

Textboxコンポーネントのパラメータは、下記の通りです。ちなみにTextAreaコンポーネントの場合はlinesの初期値が7になります。

パラメータ初期値説明
value“”初期値として入力しておくテキスト。callableの場合、アプリがロードされるたびにこの関数が呼び出され、コンポーネントの初期値が設定されます。
lines1textareaに提供する最小の行数。
max_lines20textareaで提供する行の最大数。
placeholderNonetextarea の背後に提供するプレースホルダヒント
labelNoneコンポーネント名をinterfaceで指定します。
everyNoneもし value が callable ならば、クライアントコネクションが開いている間、 ‘毎秒’ 回関数を実行します。それ以外の場合は、何の効果もありません。キューを有効にする必要があります。このイベントは、このコンポーネントの .load_event 属性を介してアクセスすることができます (例: イベントのキャンセル)。
show_labelFalseTrue の場合、ラベルを表示します。
interactiveFalseTrue の場合、編集可能なテキストボックスとしてレンダリングされ、False の場合、編集は無効となる。Falseの場合、編集は無効となる。提供されない場合、コンポーネントが入力または出力のどちらとして使用されるかに基づいて、これは推論される。
visibleTrueFalseの場合、コンポーネントは非表示になります。
elem_idNoneHTML DOM 内でこのコンポーネントの ID として割り当てられるオプションの文字列。CSS スタイルをターゲットとするために使用することができます。
type“text”‘text’, ‘password’, ‘email’のいずれかをテキストボックスの種類として指定します。
Textboxコンポーネントのパラメータ

Textboxコンポーネントの対応イベント(メソッド)

Textboxコンポーネントの対応イベント(メソッド)は、下記の通りです。

  • change
  • submit
  • blur
]]>
https://bounote.jp/gradio-textbox-component-how-to-use/feed/0
Adobe Script Runnerの設定と使い方: VSCodeの拡張機能でExtendScriptを使うhttps://bounote.jp/adobe-extendscript-visual-studio-code/https://bounote.jp/adobe-extendscript-visual-studio-code/#respondSat, 04 Feb 2023 19:42:12 +0000https://bounote.jp/?p=529

Adobeソフト(PhotoshopやInDesignなど)をプログラムで自動化する場合は、Adobe ExtendScriptを使うのが一般的ですが、その実行環境をVSCodeで用意する場合は、拡張機能であるAdobe ... ]]>

某

どーも!某 (@7254bou)です!

Adobeソフト(PhotoshopやInDesignなど)をプログラムで自動化する場合は、Adobe ExtendScriptを使うのが一般的ですが、その実行環境をVSCodeで用意する場合は、拡張機能であるAdobe Script Runnerが便利です。

今回はそのAdobe Script Runnerの設定と使い方について解説します。

Adobe Script Runnerの設定

VSCodeのインストール

Adobe Script Runnerを使うにはVisual Studio Code (VS Code) が必要なので下記リンクからインストールしてください。

Adobe Script Runnerのインストール

VS Codeの準備ができたら、拡張機能をインストールします。

VS Codeを開いて、左側のバーから拡張機能をクリックする
拡張機能をクリックする
「Adobe Script Runner」と入力し、インストールをクリックする
Adobe Script Runnerをインストール
注意ダイアログが出てくるので、「ワークスペースを信頼してインストール」をクリックする
ワークスペースを信頼してインストール
インストールが完了したら、設定(歯車アイコン)をクリックし「拡張機能の設定」を選択する。
「拡張機能の設定」を選択する
使用するAdobe製品の入力欄に、exeファイルが保存されている場所を記入する。
exeファイルのアドレスを入力する

デフォルトの設定だと、Adobe Creative Cloudで何も設定せずにインストールした場合の保存先になっているので、特に弄っていない人はそのままで大丈夫です。

ただし、Adobe製品のバージョン(年度)については異なる場合があるので確認しましょう。私はこの時の最新版(2022)が入っていたので、特に変更なしでした。

某

Adobe Script Runnerの設定は完了です!

Adobe Script Runnerの使い方

実際に使ってみましょう。

VS Codeを開いて、「ファイル」 >>「 新しいテキストファイル」をクリックする。
「新しいテキストファイル」をクリック
「Control + S」を押して、「practice.jsx」というファイル名で保存します。

※「.jsx」という拡張子でファイルが保存できれば、ファイル名についてはどんな名前でもOKです。

「practice.jsx」というファイル名で保存
「alert(“練習です”);」という文を入力し、「Control + S」で保存します。
練習用コードを作成

alert() 関数を書くと、()内に記入した文字列をAdobeソフトでエラー(警告)として出力します。JavaScriptをやっている方だったら、DOM操作で使うalert()と同じです。

「Control + Shift + P」を押すと、検索バーが出てくるので、Adobeソフトの名前を入力する。

今回私の場合はPhotoshopを使おうと思ったので「Adobe Photoshop」と入力し、出てきた結果を選択しました。

VS CodeからAdobeソフトを起動する
Adobeソフトが起動し、ポップアップの許可を出す。
practice.jsxを実行する

今後スクリプトをVS Codeから起動すると、上記警告ポップアップが毎回出ることになります。

非表示に設定したい場合は、下記のリンク通りにするとポップアップが表示されなくなります。

「ファイル”.jsx”に含まれるスクリプトを実行しようとしています…」警告を非表示にするPSUserConfig.txtを設定する
コードで記入した警告が出力される。
警告が出力

上記のような警告用のポップアップが出力されれば、動作確認は完了です!

某

これでVS CodeからスクリプトでAdobeソフトが呼び出せます!あとは好きなスクリプトを書くだけ!

]]>
https://bounote.jp/adobe-extendscript-visual-studio-code/feed/0
MFCをVisual Studioで始めるための環境構築 (2019対応)https://bounote.jp/mfc-visual-studio-enviornment-2019/https://bounote.jp/mfc-visual-studio-enviornment-2019/#respondSat, 04 Feb 2023 19:33:34 +0000https://bounote.jp/?p=257

ここではMicosoft Foundation Class (MFC)をVisual Studioではじめるための環境構築について解説します。MFCをVisual Studioで使う方法は2種類あります。 VisualS ... ]]>

某

どーも!某 (@7254bou)です!

ここではMicosoft Foundation Class (MFC)をVisual Studioではじめるための環境構築について解説します。MFCをVisual Studioで使う方法は2種類あります。

VisualStudioでMFCを使う方法
  • 自分で「空のプロジェクト」からMFCを設定する
  • MFCのテンプレートを利用する

MFCのテンプレートを使うと色んなものが入ってきてしまうので、ひとまずMFCを勉強したいという人は、最初の「自分でMFCを設定する方法」でやってみましょう。すぐに本格的なアプリを作りたい場合は「MFCのテンプレートを利用する」がオススメです。

自分でMFCを設定する

まずはVisual Studioを起動しましょう。起動したら下記の通り設定します。

プロジェクトの作成とツールのインストール

新しいプロジェクトの作成を押します。

空のプロジェクトを選択します。

上部タブの「ツール」 >> 「ツールと機能を取得(T)…」を選択

「C++によるデスクトップ開発」にチェック、「最新のv142ビルドツール用C++MFC (x86…」にチェック

これでMFCに必要なツールが準備できました。続いてプロジェクトの設定をしていきます。

プロジェクトにMFCの設定をする

上部タブの「プロジェクト」 >> 「[プロジェクト名]のプロパティ(E)…」を選択

構成プロパティから「詳細」>> 「MFCの使用」>> 「共有DLLでMFCを使う」を選択

構成プロパティから「リンカー」 >> 「システム」 >> 「サブシステム」 >> 「Windows(/SUBSYSTEM:WINDOWS)」を選択

某

これで空のプロジェクトからMFCが使えるようになります!

テンプレートを使用する

上に書いた方法は、あくまで空のプロジェクトや設定されていないプロジェクトでMFCを導入する方法ですが、Visual Studioでは元々MFCで楽にアプリが作れるようにテンプレートを用意してくれています。まずはVisual Studioを起動してプロジェクトを作成しましょう。

新しいプロジェクトの作成を選択
検索バーから「MFC」と入力し、「MFCアプリ」を選択
某

これでテンプレートの中身を種々選んで、MFCアプリを作成できます。詳しくはまたの機会に解説します!

]]>
https://bounote.jp/mfc-visual-studio-enviornment-2019/feed/0
「ファイル”.jsx”に含まれるスクリプトを実行しようとしています…」警告を非表示にするPSUserConfig.txtを設定するhttps://bounote.jp/file-jsx-script-alert-hidden/https://bounote.jp/file-jsx-script-alert-hidden/#respondSat, 04 Feb 2023 19:29:29 +0000https://bounote.jp/?p=554

Adobe ExtendScriptをVS Codeから起動すると下記のような警告が表示されます。 ファイル”practice.jsx”に含まれるスクリプトを実行しようとしています。実行してもよろしいですか?今後、この警 ... ]]>

某

どーも!某 (@7254bou)です!

Adobe ExtendScriptをVS Codeから起動すると下記のような警告が表示されます。

ファイル”practice.jsx”に含まれるスクリプトを実行しようとしています。
実行してもよろしいですか?
今後、この警告が表示されないようにするには、Photoshop の設定フォルダーにある PSUserConfig.txt ファイル

WarnRunningScripts 0
を追加して、Photoshop を再起動してください。

スクリプトを試している時など毎回表示されると面倒ですよね。


Adobe ExtendScriptを使用すると出てくる警告

今回の記事では上の画像のような警告が表示されなくなるように設定する方法をご紹介します。

某

とは言っても、警告文に書いてある通りやるなんですけどね(笑)

PSUserConfig.txtを作成する

警告文に書いてあるように、PSUserConfig.txtファイルを追加する必要があるので、まずはPSUserConfig.txtを作成しましょう。

VS CodeでPSUserConfig.txtというファイルを作成して、下記の様なコードを入力します。

# スクリプト実行時に警告を表示しない
WarnRunningScripts 0

上記のコードを入力したら、「Control + S」で保存してください。

実際のスクリプト

PSUserConfig.txtを追加する

PSUserConfig.tsxを作成できたら、次はこのファイルを所定のフォルダに追加します。

Windows

  • [インストールドライブ]:\Users\[ユーザー名]\AppData\Roaming\Adobe\[Photoshop のバージョン]\[Photoshop のバージョン]Settings\

macOS:

  • //Users/[ユーザー名]/Library/Preferences/[Photoshop のバージョン]Settings/

私の場合はWindowsで追加したいAdobeソフトがPhotoshop2022だったので下記のフォルダになりました。

Cドライブ >> bou7254 >> AppData >> Roaming >> Adobe >> Photoshop 2022 >> Photoshop 2022 Settings

上記のPhotoshop 2022 Settingsフォルダの中にPSUserConfig.tsxを追加します。

某

これで警告は表示されなくなります!ガンガンスクリプトを実行しましょう!

]]>
https://bounote.jp/file-jsx-script-alert-hidden/feed/0