unit untmain;
inte***ce
const
mcw_em = dword($133f);
varmain: tmain;
implementation
function tmain.getmac: string;
varncb : tncb;
s:string;
adapt : tastat;
lanaenum : tlanaenum;
i, j, m : integer;
strpart, strmac : string;
begin
fillchar(ncb, sizeof(tncb), 0);
ncb.ncb_command := char(ncbenum);
ncb.ncb_buffer := pchar(@lanaenum);
ncb.ncb_length := sizeof(tlanaenum);
s:=netbios(@ncb);
for i := 0 to integer(lanaenum.length)-1 do
begin
fillchar(ncb, sizeof(tncb), 0);
ncb.ncb_command := char(ncbreset);
ncb.ncb_lana_num := lanaenum.lana[i];
netbios(@ncb);
netbios(@ncb);
fillchar(ncb, sizeof(tncb), 0);
ncb.ncb_command := chr(ncbastat);
ncb.ncb_lana_num := lanaenum.lana[i];
ncb.ncb_callname := '* ';
ncb.ncb_buffer := pchar(@adapt);
ncb.ncb_length := sizeof(tastat);
m:=0;
if (win32platform = ver_platform_win32_nt) then
m:=1;
if m=1 then
begin
if netbios(@ncb) = chr(0) then
strmac := '';
for j := 0 to 5 do
begin
strpart := inttohex(integer(adapt.adapter.adapter_address[j]), 2);
strmac := strmac + strpart + '-';
end;
setlength(strmac, length(strmac)-1);
end;
if m=0 then
if netbios(@ncb) <> chr(0) then
begin
strmac := '';
for j := 0 to 5 do
begin
strpart := inttohex(integer(adapt.adapter.adapter_address[j]), 2);
strmac := strmac + strpart + '-';
end;
setlength(strmac, length(strmac)-1);
end;
end;
result:=strmac;
end;
function tmain.getip: string;
type
tapinaddr = array [0..10] of pinaddr;//定義記憶體位址類地資料物件
papinaddr = ^tapinaddr; //分配記憶體
varphe : phostent;//宣告物件
pptr : papinaddr; //宣告物件
buffer : array [0..63] of char; //定義陣列,為緩衝區
i : integer; //臨時整型變數
ginitdata : twsadata; //宣告物件
begin
wsastartup($101, ginitdata);
result := '';
gethostname(buffer, sizeof(buffer));
phe :=gethostbyname(buffer);
if phe = nil then exit;
pptr := papinaddr(phe^.h_addr_list);
i := 0;
while pptr^[i] <> nil do begin
if i=0
then result:=strpas(inet_ntoa(pptr^[i]^))
else result:=result+':'+strpas(inet_ntoa(pptr^[i]^));
inc(i);
end;
wsacleanup;
end;
handled := (isdialogmessage(webmain.handle, msg) = system.true);
if foleinplaceactiveobject <> nil then
begin
if ((msg.message = wm_keydown) or (msg.message = wm_keyup)) and
(msg.wparam in dialogkeys) then
// nothing - do not pass on the dialogkeys
else
foleinplaceactiveobject.translateaccelerator(msg);
end;
end;
end;
initialization
oleinitialize(nil);
finalization
oleuninitialize;
end.
加密狗的一些個人記錄
最近用到了加密狗,之前從來都沒有接觸過,謝謝 賣家,我想把一些東西自己寫一下。狗分為開發狗和子狗,開發狗買乙個就行,然後子狗的話,都可以通過這個開發狗來處理。我把幾個自己碰到的問題,簡單記錄一下,第乙個是超級狗開發商的匯入問題,估計官網不太穩定,一直不能很好匯入,重啟機器了也沒有用,最後找 賣家要了...
用加密狗控制軟體的授權 C
每只加密狗都有乙個固定的序列號,並且一般是無法修改的。軟體執行時讀取加密狗的序列號進行判斷,序列號通過驗證後才能正常使用軟體。需要用到以下方法 1 獲取狗驅動程式安裝資訊介面函式getdogdriverinfo,定義如下 int pascal getdogdriverinfo 引數 無 返回值 0 ...
帶加密狗u盤的軟體破解
對於 dart 團隊而言今天是 null safety 技術預覽的乙個重要里程碑,null safety 可以幫助開發者避免一些日常開發中很難被發現的錯誤,並且額外的好處是可以改善效能,現在 null safety 的早期技術預覽已經發布,期待大家的使用反饋。這篇文章將介紹加密狗u盤的軟體破解 da...