Cでファイルにクリップボードの画像を保存する#

私のブログをMarkdownに移行する動機の1つは、もはやサポートされておらず、多くのバグがあるWindows Live Writerに頼るのをやめることでした。 しかし、それが便利だったことの一つは、投稿に画像を貼り付けることでした。 私はちょうどWindowsのクリッピングツールを使用して、ポストに直接画像を貼り付けることができます。 Markdownでは、画像をファイルに保存し、そのファイルを参照するためのマークアップを生成する必要があります。

このような小さな自動化されたタスクのために、私のgotoツールは素晴らしいLINQPadです。 私はあらゆる種類の有用なことをするためにそこに何百ものスクリプトを持っています。

ファイル名を生成する

まず、私のスクリプトは、クリップボード上の画像をどこに保存するかを調べる必要があります。 これは、私のGitHubリポジトリが異なるパスに複製されているので、私が実行しているコンピュータに依存します。 ここでは、正しいフォルダを選択するための迅速かつ汚れたLINQのトリックです私がオンにしている方のコンピ:

var path = new { @"C:\Users\markh\code\web\markblog\wwwroot\posts18",@"C:\code\soundcode\MarkBlog\wwwroot\posts18" }.First(p => Directory.Exists(p));

次に、ファイル名を生成する必要があります。 私は接頭辞として投稿の”スラッグ”を使用し、増分番号を使用します。 繰り返しますが、LINQの簡単なビットを使用して、使用されていない最初の接尾辞を見つけます。

var prefix = "css-social-media-icon-list";var fileName = Enumerable.Range(1,100) .Select(n => Path.Combine(path,$"{prefix}-{n}.png")) .First(p => !File.Exists(p));

クリップボードから画像を保存する

画像を保存する場所がわかりました。System.Windows.Forms.Clipboardクラスを使用して画像にアクセスし、PNGファイルに保存できます。 このクラスは、クリップボードにアクセスする最も簡単な方法であり、必要に応じてコンソールまたはWPFアプリから使用できます。

私はまた、私は私のブログ記事に貼り付けたいMarkdownでクリップボードの内容を更新します。 だから今、私はスクリーンショットを撮るためにWindowsクリップツールを使用した後に行う必要があるのは、このスクリプトを実行してから、私のテキス

if(Clipboard.ContainsImage()){ Clipboard.GetImage().Save(fileName, ImageFormat.Png); Clipboard.SetText($"!(/posts/2018/{Path.GetFileName(fileName)})");}

さらにそれを取る?そのため、markdown投稿に画像を貼り付けるのはWindows Live Writerとほぼ同じくらい簡単ですが、次のステップは、エディターとして使用するVisual Studioコードに同様のプロセ 私はこれがVisual Studio Code extensionに変わる可能性があると思いますが、それはnodeの書き換えを意味するのではないかと思います。jsとVSコード拡張機能がどのように機能するかを学ぶ。 私がそれを管理していれば、私はそれをやった方法について投稿します。

しかし、うまくいけば、これはC#でクリップボードアクセスを必要とする人にとって便利であり、LINQPadスクリプトを使用して手動タスクを自動化する方法

コメントを残す

メールアドレスが公開されることはありません。