2014-01-01から1年間の記事一覧
ちょっと必要になって調べてた。呼び出す関数はExitWindowsExなんだけど特権の調整が必要で単純に呼び出すだけでは成功しない。 ExitWindowsExから調べていって、LUID_AND_ATTRIBUTESのところで... Its meaning is dependent on the definition and use of t…
あたり前っちゃーあたり前なんですが、Win32を呼び出す際の選択肢として、なぜかラムダを使うという選択肢が思いつかなかった。 delegate Boolean EnumWindowProc(IntPtr hwnd, IntPtr lp); [DllImport("User32.dll")] private static extern Boolean EnumWi…
ためしにやったら動いた。さすがC++。 #include <Windows.h> #include <iostream> int main() { HWINSTA sta = GetProcessWindowStation(); EnumDesktops( sta, [](LPTSTR desktop, LPARAM lp)->BOOL { std::cout << desktop << std::endl; return TRUE; }, 0); } Win32は列挙系で</iostream></windows.h>…
ホットキー用のコントロールを自前で作る際のポイント。TextBoxのオーバーライドとかは必要なくて、UserControlから十分作れそうな感じ。 ポイントはPreviewKeyDownで処理すること。KeyDownだとCtrl+Aで全選択されたり、特定のキーを拾えなかったりする。 th…
Windows Forms同じくオーバーライドかなぁと思っていたら全然違いました。 using System.Windows.Interop; var wnd = new Window(); wnd.Show(); // Show()の後で無いと取れません。 var handle = new WindowInteropHelper(wnd).Handle; var src = HwndSourc…
WPFでHot Keyを取り扱う方法です。登録自体はWin32を用いますが、仮想キーの取り扱いやWindow Handleの取得方法なども課題になります。 順番に。登録・解除はWin32。 using System.Runtime.InteropServices; [DllImport("User32.dll")] private static exter…
プロセスを起動する際は、通常、元のWindow Stationとデスクトップを引き継ぎますが、CreateProcessではこれらを明示的に指定できるようになっています。 STARTUPINFO si = {}; si.cb = sizeof(si); si.lpDesktop = "WinSta0\\AltDesktop"; PROCESS_INFORMAT…
Windowsのデスクトップはそもそも一つではありません。デスクトップはWindow Stationによって管理されており、既定でDefault、WinLogon、ScreenSaverがあることになっています。 プロセスはWindow Stationに、スレッドはデスクトップにひも付く感じになって…
Windows 10になって仮想(マルチ)デスクトップが入るみたいですが、しばらく現行Windowsにて仮想デスクトップが出来ないかいじっていました。 CreateDesktopに関しては、前々から気にしつつも見ていなかったのですが、調べてみると結構簡単でした。 /* 1. 新…
背景を白にしたEpicのまっさらさが結構好きだったんですが、Reachに変更しました。 多少でもカスタムできたらよかったのですが、時間がかかりそうだったので断念。 前々から、はてなブログに書いて、Evernoteにクリップという方法で、整形されたノートを作っ…
Node.jsで組んで、必要なツールもNode.jsで書くのが楽だなぁと。ロジックもそのまま使えるので。 そうすると、引数の処理どうしようかなぁとなりますが、argvがヘルプを自動的に作ってくれていい感じでした。 argv var argv = require('argv'); argv.option(…
Node.jsからちょっとメール使って通知したいなーとか思ったときに便利に使えます。 CentOS 6.5 x86_64 Node.js v0.10.28 Nodemailer v0.6.3 公式の説明が丁寧なので、簡単に使えますね。 Nodemailer Gmailなどを利用しての送信もできますが、サーバーからの…
CentOSでtmux使いたいよーっと。さくらのVPSだと最初から入っているので、別のクリーン環境で混乱しました... CentOS 6.5 x86_64 EPELに関しては以下を参照。 EPEL epel-release 手順は以下の通り。 rpmパッケージのDL rpmパッケージのインストール /etc/yum…
はてな記法を使っていましたが、Markdownで書いてみることにしました。 見出しをどこからはじめるかで、ちょっと悩んだのですが、はてな記法だと記事内はh3から始まるようなのであわせることに。ブログタイトルがh1、記事タイトルがh2と考えれば、妥当なのか…
Node.jsのexpressを使おうと思ったら、expressパッケージからコマンドがなくなっていた。環境は以下。 Node v0.10.26 express 4.0.0 expressの公式を確認したところ、どうもコマンドはパッケージが変わったらしい。 express Guide 以下で手に入る。 $ npm in…
Google Analyticsの利用について 本ブログはGoogle Analyticsを利用してアクセスログの収集及び解析を行っています。収集にはcookieを使用します。データは匿名で収集され、個人を特定できるデータは含みません。収集したデータは本ブログの利用状況の把握の…