真面目系クズのじんせい

真面目系クズ(自称)です。趣味とか、勉強とかを書いていきます。

仕事中突然、
外人「Windows Helloの設定ができないんですよ~」
という問い合わせが来た。

僕「(゚ロ゚;)エェッ!?(そういう仕事だったっけ・・・)」
僕「( ´,_ゝ`)まぁ、いずれにしても楽勝だろう。」

とりあえず、ネットで調べてみる。

なるほど。Windows Helloを使用するためには、指紋認証デバイスかデプスのとれるカメラが搭載されていないとだめなのね。
僕の自宅のPC Surface Pro 4だから知らなかったわ~~~~。
Windows10ならすべてのPCで使用できると思ってたわ~~~~~~~~~~~。



嘘ですすみません。

当初、Windows設定「Windows Hello」が以下のような表示になっていました。
(外人のPCだったので英語です。かっこつけて英語にしたわけじゃないです。)

dynamic-lock-windows10

僕「Windows Hello isn't available on this device???嘘乙!!!!
このノートPC、Windows Hello対応のシール貼ってるんだからな!!!!!」


(デバイスマネージャーを開く)
僕「ハッハー!このPCの指紋デバイスがオフになっとるわ!!!!
よくわかんないなら、おとなしくデフォルト設定で使用しとけや!!!!
デバイスマネージャーで指紋デバイスONにすればいけるわ~~~~~~。」




いけないんだなこれが!!

指紋を設定できるボタンは現れたのだが、クリックすると一瞬でウインドウが閉じる・・・なんでや・・・。

結局原因は、コントロールパネルのシステムとセキュリティ、
ユーザーアカウント制御の設定」が「通知しない」になっていたためでした・・・。
突然日本語表記になりますが、下記画像のような状態になっていました。

ユーザーアカウント制御


4段階設定の上から2番目に設定しとけば問題なくWindows Helloの設定ができました~。
めでたしめでたし。

C++のコードで、ソケット通信のkeepalive設定方法が、雑魚の私には全然わからぬ状態だった。
どうやら、tcp_keepalive構造体とWSAIoctlで設定できるらしい、ということまでは分かった。
そうだ!とりあえず、Microsoftさんの見解を!!!

WSAIoctl function(Windows)
https://msdn.microsoft.com/en-us/library/windows/desktop/ms741621(v=vs.85).aspx

(´;ω;`)英語わからん。
いやおちつけ、まだなんかあるぞ。

SIO_KEEPALIVE_VALS control code
https://msdn.microsoft.com/en-us/library/windows/desktop/dd877220(v=vs.85).aspx

(´;ω;`)

何はともあれ、値は適当だけど、必要最低限以下でいけるっぽい。

****************************************************************************************************
#include <Mstcpip.h>        //struct tcp_keepalive を使用するため

SOCKET mySock;
tcp_keepalive tcpKeepalive;
DWORD dReturn;

 tcpKeepalive.onoff = 1;                            // 0 以外ならオンになるみたい
 tcpKeepalive.keepalivetime = 20000;      // 最初にkeepaliveを送るまでの時間(ms)
 tcpKeepalive.keepaliveinterval = 1000;   // keepaliveを送る間隔(ms)
 WSAIoctl(*mySock , SIO_KEEPALIVE_VALS, &tcpKeepalive, sizeof(tcpKeepalive), NULL, 0, &dReturn, NULL, NULL);

***************************************************************************************************

なんでタグを埋め込まなかって?めんどくさいからさ!!!
(はてなブログのほうがHTML編集する気が起きたな・・・)


 

 さて、今回はASP、ラジオボタンでサーバサイドに値渡しを(したつもり)します。まずは、適当にラジオボタンでも作成してみます。
 
ラジオボタンをつくるだけ.asp ※action属性でsubSample.aspを指定していますが、このままでは特に何もありません

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テストページ01</title>
</head>
<body>
 <form action="subSample.asp" method="get">
  <input type="radio" name="button1" value="1" checked />送信test01
  <input type="radio" name="button1" value="2" />送信test02
  <input type="submit" value="送信" />
 </form>
</body>
 

f:id:atwgwu:20170510201831p:plain

 
 あれ、文字化けしましたね。文章でUTF-8を指定しているのに、aspファイルの保存形式がUTF-8でなかったためから(たぶん)なので、保存形式をUTF-8に変更します。
 

f:id:atwgwu:20170510201853p:plain

 
 とりあえず治りました。このファイル保存形式のミス、結構あると思うんですよね。
 
 次に、サーバサイドのaspを記述します。クライアントサイドで押したラジオボタンの結果を表示するだけの簡単なものです。
 
サーバサイド.asp(subSample.asp)
<%
@Language = "VBScript"
If request.QueryString.Item(1) = 1 Then
 response.write("test01")
Else
 response.write("test02")
End If
%>
 
 クライアンサイドでsubmitした"button1"の値を受け取って、条件分岐しています。しかし、サーバサイド処理をどれだけ独立して記述するべきなのかがよくわからない。

 例えば、上記のプログラムにタグを埋め込んで、下記のようにしても動く。
 
タグを埋め込んでみたサーバサイド.asp
<%@Language = "VBScript"%>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テスト02</title>
</head>
<body>
 <h1>勉強中</h1>
 <%
  If request.QueryString.Item(1) = 1 Then
   response.write("test01")
 Else
   response.write("test02")
 End If
 %>
</body>
</html>
 
 結局 "<% %>" で囲っている部分はサーバサイド処理なのだから、問題はなさそう。
 
 
 
 
~~以下、参考にしてはいけない補足~~
 以上の結果から、以下のようなASPを書いてみた。
 
<%@Language = "VBScript"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
 <title>テストページ01</title>
 <script type = "text/javascript">
  function testFuncJa(valueJa){
   if(valueJa == 1){
     testView.innerHTML = "<% testFuncVb(1) %>";
   }else if(valueJa == 2){
    testView.innerHTML = "<% testFuncVb(2) %>"; 
   }else{
     testView.innerHTML = "<% testFuncVb(0) %>";
   }
  }
  </script>
 <%
 function testFuncVb(valueVb)
  If valueVb = "1" Then
   Response.Write "test01"
  ElseIf valueVb = "2" Then
   Response.Write "test02"
  Else
   Response.Write "UnKnown"
  End If
 end function
 %>
</head>
<body onload = "testFuncJa(0)">
 <form>
  <input type="radio" name="button1" onClick= "testFuncJa(1)" />test01
  <input type="radio" name="button1" onClick= "testFuncJa(2)" />test02
 </form>
 <div id="testView"></div>
</body>
 
 
 えっ、入り乱れとるし何がしたいん・・・。
 私の希望は、「ラジオボタンでクリックした内容を<div>タグ内に動的表示させる」で、表示させる内容はサーバサイドで決定するという感じ。回りくどいコードですが、これはメモ書きとして。
 

↑このページのトップヘ