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; } } } }