備忘録

 

flash.cs

 

using System;
using System.Runtime.InteropServices;
using System.Text;

public static class Program
{
private delegate bool EnumWindowsDelegate( IntPtr hWnd, IntPtr lparam );

[DllImport( "user32.dll" )]
static extern Int32 FlashWindowEx( ref FLASHWINFO pwfi );

[DllImport( "user32.dll" )]
[return: MarshalAs( UnmanagedType.Bool )]
private extern static bool EnumWindows( EnumWindowsDelegate lpEnumFunc, IntPtr lparam );

[DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )]
private static extern int GetClassName( IntPtr hWnd, StringBuilder lpClassName, int nMaxCount );

[StructLayout( LayoutKind.Sequential )]
public struct FLASHWINFO
{
public UInt32 cbSize ; // FLASHWINFO構造体のサイズ
public IntPtr hwnd ; // 点滅対象のウィンドウ・ハンドル
public UInt32 dwFlags ; // 以下の「FLASHW_XXX」のいずれか
public UInt32 uCount ; // 点滅する回数
public UInt32 dwTimeout; // 点滅する間隔(ミリ秒単位)
}

//public const UInt32 FLASHW_STOP = 0 ; // 点滅を止める
//public const UInt32 FLASHW_CAPTION = 1 ; // タイトルバーを点滅させる
//public const UInt32 FLASHW_TRAY = 2 ; // タスクバー・ボタンを点滅させる
//public const UInt32 FLASHW_ALL = 3 ; // タスクバー・ボタンとタイトルバーを点滅させる
//public const UInt32 FLASHW_TIMER = 4 ; // FLASHW_STOPが指定されるまでずっと点滅させる
public const UInt32 FLASHW_TIMERNOFG = 12; // ウィンドウが最前面に来るまでずっと点滅させる

private static string m_searchClassName;
private static IntPtr m_hWnd;

private static void Main()
{
m_searchClassName = "Unity";
EnumWindows( new EnumWindowsDelegate( EnumWindowCallBack ), IntPtr.Zero );

var fInfo = new FLASHWINFO();
fInfo.cbSize = Convert.ToUInt32( Marshal.SizeOf( fInfo ) );
fInfo.hwnd = m_hWnd;
fInfo.dwFlags = FLASHW_TIMERNOFG;
fInfo.uCount = 12;
fInfo.dwTimeout = 12;

FlashWindowEx( ref fInfo );
}

private static bool EnumWindowCallBack( IntPtr hWnd, IntPtr lparam )
{
var csb = new StringBuilder( 256 );
GetClassName( hWnd, csb, csb.Capacity );
if ( !csb.ToString().Contains( m_searchClassName ) ) return true;
m_hWnd = hWnd;
return true;
}
}

 

 

============================================

csc.exe /target:library flash.cs

============================================

 

language-and-engineering.hatenablog.jp

www.atmarkit.co.jp

https://www.php.net/manual/ja/function.dl.php

 

www.dspt.net

映画のようにターミナルで文字を流す

こんにちは。くろねこキャットです。

Linux で、ハッカー映画のようにターミナルに文字を流しっぱなしにする方法について記事を書きます。

今回は、syslog を用いて文字をターミナルに流していきます。

 

以下、ソースです。

while true; do cat /var/log/syslog; done             

この一行だけです。

syslog は、ディストリビューションによっては

/ver/log/messages

になっていたりしますので、適宜読み替えてください。

ソースをコピーして、ターミナルに貼り付けますと、

さながら映画にでてくるハッカーのようにターミナルに文字が流れます。

これをやれば、仕事をしてる感も出せますね(笑)

コンピュータに負荷をかけますので、あまりやりすぎてはだめです。

 

今日の記事は以上となります。

Ubuntu 18.04 のターミナルで動くTera Term もどきを作ってみた

こんにちは。くろねこキャットです。

現在、Ubuntu 18.04 を使っているのですが、

Ubuntu には Windows にあるTera Term のようなソフトが見つけられなかったので、

shell をつかってそれっぽいものを作ってみました。

 

以下、ソースです。

 #!/bin/sh
 data=cmmand_log_$(date +%Y%m%d%H%M%S)                     
 touch ${data}
 script ${data}
 col -bx < ${data} > ${data}.log
 rm ${data}

ソースをコピーして、shellを実行しますと、

ターミナルの入力/出力が記録されます。

ログ取りが終わったら、 exit を入力してください。

 

f:id:kuroneko_cat_rb:20190224202628j:plain

こんな感じで、作業日時付きで保存されます。