Ali hocam oradan yararlanıyorum zaten ama pek yeterli geldiği söylenemez :(
Bu arada kodların son hali sanki biraz daha hoş oldu ha ne dersiniz?
import core.runtime;
import std.stdio;
import core.memory;
import core.sys.windows.windows;
/* Runtime Dll Library */
class RDL{
void call(){
HMODULE h;
FARPROC fp;
h = cast(HMODULE) Runtime.loadLibrary("user32.DLL");
if (h is null){
printf("error loading user32.dll\n");
return;
}
fp = GetProcAddress(h, "MessageBoxA");
if (fp is null){
printf("error loading symbol MessageBoxA()\n");
return;
}
MessageBoxA = cast(typeof(MessageBoxA)) fp;
MessageBoxA(null, cast(char *) "a", "Error", MB_OK | MB_ICONEXCLAMATION);
if (!Runtime.unloadLibrary(h))
{ printf("error freeing user32.dll\n");
return;
}
}
HMODULE h;
string name;
this(string name = "user32.DLL"){
this.name = name;
h = cast(HMODULE) Runtime.loadLibrary(name);
if (h is null){
writeln("error loading "~name~"\n");
return;
}
}
void load(T)(string name, ref T z){
FARPROC fp = GetProcAddress(h, cast(char*) name);
if (fp is null){
writeln("error loading symbol "~name~ "()\n");
return;
}
z = cast(typeof(z)) fp;
}
~this(){
if (!Runtime.unloadLibrary(h))
{
writeln("error freeing "~name~"\n");
return;
}
}
}
struct tagRECT{
int Left;
int Top;
int Right;
int Bottom;
}
extern (Windows){
short function (INT z) GetAsyncKeyState;
int function(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType) MessageBoxA;
bool function(tagRECT* z) ClipCursor;
}
int main(){
auto rdl = new RDL("user32.dll");
rdl.load("ClipCursor", ClipCursor);
rdl.load("MessageBoxA", MessageBoxA);
rdl.load("GetAsyncKeyState", GetAsyncKeyState);
writeln("Mesaj kutusu");
writeln("Mesaj kutusunu kapatırken istersen sol shift tuşuna basılı tut ne dersin?");
MessageBoxA(null, "talha", "talha", 0);
writeln("Mesaj kutusu");
if (GetAsyncKeyState(0x10)){
writeln("Beni kırmadığın için teşekkürler :)");
writeln("Ve şimdi sıradaki test :)");
}
writeln("Fare imleci hareketi kısıtlanıyor");
ClipCursor(new tagRECT(500, 500, 560, 560));
while(1){
}
return 0;
}
Zekeriya
--
[ Bu gönderi, http://ddili.org/forum'dan dönüştürülmüştür. ]