请问怎样使单个的dephi的exe文件拷贝到其他没有安装dephi的电脑也能正常的运行,而不需要安装程序。另外请问怎样使win2k的ctrl+Alt+Del和键盘上的windows开始按键无效,很急、

解决方案 »

  1.   

    1. 打包程序做成安装文件应该可以(不过一直没有找到好的作安装程序的软件,传说Delphi自带的不错可是光盘上的无法安装,你们怎么做的 ?)
    2. win 2000 下锁定 Ctrl + Alt + Del ... , Study 3.
    {锁定win键}
    function LowLevelKeyboardProc(nCode:integer;WParam:WPARAM;LParam:LPARAM):LRESULT;stdcall;
    type
    KBDLLHOOKSTRUCT=record
        vkCode:DWORD;
        scanCode:DWORD;
        flags:DWORD;
        time:DWord;
        dwExtraInfo:dword;
    end;
    var
       fFlag:BOOL;
       p:^KBDLLHOOKSTRUCT;
    begin
       result:=0;
       fFlag := false;
       p:=Pointer(LPARAM);
       if (ncode=HC_ACTION) then
       begin
       case wparam of
        WM_KEYDOWN,
        WM_SYSKEYDOWN,
        WM_KEYUP,
        WM_SYSKEYUP:
        fFlag :=(p.vkCode = VK_Lwin) or (p.vkCode = VK_Rwin)or (p.vkCode = VK_apps);
        end;
        end;
        if fFlag = true then
           Result:=1;
        if ncode <> 0 then
           Result := CallNextHookEX(0,ncode,wparam,lparam);
    end;// 调用
    const
        WH_KEYBOARD_LL=13;    setwindowshookexw(WH_KEYBOARD_LL,LowlevelKeyboardproc,hinstance,0);
      

  2.   

    1.如果没有使用数据库和第三方控件的,你的程序可以直接在对方的机器上运行,不用打包
    2。WINK/XP下很困难,我也不会,98下可以这样:
    当你不需要让用户按Alt+Enter、Ctrl+Alt+Del、Ctrl+Esc等功能键的时候加入以下代码:
    Var
    temp:integer;
    begin
    SystemParametersInfo(Spi_screensaverrunning,1,@temp,0);
    end;
      当你要恢复功能键时用以下代码:
    Var
    Temp:integer;
    begin
    SystemParametersInfo(spi_screensaverrunning,0,@temp,0);
    end;