備忘録
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
https://www.php.net/manual/ja/function.dl.php
映画のようにターミナルで文字を流す
こんにちは。くろねこキャットです。
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 を入力してください。
こんな感じで、作業日時付きで保存されます。