PStart と PortableApps の狭間で揺れる修行
ドライブレターを気にしないでいい、ということで PStart はよさそうだ。PortableApps との関係はどうなるのだ? 排他的な関係なのか、相補的な関係なのか、連携させるべきなのか。
とりあえずやりたいことは、PuttyPortable と同じ設定を見る PAgent を起動したいだけなんだが。
結局
相対パスで実行できる exe を作って PuttyPortable.exe の隣に置いとけばいいんだろう、と Visual Studio 2008 Express Edition を起動し、VC++ で作ろうとして十数分で断念したのは秘密だ。win32api なんか知るか。素直に VB で作ればインテリセンス君がよろしくやってくれるんだろうけれど、変なプライドが邪魔をする。
追記 (2008-07-02)
『間をとって C# だ!』というアドバイスを受け、VC++ で作ってみた*1。ここにさらしとく。
#include "stdafx.h" #include <windows.h> #include <winbase.h> #include <stdio.h> #define BUFFER_LENGTH (512) int _tmain(int argc, _TCHAR* argv[]) { DWORD i; WORD awBuffer[BUFFER_LENGTH]; char p[BUFFER_LENGTH]; i = GetCurrentDirectory(BUFFER_LENGTH, (LPWSTR)awBuffer); //OutputDebugString((LPWSTR)awBuffer); wcscat((LPWSTR)awBuffer, L"\\App\\putty\\pageant.exe"); MessageBox(NULL, (LPWSTR)awBuffer, L"なぞ", MB_OK); HINSTANCE ret = ShellExecute(NULL, L"open", (LPWSTR)awBuffer, L"", NULL, SW_SHOW); return EXIT_SUCCESS; }
はっきり言って、HINSTANCE だの LPWSTR だの wcscat だのがどういうものなのか、今は調べるつもりはない。今、そんなことを覚えている暇はないのだ。なので、MessageBox も消さないし、使っていない p も消さない。思ったように動いて使えるからいいのだ。
それにしても、しばらくの間うまく動かなかった理由が pageant.exe のところを pagent.exe にしていたから、とは。元から ageant だったのかな。今度調べよう。