| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 | using System;using System.Collections.Generic;using System.Text;using System.Threading;namespace IControls_FireManager{    // 동글키 프로젝트    // https://support.microsoft.com/ko-kr/kb/2478964    public static class _RockeyDll2    {        [System.Runtime.InteropServices.DllImport("Ry4S.dll")]        static extern ushort Rockey(ushort function, out ushort handle, out uint lp1, out uint lp2,            out ushort p1, out ushort p2, out ushort p3, out ushort p4, byte[] buffer);        const ushort RY_FIND = 1;        const ushort RY_FIND_NEXT = 2;        const ushort RY_OPEN = 3;        const ushort RY_CLOSE = 4;        const ushort RY_READ = 5;        const ushort RY_WRITE = 6;        const ushort RY_RANDOM = 7;        const ushort RY_SEED = 8;        const ushort RY_WRITE_USERID = 9;        const ushort RY_READ_USERID = 10;        const ushort RY_SET_MOUDLE = 11;        const ushort RY_CHECK_MOUDLE = 12;        const ushort RY_WRITE_ARITHMETIC = 13;        const ushort RY_CALCULATE1 = 14;        const ushort RY_CALCULATE2 = 15;        const ushort RY_CALCULATE3 = 16;        const ushort RY_DECREASE = 17;        const ushort RY_DES_ENC = 42;        const ushort RY_GET_TIMER_EX = 0xA3;        public static ushort[] m_Handle = new ushort[32];        public static int m_HandleNum = 0;        public static bool DonggleCheck()        {            ushort ret;            ushort p1, p2, p3, p4;            uint lp1, lp2;            byte[] buffer = new byte[1024];            p1 = 0xC44C;            p2 = 0xC8F8;            p3 = 0x799;            p4 = 0xC43B;            /*            p1 = 0xF16D;            p2 = 0xB0E4;            p3 = 0xCBC7;            p4 = 0x1457;            */            ret = Rockey(RY_FIND, out m_Handle[0], out lp1, out lp2, out p1, out p2, out p3, out p4, buffer);            if (ret != 0)            {                Console.WriteLine("Not Found Rockey4SmartND!");                return false;            }            else            {                // "HID: " + lp1.ToString("X") + "\r\n";                return true;            }                  }    }}
 |