求socket5代理服务器服务器端delphi源码(200分)

  • 主题发起人 主题发起人 yzlufei
  • 开始时间 开始时间
Y

yzlufei

Unregistered / Unconfirmed
GUEST, unregistred user!
求socket5代理服务器服务器端delphi源码。谢谢了。
 
http://kuga.51.net/download/files/s5server.rar
 
楼上的谢谢你,我没有说清楚,我水平不高,希望能得到delphi的源码,到时候散分的给你一部分,sorry。
 
看看盒子上有没有
 
socket5是什么代理呀,socks5?
 
就是socks5。
 
SendMessage(h,WM_SYSCOMMAND,SC_MINIMIZE,0);
 
楼上的,我不是要自己写条消息让他最小化,而是让,外部程序激活到前面的同时,最小化按钮恢复有效。
 
顺便说一下,showwindow()也不行。
 
真的很失望,200分,我感觉一个不是太复杂的问题,论坛竟然没有人会?[?]
 
我想原因可能是你的 h 不是Application.Handle,而是程序的当前窗口吧。
 
那应该怎么作呢?
我是按照findwindow(nil,窗口标题)
的到的hwnd.
怎么得到Application.Handle?那是别的程序啊。
 
哎!

showwindow(h,sw_RESTORE);
SetForegroundWindow(H);
 
你的那个窗体是什么类型的窗体? 是不是Showmodal了出来的?
用SetWindowLong试试。
 
showwindow(h,sw_RESTORE);
SetForegroundWindow(H);
早就试验了,无效.那个窗体是别的程序不是我写的,用shellexceue执行的
 
早就试验了,无效.那个窗体是别的程序不是我写的,用shellexceue执行的


你可以用CREATEPROCESS来取代SHELLEXCEUE,这样你在程序中就可以控制该进程了
 
你可以用CREATEPROCESS来取代SHELLEXCEUE,这样你在程序中就可以控制该进程了

--------关键是这个外部程序不一定是我创建的。也就是在我的程序运行前它就存在了。
 
--------关键是这个外部程序不一定是我创建的。也就是在我的程序运行前它就存在了。

这个程序爱谁创的就谁创的
比如:记事本是微软创建的,但是我用我的程序一样可以控制它(CREATEPROCESS)
 
没道理,SetForegroundWindow应该可以的,除非楼主的Handle不对。我想哪个程序没必要去屏蔽该消息吧!
 
SetForcegroundWindows 只有前台线程的调用才可用, 看msdn帮助.
这个函数我一定行,
function ForceForegroundWindow(hwnd: THandle): boolean;
const
SPI_GETFOREGROUNDLOCKTIMEOUT = $2000;
SPI_SETFOREGROUNDLOCKTIMEOUT = $2001;
var
ForegroundThreadID: DWORD;
ThisThreadID: DWORD;
timeout: DWORD;
begin
if IsIconic(hwnd) then //如果窗口最小化
ShowWindow(hwnd, SW_RESTORE);

if GetForegroundWindow = hwnd then
Result := true
else
begin
if ((Win32Platform = VER_PLATFORM_WIN32_NT) and (Win32MajorVersion > 4))
or ((Win32Platform = VER_PLATFORM_WIN32_WINDOWS) and
((Win32MajorVersion > 4) or ((Win32MajorVersion = 4) and
(Win32MinorVersion > 0)))) then
begin
Result := false;
ForegroundThreadID := GetWindowThreadProcessID(GetForegroundWindow, nil);
ThisThreadID := GetWindowThreadPRocessId(hwnd, nil);
if AttachThreadInput(ThisThreadID, ForegroundThreadID, true) then
begin
BringWindowToTop(hwnd);
SetForegroundWindow(hwnd);
AttachThreadInput(ThisThreadID, ForegroundThreadID, false);
Result := (GetForegroundWindow = hwnd);
end;
if not Result then
begin
SystemParametersInfo(SPI_GETFOREGROUNDLOCKTIMEOUT, 0, @timeout, 0);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(0), SPIF_SENDCHANGE);
BringWindowToTop(hwnd);
SetForegroundWindow(hWnd);
SystemParametersInfo(SPI_SETFOREGROUNDLOCKTIMEOUT, 0, TObject(timeout), SPIF_SENDCHANGE);
end;
end
else
begin
BringWindowToTop(hwnd);
SetForegroundWindow(hwnd);
end;
Result := (GetForegroundWindow = hwnd);
end;
end;
 
后退
顶部