purebasic.info
http://purebasic.info/phpBB3ex/

Нужно 866To1251
http://purebasic.info/phpBB3ex/viewtopic.php?f=1&t=4869
Страница 1 из 1

Автор:  AZJIO [ Вт май 08, 2018 8:20 pm ]
Заголовок сообщения:  Нужно 866To1251

Вопрос в заголовке.

Автор:  Piter [ Вт май 08, 2018 8:39 pm ]
Заголовок сообщения:  Re: Нужно 866To1251

Ответ в ответе тут

Автор:  Bahamut [ Ср май 09, 2018 2:56 pm ]
Заголовок сообщения:  Re: Нужно 866To1251

AZJIO
есть в юникод:
Код:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
prog$ = "cmd.exe" 
dosbox = RunProgram(prog$, "", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide|#PB_Program_Ascii)
 
If dosbox  
  OpenWindow(0,0,0,400,500,"Results from DosBox",#PB_Window_ScreenCentered|#PB_Window_SystemMenu)
  StartDrawing(WindowOutput(0))
    DrawText(65,200, "Pinging now, Stand by for results...", #Black, GetSysColor_(#COLOR_BTNFACE))
  StopDrawing()
  NewList results.s()
  WriteProgramStringN(dosbox, "ping google.com", #PB_Ascii)
  WriteProgramData(dosbox, #PB_Program_Eof, 0)
  While ProgramRunning(dosbox)
    If AvailableProgramOutput(dosbox)
      AddElement(results())
     
      sOEM_in_unicode.s = ReadProgramString(dosbox, #PB_Ascii)
      iByteLength = Len(sOEM_in_unicode) + 2      
      sOem_in_Ascii.s = Space(iByteLength)
      PokeS(@sOem_in_Ascii, sOEM_in_unicode, -1, #PB_Ascii)
      sunicode.s = Space(iByteLength)
      OemToChar_(@sOem_in_Ascii, @sunicode)
      results() = sunicode
 
    Else
      Delay(1)
    EndIf
  Wend
  AddElement(results())
  AddElement(results())
  results() = "Program finished with exit code = " + Str(ProgramExitCode(dosbox))
  CloseProgram(dosbox)
 
  ListViewGadget(0,0,0,400,500)
  ForEach results()
    AddGadgetItem(0, -1, results())
  Next
  Repeat:Until WaitWindowEvent()=#WM_CLOSE
Else
  MessageRequester("OOPS!", "Can't find " + prog$ )
EndIf
 
 


Автор:  balex1978 [ Чт май 10, 2018 6:08 pm ]
Заголовок сообщения:  Re: Нужно 866To1251

у меня пурик 5.21LTS и команда в справке выглядит так:
Result = WriteProgramStringN(Program, String$).
Какая версия для этих команд:(и еще какое число в константе #PB_Program_Ascii, ато ругается на нее)
WriteProgramStringN(dosbox, "ping google.com", ) .

както вобще нехочет работать нпример это
prog$ = "cmd.exe"
dosbox = RunProgram(prog$, "", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide);|#PB_Program_Ascii)

так без проблем открывается RunProgram("cmd.exe").
После корекции чегото заработало но первая строка выглядит так: dosbox = RunProgram("cmd.exe", "", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Write|#PB_Program_Hide);|#PB_Program_Ascii) .
Потом совсем стало нормально работать, но вопрос с WriteProgramStringN(dosbox, "ping google.com", #PB_Ascii) остается.

Автор:  AZJIO [ Чт май 10, 2018 8:52 pm ]
Заголовок сообщения:  Re: Нужно 866To1251

мне ещё такое дали
Код:
1
2
3
4
5
6
Procedure.s OemA2Ansi(Str$)
  user32_dll=OpenLibrary(#PB_Any, "user32.dll")
  CallFunction(user32_dll,"OemToCharA",@Str$,@Str$)
  CloseLibrary(user32_dll)
  ProcedureReturn PeekS(@Str$,-1,#PB_Ascii)
EndProcedure


Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/