3流プログラマのメモ書き

元開発職→社内SE→派遣で営業支援→開発戻り浦島太郎状態の三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。

2010-05-01から1ヶ月間の記事一覧

(.Net)iTextSharpを使ってPDFを出力する

iTextSharpというライブラリを使うと簡単にできるようです。 ダウンロードはhttp://sourceforge.net/projects/itextsharp/files/itextsharp/からできます。 なかなかクラスライブラリの詳しい説明をしてくれているサイトがないんですが、Vector:iTextSharp …

(.Net,ADSI)グループにユーザアカウントを追加する

ADSIを使って、.Net からActiveDirectoryのユーザアカウントをグループに所属させる方法です。 下記のコードでできます。(C#) /// /// グループにユーザを追加 /// /// グループのパス(LDAP://ドメインコントローラ名/CN=グループ名,CN=Users,DC=domainname,…

バッチファイルでフォルダ内の再帰処理

複数のユーザが使ってる Windows XP で各ユーザの Application Data 内に特定のフォルダが無ければコピーしたいという要件があります。 で、そのような処理はバッチファイルで for in do 句でループ処理を行うと可能なようです。 下記のような例となります。…

Just-In-Time デバッガが鬱陶しいので無効にした

PC起動時に毎回といっていいほど、Just-In-Time デバッガが出てきます。デバッガしないを選択してもまた出てきます。 どうやら、DELLのサポートツールのVBScriptがエラーが吐いてるっぽいんですが。。 ほんとはなんでエラーが出てるのか調べる必要があると思…

WSHでWScript.Shellオブジェクトを作成しようとするとエラー

(OSはXP SP3です。) VBScriptを使って下記のように WScript.Shellオブジェクトを作成しようとしてました。 Set WshShell = CreateObject("WScript.Shell") WScript.Echo "メモ帳を起動します。" WScript.Run "notepad.exe" ところが、こんなエラーが出ます。…

WSHでインストール済みソフトを列挙

PC起動時に、ドメインに参加しているクライアントPCのインストール済みソフトを列挙し、サーバの共有フォルダにテキストファイルで落とすという方法を考えています。 グループポリシーで設定をしたいので、WSH(Windows Script Host)を使ってみることにしまし…

コンテキストメニューにコマンドプロンプトを追加する

PCセットアップすると最初にするくせによく忘れるのでメモ。。 エクスプローラでフォルダ右クリック時にコマンドプロンプトを追加する方法です。 下記のレジストリを追加すればOKです。 Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\…

ターミナルサービス使用中に、IE8でファイルがダウンロードできない

ターミナルサービスでWindowsServer2003を使ってて、IE8でファイルのダウンロードができないという現象が発生しました。 IEのキャッシュ等を消したりいろいろしたんですが、全然ダメです。 で、調査した結果 IME の不具合ということが分かりました。 下記のM…

(C++)ファイルの存在チェックを行う

Win32 API でファイル存在チェックを行う方法です。 PathFileExists( ファイル名 )関数を使えばいいようです。 存在すれば true ,しなければ false ( C的には1かそれ以外か) が返るようですね。 参考: WINDOWS忘却録 PathFileExists -ファイルの存在を調べる…

(C++)環境変数のパスを展開する

%systemroot% や %programfiles% との環境変数パスをC++で展開する方法です。 Win32 API の ExpandEnvironmentStrings 関数を使えばいいようです。 注意点は %appdata% だと %%appdata%% というように%でエスケープしないといけないという点です。 こんな感…

(C++)Win32APIを使ってテキストファイルを開き1行ずつ読み込もうとおもったけど...

年に1,2回ほどしか触らない C++ は相変わらず苦手な3流プログラマです。。 設定が入ってるテキストファイルを開き中身を変更するアプリを作ってるわけですが、早速ファイルオープンのところで詰まりました。 とりあえずWindows向けアプリということで Win32…

グループ・ポリシー管理コンソール(GPMC)を使ってみた

WindowsServer2003ですが、いつもグループポリシーの管理として"Active Directoryユーザーとコンピュータ"を使っているんですが、OUのコンテキストメニューからプロパティ出してグループポリシータブ選択して、対象のグループポリシー選択して編集という感じ…

Windows Installer の戻り値

バッチ等で Windows インストーラを使ってアプリケーションのインストールをした場合、成功したかどうかを知りたい時があります。(特に管理者権限なくて、インストール失敗したなど。。。) で、調べてみると、ちゃんとWindowsインスーラも戻り値をかえすよう…

MSIファイルからのファイル抽出

MSIのインストーラファイルから、内部のファイルを抽出できるようです。 使い方はこんな感じ msiexec /a TargetInstaller.msi targetdir="C:\Temp\out" /qn Windows Installer でこんなこともできるのは知りませんでした。 参考: msiファイルからファイルを…

OpenOffice3.2の設定項目と対応する設定ファイル

OpenOfficeは設定項目のほとんどを XML に持っているので、ちょっとカスタマイズするときに便利ですね。 例えば、インストール後にバッチ等で設定ファイルを上書きするようにしてやればこちらが意図した設定で展開できるわけです。 一例を紹介しておきます。…

グループポリシーのソフトウェアインストールが実行されない原因は意外にも。。

グループポリシーのコンピュータの構成で、ソフトウェアインストールのテストをしてたんですが、どうも適用されないPCが数台ありました。 しかもその数台とも同じDELLの同じ型のPCです。 とりあえずイベントビュアーを見てみるとこんなエラー吐いてました。 …

OpenOfficeをActiveDirectoryで展開する

OpenOffice3.2が出たのでWindowsドメイン内で一斉展開することになりました。 ただ、手動で各クライアントにインストールすのではなく、グループポリシーを使って展開することにします。 グループポリシーを使うとしても、バッチでやる方法と、ソフトウェア…

(C++)環境変数となってるパスを展開する

%systemroot% とか %ProgramFiles% とかの環境変数のパスをC++で展開する方法です。 Windowsにはそれ用のAPIが用意されているようなので、それを使えばいいようです。 APIは ExpandEnvironmentStringsを使います。 使い方はこんな感じです。 //MFCでCString…

グループポリシーのスタートアップはどの権限?

ActiveDirectoryのグループポリシーでコンピュータの構成とユーザーの構成のそれぞれにスタートアップスクリプトとログインスクリプトがあります。 それがどの権限で動くのかがちょっと疑問になったので調査。。 ちなみに、スタートアップスクリプトはグルー…

共有フォルダ上のバッチファイルのカレントパスはどこになる?

Windows 共有フォルダにバッチファイルを置いて、同じフォルダに置いてあるexeファイルを相対パス指定で実行する処理を書きました。下記のような感じです。 バッチファイルを ¥¥servername¥testdir¥test.bat とします。バッチ内では ¥¥servername¥tes…

(.Net)DataGridViewRow作成時に列名指定で値を入れる

最近、DataGridViewRow.CreateCells()というメソッドを知りました。 これは既存の DataGridView の列定義に基づいてセル(正確にはセルテンプレート)を作成してくれるもので、新規DataGridViewの行を作るときに便利そうです。 それで、下記のようなコードを書…