Expertos en programación que estén familiarizados con el cifrado de formatos de archivos, vengan y dennos un consejo sincero.
Pero actualmente existe un problema, y se ruega a los expertos que lo señalen: el código del método de llamada en el programa principal de VB es el siguiente:
Cuando se utiliza ShellAndWait appfile amp; Declaración "sc.exe" para llamar, sc. La interfaz del programa exe saltará y deberá esperar a que finalice la operación antes de continuar. El problema ahora es que a veces, cuando llamo a sc.exe con frecuencia en mi programa principal, esta interfaz aparece constantemente y la computadora no puede realizar ningún otro trabajo durante la operación. ¿Cómo puedo utilizar un programa llamado sc.exe para ejecutarlo en segundo plano sin afectar otras operaciones en mi computadora? Muchas gracias.
Escriba STARTUPINFO
cb siempre
lpReserved como cadena
lpDesktop como cadena
lpTitle como cadena
dwX Mientras
dwX Mientras
dwY Mientras
dwXSize es largo
dwYSize es largo
dwXCountChars es largo
dwYCountChars es largo
dwFillAttribute es largo
dwFlags es largo
wShowWindow como entero
cbReserved2 como entero
lpReserved2 mientras sea largo
hStdInput mientras sea largo
hStdOutput mientras sea largo
hStdError mientras sea largo
Tipo de fin
Tipo PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessID As Long
dwThreadID siempre
Tipo de fin
Const global NORMAL_PRIORITY_CLASS = amp; p>Declarar la función CloseHandle Lib "kernel32 " (hObject As Long) como booleana
Declarar la función WaitForSingleObject Lib "kernel32 " (hObject As Long) como booleana
Declarar la función WaitForSingleObject Lib "kernel32 " (ByVal hHandle Mientras, ByVal dwMillisegundos Mientras) Mientras
Declarar función CreateProcessA Lib "kernel32 " (ByVal lpApplicationName Mientras, ByVal lpCommandLine Como cadena, ByVal lpProcessAttributes Mientras, ByVal lpThreadAttributes Mientras, ByVal bInheritHandles Mientras sea largo, ByVal dwCreationFlags Mientras sea largo, ByVal lpEnvironment Mientras sea largo, ByVal lpCurrentDirectory Mientras sea largo, lpStartupInfo Como STARTUPINFO, lpProcessInformation Como PROCESS_INFORMATION) Como L
ong
Declarar función CallWindowProc Lib "USER32 " Alias "CallWindowProcA " (ByVal lpPrevWndFunc mientras, ByVal hWnd mientras, ByVal Msg mientras, ByVal wParam mientras, ByVal lParam mientras) Mientras
Declarar función SetWindowLong Lib "USER32 " Alias "SetWindowLongA " (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Declarar función Shell_ NotifyIcon Lib " shell32.dll " Alias "Shell_NotifyIconA " (ByVal dwMessage siempre, lpData como NOTIFYICONDATA) mientras
Declarar función SetForegroundWindow Lib "USER32 " (ByVal hWnd mientras)
Declarar función SendMessage Lib " USER32 " Alias "SendMessageA " (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Tipo público NOTIFYICONDATA
cbSize Mientras
p>
hWnd Mientras
uID Mientras
uFlags Mientras
uCallbackMessage Como Long
hIcon As Long
p>
szTip As String * 64
Tipo de fin
Dim OldWindowProc As Long, TheData Como NOTIFYICONDATA
Sub ShellAndWait(cmdline$)
p>
Atenuar NameOfProc como PROCESS_INFORMATION
Atenuar NameStart como STARTUPINFO
Dim X As Long
NameStart.cb = Len(NameStart)
X = CreateProcessA(0, cmdline$, 0, 0, 1, NORM) 1, NORMAL_PRIORITY_CLASS, 0, 0 NameStart, NameOfProc)
(NameOfProc.hProcess, INFINITE
). hProcess, INFINITE)
X = CloseHandle(NameOfProc.hProcess)
End Sub