WADAXへの引っ越しでCGI動かなくて困ったときに調べた情報

cgi-binフォルダ以外で動かすには.htaccessを置いて以下のように記述

# CGI を使えるようにする。
Options +ExecCGI
AddHandler cgi-script .cgi .pl .pm

.htaccessのパーミッションは606
cgiファイルのパーミッションは701か705
cgiあるフォルダも701か705じゃないとダメらしい。

サーバーの違いでインストールされてるライブラリがたりないということもある

今回、Jcodeがなかったので以下からとってきて入れたら動いた
http://openlab.ring.gr.jp/Jcode/index-j.html

動かない、謎!と思ったら、
cgiコードをエラーがでなくなるまでどんどんコメントアウトしてどこが原因か当てをつけてから工夫しましょう。

ちなみにcgiのフルパスが欲しいときは以下のコードで実行

print "Content-type: text/html \n\n";
use Cwd;
my $cwd = Cwd::getcwd();
print $cwd;

楽天ひかりへの切り替え設定(PR-500MI)

我が家は標準タイプホームゲートウェイ/ひかり電話ルータ (PR-500MI)なのでその設定方法。

・PCとPR-500MIをLANで直つなぎしてhttp://192.168.1.1へアクセス
・ログインする
・基本設定>接続先設定(IPv4 PPPoE)を選択
・一番上のメインセッションのとこの「編集」をクリック
f:id:shikaku:20210301175741p:plain
・楽天から届いてる書類のIPv4(PPPoE)インターネット接続情報をそのまま打ち込む
f:id:shikaku:20210301180133p:plain
・下の「設定」ボタンをクリックして完了

C#/vb.netでパスが通っていない regasm.exe を呼出するexeを作る

ネタ元

x86でexe作れば32bit版の、
x64でexe作れば64bit版の、regasm呼び出せる

C#

using System.Runtime.InteropServices;
using System.Text;

class Program
{
    static void Main(string[] args)
    {
        // RegAsm のパスを取得
        string path = System.IO.Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "RegAsm.exe");
        // パスをコンソールに出力
        Console.WriteLine("[" + path + "]");

        System.Diagnostics.Process p = new System.Diagnostics.Process();
        p.StartInfo.FileName = path;
        // 渡されたコマンドライン引数をそのまま渡す
        StringBuilder buff = new StringBuilder(128);
        foreach(string arg in args)
        {
            buff.Append(arg + " ");
        }
        p.StartInfo.Arguments = buff.ToString();
        // 出力を取得できるようにする
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardInput = false;
        // ウィンドウを表示しない
        p.StartInfo.CreateNoWindow = true;

        // 起動
        p.Start();

        // 出力を取得
        string results = p.StandardOutput.ReadToEnd();
        // プロセス終了まで待機する
        p.WaitForExit();
        p.Close();
        // 出力された結果を表示
        Console.WriteLine(results);
    }
}

vb.net

Imports System.Runtime.InteropServices
Imports System.Text

Module Program

    Sub Main()

        'RegAsm のパスを取得
        Dim path As String = IO.Path.Combine(RuntimeEnvironment.GetRuntimeDirectory(), "RegAsm.exe")
        'パスをコンソールに出力
        Console.WriteLine("[" & path & "]")

        Dim p As New System.Diagnostics.Process()
        p.StartInfo.FileName = path
        '渡されたコマンドライン引数をそのまま渡す
        Dim args As New StringBuilder(128)
        For Each arg As String In My.Application.CommandLineArgs
            args.Append(arg & Space(1))
        Next
        p.StartInfo.Arguments = args.ToString
        '出力を取得できるようにする
        p.StartInfo.UseShellExecute = False
        p.StartInfo.RedirectStandardOutput = True
        p.StartInfo.RedirectStandardInput = False
        'ウィンドウを表示しない
        p.StartInfo.CreateNoWindow = True

        '起動
        p.Start()

        '出力を取得
        Dim results As String = p.StandardOutput.ReadToEnd()
        'プロセス終了まで待機する
        p.WaitForExit()
        p.Close()
        '出力された結果を表示
        Console.WriteLine(results)
    End Sub

End Module

ExcelVBAで押されたキー判定する

GetAsyncKeyState ()を使う

Option Explicit

