起動中のプロセスの情報(プロセス名、プロセスID、セッションID)を列挙するには、ターミナルサービスAPIのWTSEnumerateProcesses関数を用いる。 WTSEnumerateProcesses関数のプロトタイプ BOOL WTSEnumerateProcesses( HANDLE hServer, //ターミナルサーバーのハンドル(WSTOpenSeverで取得する) DWORD Reserved, //必ず0を指定する DWORD Version, //必ず1を指定する PWTS_PROCESS_INFO *ppProcessInfo, //WTS_PROCESS構造体配列へのポインタ DWORD *pCount //取得できたWTS_PROCESS構造体配列の要素数 ); WTSEnumerateProcesses関数で、このプログラムを実行中のターミナルサーバーのプロ
プロセスの所有者情報を取得するためには、GetKernelObjectSecurity関数、GetSecurityDescriptorOwner関数、LookupAccountSid関数を用いる 手順は以下のとおり No項目 1GetKernelObjectSecurity関数で、カーネルオブジェクトのセキュリティ記述子を取得する 2GetSecurityDescriptorOwner関数で、セキュリティ記述子からSIDを取得する 3LookupAccountSid関数で、SIDに対するアカウント情報を取得する プロセスの所有者情報を取得する例 自分自身のプロセスの所有者情報を取得する #include <windows.h> #include <aclapi.h> #include <stdio.h> int main() { PSECURITY_DESCRIPTOR pSD; DWOR
2016年10月2日追記: Windows 8.1からこのサンプルでは動作しなくなってしまったようです。Windows Vista~7では動作します。Windows 8は未確認です。 Microsoft.Windows.ActCtxオブジェクトを使うと、レジストリに登録せずCOMコンポーネントが使えます。Activation Context APIのラッパーであり、WSHやHTAにおけるJScript/VBScriptなどのWindows APIを呼べない環境で重宝します。 用意するものは3つです。 利用したいCOMコンポーネント本体(DLLなど)マニフェストファイルスクリプト本体1つ目、サンプルのCOMコンポーネントを作りました: msgbox.cpp。Visual C++ 2010(Expressでも可)でコンパイルできます。Showというメソッドを1つ持った単純なオブジェクトがありま
When an application dynamically loads a dynamic-link library without specifying a fully qualified path name, Windows attempts to locate the DLL by searching a well-defined set of directories in a particular order, as described in Dynamic-Link Library Search Order. If an attacker gains control of one of the directories on the DLL search path, it can place a malicious copy of the DLL in that directo
[WMP][C/C++]DLLは自分自身のリソースを使う事が出来ないのでしょうか?の続き。 いざエントリを投稿しようとして、ざっくりと見返していたら、なんでGetModuleHandle()の引数はNULLなん?と疑問を感じて、MSDNを紐解いてみました。 GetModuleHandle 呼び出し側プロセスのアドレス空間に該当ファイルがマップされている場合、指定されたモジュール名のモジュールハンドルを返します。 HMODULE GetModuleHandle( LPCTSTR lpModuleName // モジュール名 ); lpModuleName NULL を指定すると、呼び出し側プロセスの作成に使われたファイルのハンドルが返ります。 ゜ ゜ ( д )ポカーン 呼び出し側プロセスって、Windows Media Playerじゃまいか。 GetModuleHandle
Gauche で OLE オートメーションを利用するライブラリの作成を先日から取り組んでいますが、少し進展があったので一旦リリースすることにしました。 http://saito.s4.xrea.com/software/Gauche-OLE-0.5.tar.gz 変更や追加は以下の通りです。 メソッド名とプロパティ名をシンボルで表現 従来はメソッド名やプロパティ名は文字列で与えていました。 それをシンボルで表現するようにしました。 例えば object というオブジェクトの method というメソッドを起動したい場合は以下のようになります。 (ole-invoke object 'method) object-apply を定義してあるので以下のように呼出してもよいです。 (object 'method) シンボルで表現するようにしたのは将来的にメソッド名の探索をキャッシュする機構を導入
UACが有効の時、アプリケーションを管理者に昇格させて起動するWindows VistaからUAC(ユーザーアカウント制御、User Account Control)が導入されました。これによって、特別な場所へファイルやレジストリを書き込む等の操作を行なうアプリケーションを実行する時、管理者権限に昇格させないと正常に機能しない恐れがあります。ここでは、管理者権限に昇格させてアプリケーションを起動する方法と、作成したアプリケーションが起動される時に自動で管理者権限に昇格されるようにする方法を紹介します。 コンテキストメニューで「管理者として実行」を選択して実行するまずは基本を確認する意味で、.NET Frameworkとは関係ありませんが、アプリケーションを管理者権限に昇格させて起動する方法を2つ説明します。分かっている方は読み飛ばしてください。 アプリケーションの実行ファイルやショートカッ
ここの備忘録は、あくまでも走り書き程度のメモ的なものですので気をつけてください。 そのままでもちゃんと動くもの、手を加えないとだめなものなど、未完成レベルのコードです。ので、そのまま引用してしまうなど、プログラムを理解する知識のない方は利用しないでくださいね。 今回は Visual Studio .NET の Visual C++ 7.0 で作成した ComTest という COM コンポーネントを同じく Visual C++ 7.0 のプログラム内で使用するという感じのお話です。VC++ 6.0 とは少しやり方が違ったようなので、まとめて見ました。 ComTest というコンポーネントには、IComTest インターフェイスと、CComTest という CoClass が用意されているものとします。タイプライブラリファイルは _ComTest.tlb です。
概要 DebugView は、ローカル システム、または TCP/IP 経由でアクセスできるネットワーク上の任意のコンピュータにおける、デバッグの出力を監視できるアプリケーションです。カーネル モード デバッグの出力と Win32 デバッグの出力の両方を表示できるので、アプリケーションやデバイス ドライバーから生成されたデバッグの出力をデバッガーで取得する必要がなく、標準以外のデバッグの出力 API を使用するようにアプリケーションやドライバーを変更する必要もありません。 DebugView のキャプチャ対象 Windows 2000、Windows XP、Windows Server 2003、および Windows Vista の場合、DebugView では次の情報をキャプチャします。 Win32 の OutputDebugString カーネル モードの DbgPrint Wind
ホーム < ゲームつくろー! < IKD備忘録 C++ SAFEARRAYを試してみる (2009. 9. 8) SAFEARRAYなる物があります。名前にあるように安全な配列です。が、どう使うか良くわかりません。そこで調べてみる事にしました。 とりあえず参考になりそうな文章を備忘録(MSDN:Dr.GUI と COM オートメーション、第 3 部:続 COM のすばらしきデータ型): http://msdn.microsoft.com/ja-jp/library/cc482694.aspx ① そもそもSAFEARRAYとは? そもそもSAFEARRAYってなんだろうという話です。Visual Studioで宣言を見てみると、これは構造体でした: typedef struct tagSAFEARRAY { USHORT cDims; USHORT fFeatures; ULONG cbE
◎Interface 研究室 ここは、いろいろな言語やらコンポーネントやらをつないでしまおう、ということを試みるページです。 たとえば、C/C++ のプログラムから Java のメソッドを呼んだり、Perl から Excel を操作したり・・・ いろいろ試行錯誤しながらやっていきたいと思います。 例によって、ソースのパクリ多いです(^^; 最初の数回は、COM コンポーネントの使い方のお話です。 1.VBScript/JScript から Internet Explorer を操作する[2005/03/18] 2.C++ から COM 経由で Internet Explorer を操作する(Early Binding 版)[2005/03/29] 3.C++ から COM 経由で Internet Explorer を操作する(Late Binding 版)[2005/05/05]
XMLHttpRequest を使用出来るようにする為の宣言。ブラウザにより異なる。 IE では、ActiveXObject("Microsoft.XMLHTTP") を使用。 IE のバージョンによっては、ActiveXObject("Msxml2.XMLHTTP.5.0") , ActiveXObject("Msxml2.XMLHTTP.4.0") , ActiveXObject("Msxml2.XMLHTTP.3.0") , ActiveXObject("Msxml2.XMLHTTP") なども使用出来る。 Mozilla 系ブラウザでは、XMLHttpRequest() を使用。 var xmlhttp = false; if(typeof ActiveXObject != "undefined"){ try { xmlhttp = new ActiveXObject("Micro
Win32OLEとは Win32OLEは、Ruby1.8より標準添付となりました。 Rubyをダウンロードすれば、その中に含まれています。 1.8以降はそちらをご利用ください。 Win32OLEは、RubyからExcelやMS-Wordなどを利用するための拡張ライブラリです。 RubyでVBAに似たスクリプトを書くことができます。 require 'win32ole' excel = WIN32OLE.new('Excel.Application') excel.visible = TRUE workbook = excel.Workbooks.Add(); worksheet = workbook.Worksheets(1); worksheet.Range('A1:D1').value = ['North','South','East','West']; ダウンロード (Ruby 1.
WindowsSDK 内の `winerror.h` や 他のエラーコードっぽいヘッダーからエラーコードっぽいのを抽出し、FormatMessage() で日本語化しただけのものです^^; 結果出力させた環境は Windows10 ver.1703 (Creators Update)、実行バイナリを生成したのは VC2017 です。 (2017-05-30 結果出力を WinXP SP2 から更新しました! 12年ぶりに更新しました! 忘れてないよ!!) 出力結果の中で "---" となっているのは、メッセージの取得に失敗したものです かなり大きなテーブルなので、表示されるまで時間かかるかもしれません (2.2MBぐらいあります) COMにカテゴライズしてる後ろの方の結果はCOMのカテゴリなのか怪しい FormatMessage() で取り出すべきエラーコードじゃないのまで取り扱ってるよう
クレジットカード現金化の高還元率の優良店を選ぶためには クレジットカード現金化の優良店を選ぶポイントは、換金率やスピードもありますが、そのほかにも見ておきたいポイントもあります。 お金に厳しい人が利用しますので、手数料やキャンペーンの有無、価格交渉ができる業者ということは見ておきたいところです。 それぞれどのような内容なのでしょうか。 手数料が無料であるクレジットカード現金化の業者には、手数料をすべて無料でしてくれるところがあります。 業者によっては、単純に手数料という名目で業者側の利益がとられていたり、振込手数料、事務手数料という名目で少額ながらお金がかかることがあります。 せっかく高い換金率が記載されていても、手数料の分が差し引かれることで、損をしたような気持ちになったり後から気づくこともあります。 これらの手数料は最初から公式ホームページに記載がある場合は了承したうえで申し込みもでき
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く