| |
|
|
| KompilierenMarkierenSeparierenSource wurde am 15.07.2007 aus der MMJ-Quellcodesammlung (Dietmar Horn) in die Babyklappe auf XProfan.Com abgelegt:
Run-Befehl per API und mit SendString an NotePad
DECLARE __cf1&,__cf2&,__cf3&,__cf4&
STRUCT STARTUPINFO=CB&,LPRESERVED#(4),LPDESKTOP#(4),LPTITLE#(4),DWX&,DWY&,DWXSIZE&,DWYSIZE&,DWXCOUNTCHARS&,DWYCOUNTCHARS&,DWFILLATTRIBUTE&,DWFLAGS&,WSHOWWINDOW%,CBRESERVED2%,LPRESERVED2&,HSTDINPUT&,HSTDOUTPUT&,HSTDERROR&
STRUCT PROCESS_INFORMATION=HPROCESS&,HTHREAD&,DWPROCESSID&,DWTHREADID&
Def __cf1(2) !KERNEL32,GetProcAddress
Def __cf2(1) !KERNEL32,GetModuleHandleA
__cf1&=__cf1(__cf2(kernel32.dll),GetTickCount)
__cf2&=__cf1(__cf2(kernel32.dll),CreateProcessA)
__cf3&=__cf1(__cf2(user32.dll),GetWindowThreadProcessId)
__cf4&=__cf1(__cf2(user32.dll),GetWindow)
proc RUNEX
PARAMETERS CMDLINE$
DECLARE SI#, PI#, PID&, WIN&
DIM SI#, STARTUPINFO
DIM PI#, PROCESS_INFORMATION
VAR TIMEOUT&=call(__cf1&)+5000
VAR WINHANDLE&=-1
IF call(__cf2&,0,ADDR(CMDLINE$),0,0,0,0,0,0,SI#,PI#)
REPEAT
WIN&=FINDWINDOW()
WHILE ((WIN&) AND (WINHANDLE&=-1))
call(__cf3&,WIN&,ADDR(PID&))
IF PID&=PI#.DWPROCESSID&
WINHANDLE&=WIN&
ENDIF
IF call(__cf1&) > TIMEOUT&
WINHANDLE&=0
ENDIF
WIN&=call(__cf4&,WIN&, 2)
ENDWHILE
UNTIL WINHANDLE&>-1
ENDIF
DISPOSE SI#
DISPOSE PI#
RETURN WINHANDLE&
endproc
VAR NOTEPAD&=RUNEX(NOTEPAD.EXE)
IF NOTEPAD&
SENDSTRING(NOTEPAD&, XProfan ist einfach Spitze!)
SENDSTRING(NOTEPAD&, Aber das Wissen ja alle)
SENDSTRING(NOTEPAD&, Gruß, Thomas)
ENDIF
|
|
|
| |
|
|
|
p.specht
| Revitalisiert 2019-01:
'Run-Befehl per API und Strings mit SendString an NotePad
CLS'<<< CLS Kann bei erwiesenem Funktionieren weggelassen werden.
DECLARE __cf1&,__cf2&,__cf3&,__cf4&
STRUCT STARTUPINFO=CB&,LPRESERVED#(4),LPDESKTOP#(4),LPTITLE#(4),\
DWX&,DWY&,DWXSIZE&,DWYSIZE&,DWXCOUNTCHARS&,DWYCOUNTCHARS&,\
DWFILLATTRIBUTE&,DWFLAGS&,WSHOWWINDOW%,\
CBRESERVED2%,LPRESERVED2&,HSTDINPUT&,HSTDOUTPUT&,HSTDERROR&
STRUCT PROCESS_INFORMATION=HPROCESS&,HTHREAD&,DWPROCESSID&,DWTHREADID&
Def __cf1(2) !"KERNEL32","GetProcAddress"
Def __cf2(1) !"KERNEL32","GetModuleHandleA"
__cf1&=__cf1(__cf2("kernel32.dll"),"GetTickCount")
__cf2&=__cf1(__cf2("kernel32.dll"),"CreateProcessA")
__cf3&=__cf1(__cf2("user32.dll"),"GetWindowThreadProcessId")
__cf4&=__cf1(__cf2("user32.dll"),"GetWindow")
proc RUNEX
PARAMETERS CMDLINE$
DECLARE SI#, PI#, PID&, WIN&
DIM SI#, STARTUPINFO
DIM PI#, PROCESS_INFORMATION
VAR TIMEOUT&=call(__cf1&)+5000
VAR WINHANDLE&=-1
IF call(__cf2&,0,ADDR(CMDLINE$),0,0,0,0,0,0,SI#,PI#)
REPEAT
WIN&=FINDWINDOW("Unbenannt - Editor")'<< Leeres Notepad in Win7, ev. anpassen!
WHILE ((WIN&) AND (WINHANDLE&=-1))
call(__cf3&,WIN&,ADDR(PID&))
IF PID&=PI#.DWPROCESSID&
WINHANDLE&=WIN&
ENDIF
IF call(__cf1&) > TIMEOUT&
WINHANDLE&=0
ENDIF
WIN&=call(__cf4&,WIN&, 2)
ENDWHILE
UNTIL WINHANDLE&>-1
ENDIF
DISPOSE SI#
DISPOSE PI#
RETURN WINHANDLE&
endproc
VAR NOTEPAD&=RUNEX("NOTEPAD.EXE")
IF NOTEPAD&
SENDSTRING(NOTEPAD&, ".LOG")
SENDSTRING(NOTEPAD&, "\r XProfan ist einfach Spitze!")
SENDSTRING(NOTEPAD&, "\r Aber das Wissen ja ohnehin alle!")
SENDSTRING(NOTEPAD&, "\n Gruß, Thomas - 2007, P.Specht - 2019)")
ENDIF
END
|
|
|
| XProfan 11Computer: Gerät, daß es in Mikrosekunden erlaubt, 50.000 Fehler zu machen, zB 'daß' statt 'das'... | 03.01.2019 ▲ |
|
|
|
|
Manfred Barei | Funktioniert so auch unter Win10 |
|
|
| XProfan X2Zu wenig Wissen ist gefärlich, zu viel auch.(XProfan X4) | Win 10 Pro 64 | Win7 Ultimate 32/64 | AMD FX-8320, 16GB, GeForce GT 630 | | 03.01.2019 ▲ |
|
|
|