Verfasst: 20.05.2009 18:14
Und wo sind die Tüdelchen?
X360 Andy hat geschrieben:
Code: Alles auswählen
File$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "", "Alle Dateien (*.*)|*.*", 0)
Rar_Pfad$ = Left(File$,Len(File$)-Len(GetExtensionPart(File$))) + "rar"
RunProgram("c:\Programme\WinRAR\rar.exe", "a " + #DQUOTE$ + Rar_Pfad$ + #DQUOTE$ +" " + #DQUOTE$ + GetFilePart(File$) + #DQUOTE$, GetPathPart(File$),#PB_Program_Hide|#PB_Program_Wait)
Code: Alles auswählen
EnableExplicit
Define ping.l = RunProgram("ping", "google.com", "", #PB_Program_Open|#PB_Program_Read)
Define Output.s = ""
If ping
While ProgramRunning(ping)
Output + ReadProgramString(ping) + Chr(13)
Wend
CloseProgram(ping)
Output + Chr(13) + Chr(13)
EndIf
MessageRequester("ping", Output)
Code: Alles auswählen
EnableExplicit
Define ping.l = RunProgram("ping", "google.com", "", #PB_Program_Open|#PB_Program_Read)
Define Output.s = ""
If ping
While ProgramRunning(ping)
Output + ReadProgramString(ping) + Chr(13)
Wend
CloseProgram(ping)
Output + Chr(13) + Chr(13)
EndIf
Define Pos
Define.s FindString = "Mittelwert = "
Pos = FindString(Output, FindString, 1)
Debug Mid(Output, Pos + Len(FindString), 3)
Code: Alles auswählen
EnableExplicit
Procedure Lalelu(Dummy)
Protected ping.l = RunProgram("ping", "google.com", "", #PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
Protected Output.s = ""
If ping
While ProgramRunning(ping)
If IsGadget(0)
Output.s = ReadProgramString(ping)
Debug Output.s
AddGadgetItem(0,-1,Output.s)
EndIf
Wend
CloseProgram(ping)
EndIf
EndProcedure
OpenWindow(0,0,0,300,240,"Plong....")
ListViewGadget(0,0,0,300,240)
CreateThread(@LaLeLu(),0)
Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
Procedure Lalelu(Dummy)
File$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "", "Alle Dateien (*.*)|*.*", 0)
Rar_Pfad$ = Left(File$,Len(File$)-Len(GetExtensionPart(File$))) + "rar"
ping.l = RunProgram("c:\Programme\WinRAR\rar.exe", "a " + #DQUOTE$ + Rar_Pfad$ + #DQUOTE$ +" " + #DQUOTE$ + GetFilePart(File$) + #DQUOTE$, GetPathPart(File$),#PB_Program_Open|#PB_Program_Read|#PB_Program_Hide)
If ping
While ProgramRunning(ping)
If IsGadget(0)
Output.s = ReadProgramString(ping)
Debug Output.s
AddGadgetItem(0,-1,Output.s)
EndIf
Wend
CloseProgram(ping)
EndIf
EndProcedure
OpenWindow(0,0,0,300,240,"Plong....")
ListViewGadget(0,0,0,300,240)
CreateThread(@LaLeLu(),0)
Repeat: Until WaitWindowEvent() = #PB_Event_CloseWindow
Code: Alles auswählen
; English forum: http://purebasic.myforums.net/viewtopic.php?t=6544&highlight=
; Author: Rings
; Date: 13. June 2003
; Redirect the output from a compiler ....
; Redirect Outputs into Memory
; coded by Siegfried Rings march 2002
; redirected the PIPES
;
;see http://support.microsoft.com/default.aspx?scid=kb;EN-US;q173085
;
File$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", "", "Alle Dateien (*.*)|*.*", 0)
Rar_Pfad$ = Left(File$,Len(File$)-Len(GetExtensionPart(File$))) + "rar"
mCommand.s="c:\Programme\WinRAR\rar.exe a " + #DQUOTE$ + Rar_Pfad$ + #DQUOTE$ +" " + #DQUOTE$ + File$ + #DQUOTE$
Debug mCommand.s
;Structure used by the CreateProcessA function
;another then that Fred implemented !
Structure MySTARTUPINFO
cb.l
lpReserved.l
lpDesktop.l
lpTitle.l
dwX.l
dwY.l
dwXSize.l
dwYSize.l
dwXCountChars.l
dwYCountChars.l
dwFillAttribute.l
dwFlags.l
wShowWindow.w
cbReserved2.w
lpReserved2.l
hStdInput.l
hStdOutput.l
hStdError.l
EndStructure
proc.PROCESS_INFORMATION ;Process info filled by CreateProcessA
ret.l ;long variable For get the Return value of the
start.MySTARTUPINFO ;StartUp Info passed To the CreateProceeeA
sa.SECURITY_ATTRIBUTES ;Security Attributes passeed To the
hReadPipe.l ;Read Pipe handle created by CreatePipe
hWritePipe.l ;Write Pite handle created by CreatePipe
lngBytesread.l ;Amount of byte Read from the Read Pipe handle
strBuff.s=Space(256) ;String buffer reading the Pipe
;Consts For functions
#NORMAL_PRIORITY_CLASS = $20
#STARTF_USESTDHANDLES = $100
#STARTF_USESHOWWINDOW = $1
;Create the Pipe
sa\nLength =SizeOf(SECURITY_ATTRIBUTES) ;Len(sa)
sa\bInheritHandle = 1
sa\lpSecurityDescriptor = 0
ret = CreatePipe_(@hReadPipe, @hWritePipe, @sa, 0)
If ret = 0
;If an error occur during the Pipe creation exit
MessageRequester("info", "CreatePipe failed. Error: ",0)
End
EndIf
start\cb = SizeOf(MySTARTUPINFO)
start\dwFlags = #STARTF_USESHOWWINDOW | #STARTF_USESTDHANDLES
;set the StdOutput And the StdError output To the same Write Pipe handle
start\hStdOutput = hWritePipe
start\hStdError = hWritePipe
;Execute the command
ret = CreateProcess_(0, mCommand, sa, sa, 1, #NORMAL_PRIORITY_CLASS, 0, 0, @start, @proc)
If ret <> 1
MessageRequester("Info","File Or command not found", 0)
End
Else
;MessageRequester("Info","PRG started..:",0)
EndIf
;Now We can ... must close the hWritePipe
ret = CloseHandle_(hWritePipe)
mOutputs.s = ""
;Read the ReadPipe handle
While ret<>0
ret = ReadFile_(hReadPipe, strBuff, 255, @lngBytesread, 0)
If lngBytesread>0
Debug Left(strBuff, lngBytesread)
EndIf
Wend
;Close the opened handles
ret = CloseHandle_(proc\hProcess)
ret = CloseHandle_(proc\hThread)
ret = CloseHandle_(hReadPipe)
;ret=CloseHandle_(hWritePipe)