[ Delphi / Pascal ] — начинающим: задаем вопросы (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by banned, 6 May 2007.

Thread Status:
Not open for further replies.
  1. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    119
    Likes Received:
    17
    Reputations:
    0
    "Пробывал через winexec? Если нет то попробуй, должно сработать"

    Я не сильно шарю, в гугле придется искать неизвестно сколько, если не лень, можешь перевести на старый метод winexec?
     
  2. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    119
    Likes Received:
    17
    Reputations:
    0
    Если это это)

    begin
    WinExec('H:\La2offline Interlude v1.9\la2offline.vo.uz\123\startgameserver.bat', SW_SHOW);
    end;

    То не канает(((
     
  3. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    блииаааа...

    дело не в том как запускаешь, а в том что в батнике.
    по скрину видно что он пытается найти пути, а так как активная папка по всей видимости на откуда ты запускаешь скрипт, вот тебе и ошибка.

    Кидаю сюда содержимое батника.
    P.S. JRE стоит-то?
     
  4. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    119
    Likes Received:
    17
    Reputations:
    0
    Изначально этот батник другая прога включает без проблем... но я хочу дополнить!
    Та программа создана с помощью этого))) "AutoPlay Media Studio 7.0")))
    Так что содержимое батника роли не играет))) в принципе!
    Батник подает запросы в ява ядро
     
  5. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    Как всегда люди не обращают внимание на пути файла с пробелами ((( и по этому не юзают ковычки.

    winexec('"d:\папка с пробелом\file.bat"', SW_SHOW);
    Опостроф + ковычка + путь + ковычка + опостроф
     
  6. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    119
    Likes Received:
    17
    Reputations:
    0
    begin
    winexec('"H:\La2offline Interlude v1.9\la2offline.vo.uz\123\startGameServer.bat"', SW_SHOW);
    end;

    Также ошибка!!! ((( что я показывал выше со скрином
     
  7. W!z@rD

    W!z@rD Борец за русский язык

    Joined:
    12 Feb 2006
    Messages:
    973
    Likes Received:
    290
    Reputations:
    43
    мдооо...

    start /b /abovenormal ../jre/bin/java -Xmx512m -cp bsf.jar;bsh-2.0b4.jar;commons-logging-1.1.jar;mmocore.jar;javolution.jar;c3p0-0.9.1.2.jar;mysql-connector-java-5.0.7-bin.jar;l2jserver.jar;jython.jar net.sf.l2j.gameserver.GameServer

    как ты думаешь, где он ищет ../jre/bin/java?
    перед этим cd "директория"
    тем самым установив активную директорию.
     
  8. Logan22

    Logan22 Member

    Joined:
    11 Sep 2009
    Messages:
    119
    Likes Received:
    17
    Reputations:
    0
    ну а что можешь посоветовать?!
     
  9. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Народ, а вот я опять по поводу парсинга =))

    Вот строчка допустим как из неё удалить все тэги.. и вывести в label

    Функция POS отдыхает...
    А вот что дальше ? )))

    Заранее благодарен!
     
  10. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    хм. тупанул. нужно было сразу на скрин глянуть. В проге всё нормально это глюк в батнике
    В начале батника попробуй прописать команду
    CD "H:\La2offline Interlude v1.9\la2offline.vo.uz\123\"
     
  11. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    2 iGlass самый быстры способ, но небудет пахать на кривой реализации или на очень сложной системе где есть хитрые JS но и то можно сделать проверку на это а так алгоритм такой примерно:
    Code:
    var
      x,y:integer;
      s1,s2:string;
      tagflag:boolean;
    begin
      s1 :=  '<b>big</b> <a href="http://site.com/">link</a>';
      s2 := '';
      y := length(s1);
      tagflag := false;
    
      for x:=1 to y do
      begin
        if s1[x] = '<' then
        begin
          tagflag := true
        end
        else if s1[x] = '>' then
        begin
          tagflag := false
        end
        else if tagflag = false then s2:=s2+s1[x];
      end;
    
      showmessage(s2);
    
    end;
    
    
    в этоге в s2 бадет код без тегов. приметивный очень алгоритм.
     
    #4171 slesh, 16 Sep 2009
    Last edited: 16 Sep 2009
    1 person likes this.
  12. iGlass

    iGlass New Member

    Joined:
    14 May 2009
    Messages:
    86
    Likes Received:
    1
    Reputations:
    0
    Что то он целиком всю строчку грузит не убирая тэгов (
    Спс за помощь.
     
  13. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    как можно подавить реакцию компа на ВСЕ!!! клавиши клавиатуры? так как BlockInput непомогает отрубается после вызова деспетчера задач, да и еще не блочит мультимедийные клавиши что ни есть гуд.
     
  14. Dosia

    Dosia Member

    Joined:
    5 Jun 2009
    Messages:
    118
    Likes Received:
    81
    Reputations:
    6
    // отрубаем мышь и клаву

    procedure LockPC;
    var
    OldValue: LongBool;
    begin
    SystemParametersInfo(97, Word(Bool), @OldValue, 0);
    WinExec(PChar('rundll32 mouse,disable'), SW_SHOW);
    WinExec(PChar('rundll32 keyboard,disable'), SW_SHOW);
    end;

    // блокируем пк

    procedure TForm1.Button1Click(Sender: TObject);
    begin
    LockWorkStation;
    end;

    { Loading LockWorkStation dynamically}

    function LockWS: Boolean;
    // by Thomas Stutz, SDC
    type
    TLockWorkStation = function: Boolean;
    var
    hUser32: HMODULE;
    LockWorkStation: TLockWorkStation;
    begin
    // Here we import the function from USER32.DLL
    hUser32 := GetModuleHandle('USER32.DLL');
    if hUser32 <> 0 then
    begin
    @LockWorkStation := GetProcAddress(hUser32, 'LockWorkStation');
    if @LockWorkStation <> nil then
    begin
    LockWorkStation;
    Result := True;
    end;
    end;
    end;

    взято отсюда
     
    #4174 Dosia, 16 Sep 2009
    Last edited: 16 Sep 2009
  15. yfet

    yfet Banned

    Joined:
    11 Jul 2009
    Messages:
    48
    Likes Received:
    19
    Reputations:
    5
    вопрос такой. есть список акков вк. как правильно пройти аторизацию на сайте и узнать валид акк или нет? пользую idHTTP.
    пишу так
    [.code]
    var
    sl : TStringList;
    begin
    sl:=TStringList.Create;
    sl.Add('email='+email);
    sl.Add('pass='+pass);
    IdHTTP1.Post('http://login.vk.com/?act=login',sl);
    sl.Free;
    end;
    [/.code]
    но че то хреново оно заходит, не вижу этот id в онлайне((
    Помогите плз
     
  16. wolmer

    wolmer Member

    Joined:
    12 May 2009
    Messages:
    438
    Likes Received:
    97
    Reputations:
    9
    HTML:
    PHP:
    <form method="post" name="login" id="login" action="http://login.vk.com/" onsubmit="if (vklogin) { return true} else { quick_login();return false;}">
     <
    input type="hidden" name="act" id="act" value="login">
     <
    input type="hidden" name="success_url" id="success_url" value="">
     <
    input type="hidden" name="fail_url" id="fail_url" value="">
     <
    input type="hidden" name="try_to_login" id="try_to_login" value="1">
     <
    input type="hidden" name="to" id="to" value=""/>
     <
    input type="hidden" name="vk" id="vk" value="">

      <
    table align="center" cellpadding=0 cellspacing=7 border=0 width="40%">
       <
    tr>
        <
    td width="100px">
         <
    span class="grey">Email:</span>
        </
    td>
        <
    td>
         <
    input class="inputText" type="text" name="email" value="" id="email" size="25" />
        <
    td>
       </
    tr>
       <
    tr>
        <
    td>
         <
    span class="grey">Пароль:</span>
        </
    td>
        <
    td>
         <
    input class="inputText" type="password" name="pass" value="" id="pass" size="25" />
        </
    td>
       </
    tr>
       <
    tr>
        <
    td>
         &
    nbsp;
        </
    td>
        <
    td>
         <
    input style="margin-top:1px; vertical-align: middle;" type="checkbox" name="expire" id="expire" value="1" /><small>Чужой компьютер</small>
        </
    td>
       </
    tr>
       <
    tr>
        <
    td>
         &
    nbsp;
        </
    td>
        <
    td>
    <
    div style="height:20px; margin:5px 0px">
    <
    ul class='nNav'><li style="margin-left:0px">
    <
    class="nc"><class="nc1"><b></b></b><class="nc2"><b></b></b></b>
    <
    span class="ncc"><a href="javascript: quick_login()">Вход</a></span>
    <
    class="nc"><class="nc2"><b></b></b><class="nc1"><b></b></b></b>
    </
    li>
    <
    li>
    <
    class="nc"><class="nc1"><b></b></b><class="nc2"><b></b></b></b>
    <
    span class="ncc"><a href="/reg0">Регистрация</a></span>
    <
    class="nc"><class="nc2"><b></b></b><class="nc1"><b></b></b></b>
    </
    li></ul>
    </
    div>

        </
    td>
       </
    tr>
       <
    tr>
        <
    td>
         &
    nbsp;
        </
    td>
        <
    td class="forgotPass">
         <
    a href="login.php?op=forgot">Забыли пароль?</a>
        </
    td>
       </
    tr>

      </
    table>
      <
    input type="submit" value='.' style="color:#fff;border:0;padding:0;margin:0;background:#fff;height:6px;width:6px"/>
    </
    form>
    Видишь инпаты? (input) Вот их и пихай (name и value ихнии) в пост запрос а не токо email и password (так просто не пройдет!)

    Не разобрал что я сказал? Ок, бери сниффер http пакетов, снифай что отправляется на сервер при логине/входе

    Точно не могу проверить но вот примерно что должно быть в коде

    Code:
    ...
    sl.Add('act=login');
    sl.Add('success_url=');
    sl.Add('fail_url=');
    sl.Add('try_to_login=1');
    sl.Add('to=');
    sl.Add('vk=');
    sl.Add('expire=1');
    sl.Add('email='+email);
    sl.Add('pass='+pass);
    ...
    Кстати на сайте может включатся каптча если что...
     
    #4176 wolmer, 17 Sep 2009
    Last edited: 17 Sep 2009
  17. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    394
    Likes Received:
    213
    Reputations:
    4
    тупой вопрос, особенно для меня, но не могу найти исходник, в котором эту проблему пару лет назад решил и не помню как.
    Вообщем надо строку преобразовать в юникод. Желательно не ипаццо с типами переменных, а так чтобы это в string хранилось, просто вместо кириллических символов стояло 2 с соответствующими кодами.

    Есть у кого функция готовая?
     
  18. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    юзай StringToWideChar - чтобы все символы были в расширенном виде.
    Или если тебе нужне не юников, а UTF8 что скорее всего. То AnsiToUtf8
     
  19. transserg

    transserg Elder - Старейшина

    Joined:
    2 Jul 2008
    Messages:
    147
    Likes Received:
    25
    Reputations:
    2
    2 Dosia нужно просто заблокировать клаву а не выходить из сеанса пользователя
    вот это не работает=)
    Code:
    procedure LockPC;
    var
    OldValue: LongBool;
    begin
    SystemParametersInfo(97, Word(Bool), @OldValue, 0);
    WinExec(PChar('rundll32 mouse,disable'), SW_SHOW);
    WinExec(PChar('rundll32 keyboard,disable'), SW_SHOW);
    end;
    
     
  20. slesh

    slesh Elder - Старейшина

    Joined:
    5 Mar 2007
    Messages:
    2,702
    Likes Received:
    1,224
    Reputations:
    455
    эти команды тока под Win 9x
    Под другие винды юзай апишку BlockInput на XP точно пашет.

    Code:
    procedure BlockInput(ABlockInput: boolean); stdcall; external 'USER32.DLL';
    
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        BlockInput(True); - заблокировать клаву и мыш
        sleep(5000);
        BlockInput(false); - разблокировать
    end;
    
     
    #4180 slesh, 17 Sep 2009
    Last edited: 17 Sep 2009
    1 person likes this.
Thread Status:
Not open for further replies.