#If Win64 Then
Private Declare PtrSafe Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer
#Else
Private Declare Function GetAsyncKeyState Lib "User32.dll" (ByVal vKey As Long) As Integer
#End If


'Ctrl+Cキー
Public Sub CheckKey()
     If GetAsyncKeyState(vbKeyControl) Then
        If GetAsyncKeyState(vbKeyC) Then
            ...
        End If
     End If

End Sub


キーコード表

F1~F16

F1 112 vbKeyF1
F2 113 vbKeyF2
F3 114 vbKeyF3
F4 115 vbKeyF4
F5 116 vbKeyF5
F6 117 vbKeyF6
F7 118 vbKeyF7
F8 119 vbKeyF8
F9 120 vbKeyF9
F10 121 vbKeyF10
F11 122 vbKeyF11
F12 123 vbKeyF12
F13 124 vbKeyF13
F14 125 vbKeyF14
F15 126 vbKeyF15
F16 127 vbKeyF16

0~9 (キーボード)

0 48 vbKey0
1 49 vbKey1
2 50 vbKey2
3 51 vbKey3
4 52 vbKey4
5 53 vbKey5
6 54 vbKey6
7 55 vbKey7
8 56 vbKey8
9 57 vbKey9

0~9(テンキー)

0 96 vbKeyNumpad0
1 97 vbKeyNumpad1
2 98 vbKeyNumpad2
3 99 vbKeyNumpad3
4 100 vbKeyNumpad4
5 101 vbKeyNumpad5
6 102 vbKeyNumpad6
7 103 vbKeyNumpad7
8 104 vbKeyNumpad8
9 105 vbKeyNumpad9
アスタリスク 106 vbKeyMultiply
プラス 107 vbKeyAdd
Enter 108 vbKeySeparator
マイナス 109 vbKeySubtract
ピリオド 110 vbKeyDecimal
スラッシュ 111 vbKeyDivide

A~Z

A 65 vbKeyA
B 66 vbKeyB
C 67 vbKeyC
D 68 vbKeyD
E 69 vbKeyE
F 70 vbKeyF
G 71 vbKeyG
H 72 vbKeyH
I 73 vbKeyI
J 74 vbKeyJ
K 75 vbKeyK
L 76 vbKeyL
M 77 vbKeyM
N 78 vbKeyN
O 79 vbKeyO
P 80 vbKeyP
Q 81 vbKeyQ
R 82 vbKeyR
S 83 vbKeyS
T 84 vbKeyT
U 85 vbKeyU
V 86 vbKeyV
W 87 vbKeyW
X 88 vbKeyX
Y 89 vbKeyY
Z 90 vbKeyZ

その他のボタン

BackSpace 8 vbKeyBack
Tab 9 vbKeyTab
Enter 13 vbKeyReturn
Shift 16 vbKeyShift
Ctrl 17 vbKeyControl
Alt 18 vbKeyMenu
Pause 19 vbKeyPause
Esc 27 vbKeyEscape
変換 28  
無変換 29  
スペース 32 vbKeySpace
PgUp 33 vbKeyPageUp
PgDown 34 vbKeyPageDown
Home 36 vbKeyHome
37 vbKeyLeft
38 vbKeyUp
39 vbKeyRight
40 vbKeyDown
Ins 45 vbKeyInsert
Del 46 vbKeyDelete
Win 91  
ポップアップ 93  
NumLock 144 vbKeyNumlock
: 186  
; 187  
, 188  
- 189  
. 190  
/ 191  
@ 192  
[ 219  
\ 220  
] 221  
^ 222  
226  

AppleStoreで買ったものの領収書をもらう方法

以下フォームから申請する。
商品を出荷してから1週間は必要&
1週間以上経過してても2営業日ぐらいかかるらしいので急いでるときは注意。
https://www.apple.com/jp/feedback/aos/receipt_request.html

購入したら届くメールの中の「ご注文番号」「ご請求者様」を入力
メールアドレスは購入時のものじゃなくてOK

AppleStoreで買ったものの領収書をもらう方法

以下フォームから申請する。
商品を出荷してから1週間は必要&
1週間以上経過してても2営業日ぐらいかかるらしいので急いでるときは注意。
https://www.apple.com/jp/feedback/aos/receipt_request.html

購入したら届くメールの中の「ご注文番号」「ご請求者様」を入力
メールアドレスは購入時のものじゃなくてOK