備忘録

 

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

baba-s.hatenablog.com

 


dotnet


.NET Framework 4.8
2019年4月18日に正式リリースされた。[20]

 

rpm --import https://packages.microsoft.com/keys/microsoft.asc

sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'

yum update

yum install libunwind libicu
yum install dotnet-sdk-2.0.0

※export PATH=$PATH:$HOME/dotnet
dotnet --version

 

dotnet new console -o myApp
cd myApp
dotnet new nuget
vim nuget.config

 

 

 

 


[root@localhost myApp]# dotnet publish -r linux-x64 -c Release
.NET Core 向け Microsoft (R) Build Engine バージョン 15.3.409.57025
Copyright (C) Microsoft Corporation.All rights reserved.

myApp -> /var/www/html/myApp/bin/Release/netcoreapp2.0/linux-x64/myApp.dll
/root/.nuget/packages/microsoft.dotnet.ilcompiler/1.0.0-alpha-27527-01/build/Microsoft.NETCore.Native.Unix.props(103,5): error : Platform linker ('clang-3.9') not found. Try installing clang-3.9 or the appropriate package for your platform to resolve the problem. [/var/www/html/myApp/myApp.csproj]
[root@localhost myApp]#

 

 

[root@localhost linux-x64]# pwd
/var/www/html/myApp/bin/Release/netcoreapp2.0/linux-x64
[root@localhost linux-x64]#
[root@localhost linux-x64]# myApp.dll
bash: myApp.dll: コマンドが見つかりません
[root@localhost linux-x64]# dotnet myApp.dll
Hello World!
[root@localhost linux-x64]#
[root@localhost linux-x64]#

 

 

kagasu.hatenablog.com

docs.microsoft.com