Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: FindExecutable, ShellExecute Добавлено: 23.11.02 23:47  

Автор вопроса:  CyRax  | Web-сайт: basicproduction.nm.ru | ICQ: 204447456 

FindExecutable
Пожалуйста, набросайте примерчик использования этой АПИ.

ShellExecute
Где можно достать расшифровку кодов ошибок для Win32.

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 Zeus



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #1
Добавлено: 24.11.02 19:46

Вот те примерчик, правда на инглише :)

Const MAX_FILENAME_LEN = 260
Private Declare Function FindExecutable Lib "shell32.dll" Alias "FindExecutableA" (ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult As String) As Long
Private Sub Form_Load()
Dim i As Integer, s2 As String
   Const sFile = "C:\Windows\Readme.txt"

   'Check if the file exists
   If Dir(sFile) = "" Or sFile = "" Then
        MsgBox "File not found!", vbCritical
        Exit Sub
   End If
   'Create a buffer
   s2 = String(MAX_FILENAME_LEN, 32)
   'Retrieve the name and handle of the executable, associated with this file
   i = FindExecutable(sFile, vbNullString, s2)
   If i > 32 Then
      MsgBox Left$(s2, InStr(s2, Chr$(0)) - 1)
   Else
      MsgBox "No association found !"
   End If
End Sub

Ответить

Номер ответа: 2
Автор ответа:
 Zeus



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #2
Добавлено: 24.11.02 19:49

По поводу shellExecute: тебе её описать?

Могу, но тоже на английском будет :)

Ответить

Номер ответа: 3
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #3
Добавлено: 24.11.02 21:52

Давай на инглише. Пусть юсеры сами перводят. :)

Кстати, вот именно это я и имею ввиду.
  If i > 32 Then
      MsgBox Left$(s2, InStr(s2, Chr$(0)) - 1)
   Else
      MsgBox "No association found !"
   End If

В ShelExecute, например, ошибки только если код возврата <32.
Например       If i = 31 Then MsgBox "No association found !"
Странно только что у тебя все ошибки как 31.
Кстати мог в этом же примере и написать.

Дело в том что у меня расшифровки из WinAPI для VB3.
Хрен его знает что там поменялось.
А то допустим у меня ошибка 13, а програ пишет.
"Application was designed for MS-DOS 4.0." :)>

Ответить

Номер ответа: 4
Автор ответа:
 Zeus



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #4
Добавлено: 25.11.02 19:33

Вот те описание:

ShellExecute

The ShellExecute function opens or prints a specified file. The file can be an executable file or a document file.

VB4-32,5,6
Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

VB.NET
System.Diagnostics.Process

Operating Systems Supported

Requires Windows NT 3.1 or later; Requires Windows 95 or later


Library

Shell32


Parameter Information

· hwnd
Specifies a parent window. This window receives any message boxes that an application produces. For example, an application may report an error by producing a message box.

· lpOperation
Pointer to a null-terminated string that specifies the operation to perform. The following operation strings are valid:
“open”
The function opens the file specified by lpFile. The file can be an executable file or a document file. The file can be a folder to open.
“print”
The function prints the file specified by lpFile. The file should be a document file. If the file is an executable file, the function opens the file, as if “open” had been specified.
“explore”
The function explores the folder specified by lpFile.

The lpOperation parameter can be NULL. In that case, the function opens the file specified by lpFile.

· lpFile
Pointer to a null-terminated string that specifies the file to open or print or the folder to open or explore. The function can open an executable file or a document file. The function can print a document file.

· lpParameters
If lpFile specifies an executable file, lpParameters is a pointer to a null-terminated string that specifies parameters to be passed to the application.
If lpFile specifies a document file, lpParameters should be NULL.

· lpDirectory
Pointer to a null-terminated string that specifies the default directory.

· nShowCmd
If lpFile specifies an executable file, nShowCmd specifies how the application is to be shown when it is opened. This parameter can be one of the following values:
SW_HIDE
Hides the window and activates another window.
SW_MAXIMIZE
Maximizes the specified window.
SW_MINIMIZE
Minimizes the specified window and activates the next top-level window in the Z order.
SW_RESTORE
Activates and displays the window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when restoring a minimized window.
SW_SHOW
Activates the window and displays it in its current size and position.
SW_SHOWDEFAULT
Sets the show state based on the SW_ flag specified in the STARTUPINFO structure passed to the CreateProcess function by the program that started the application. An application should call ShowWindow with this flag to set the initial show state of its main window.
SW_SHOWMAXIMIZED
Activates the window and displays it as a maximized window.
SW_SHOWMINIMIZED
Activates the window and displays it as a minimized window.
SW_SHOWMINNOACTIVE
Displays the window as a minimized window. The active window remains active.
SW_SHOWNA
Displays the window in its current state. The active window remains active.
SW_SHOWNOACTIVATE
Displays a window in its most recent size and position. The active window remains active.
SW_SHOWNORMAL
Activates and displays a window. If the window is minimized or maximized, Windows restores it to its original size and position. An application should specify this flag when displaying the window for the first time.

If lpFile specifies a document file, nShowCmd should be zero.


Return Values

If the function succeeds, the return value is the instance handle of the application that was run, or the handle of a dynamic data exchange (DDE) server application.

If the function fails, the return value is an error value that is less than or equal to 32. The following table lists these error values:
0
The operating system is out of memory or resources.

ERROR_FILE_NOT_FOUND
The specified file was not found.

ERROR_PATH_NOT_FOUND
The specified path was not found.

ERROR_BAD_FORMAT
The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).

SE_ERR_ACCESSDENIED
The operating system denied access to the specified file.

SE_ERR_ASSOCINCOMPLETE
The filename association is incomplete or invalid.

SE_ERR_DDEBUSY
The DDE transaction could not be completed because other DDE transactions were being processed.

SE_ERR_DDEFAIL
The DDE transaction failed.

SE_ERR_DDETIMEOUT
The DDE transaction could not be completed because the request timed out.

SE_ERR_DLLNOTFOUND
The specified dynamic-link library was not found.

SE_ERR_FNF
The specified file was not found.

SE_ERR_NOASSOC
There is no application associated with the given filename extension.

SE_ERR_OOM
There was not enough memory to complete the operation.

SE_ERR_PNF
The specified path was not found.

SE_ERR_SHARE
A sharing violation occurred.
Номер ответа: 5
Автор ответа:
 Zeus



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #5
Добавлено: 25.11.02 19:35

А вот те и пример:

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
Const SW_SHOWNORMAL = 1
Private Sub Form_Load()
    ShellExecute Me.hwnd, vbNullString, "mailto:KPDTeam@Allapi.net", vbNullString, "C:\", SW_SHOWNORMAL
End Sub


Ответить

Номер ответа: 6
Автор ответа:
 CyRax



Разработчик Offline Client

ICQ: 204447456 

Вопросов: 180
Ответов: 4229
 Web-сайт: basicproduction.nm.ru
 Профиль | | #6
Добавлено: 27.11.02 20:13

Извини, это не подходит.

Как использовать ShellExecute я и сам знаю.

А вот как FindExecutable не знал :(

Мне бы коды ошибок для Win32.

Например есть для VB3.

0 System was out of memory, executable file was corrupt, or relocations were invalid.
2 File was not found.
3 Path was not found.
5 Attempt was made to dynamically link to a task, or there was a sharing or network-protection error.
6 Library required separate data segments for each task.
8 There was insufficient memory to start the application.
10 Windows version was incorrect.
11 Executable file was invalid. Either it was not a Windows application or there was an error in the .EXE image.
12 Application was designed for a different operating system.
13 Application was designed for MS-DOS 4.0.
14 Type of executable file was unknown.
15 Attempt was made to load a real-mode application (developed for an earlier version of Windows).
16 Attempt was made to load a second instance of an executable file containing multiple data segments that were not marked read-only.
19 Attempt was made to load a compressed executable file. The file must be decompressed before it can be loaded.
20 ;Dynamic-link library (DLL) file was invalid. One of the DLLs required to run this application was corrupt.
21 Application requires Microsoft Windows 32-bit extensions.
31 There is no association for the specified file type or There is no association for the specified action within the file type

Ответить

Номер ответа: 7
Автор ответа:
 Zeus



ICQ: 161801353 

Вопросов: 63
Ответов: 220
 Web-сайт: apirussia.by.ru
 Профиль | | #7
Добавлено: 29.11.02 22:48

Ой, шось знакомое.....

Я у ся гляну, мож придумаю чего, но ответ до среды от меня может и не придёт.... :(((((((((((((((

Если до среды не отвечу -- значит помочь ничем не могу :((((

Ответить

Номер ответа: 8
Автор ответа:
 LIS



Вопросов: 7
Ответов: 256
 Профиль | | #8 Добавлено: 29.11.02 22:55

Win32 Error Codes

The following table provides a list of Win32 error codes.

CodeDescriptionName
0The operation completed successfully. ERROR_SUCCESS
1Incorrect function. ERROR_INVALID_FUNCTION
2The system cannot find the file specified. ERROR_FILE_NOT_FOUND
3The system cannot find the path specified. ERROR_PATH_NOT_FOUND
4The system cannot open the file. ERROR_TOO_MANY_OPEN_FILES
5Access is denied. ERROR_ACCESS_DENIED
6The handle is invalid. ERROR_INVALID_HANDLE
7The storage control blocks were destroyed. ERROR_ARENA_TRASHED
8Not enough storage is available to process this command. ERROR_NOT_ENOUGH_MEMORY
9The storage control block address is invalid. ERROR_INVALID_BLOCK
10The environment is incorrect. ERROR_BAD_ENVIRONMENT
11An attempt was made to load a program with an incorrect format. ERROR_BAD_FORMAT
12The access code is invalid. ERROR_INVALID_ACCESS
13The data is invalid. ERROR_INVALID_DATA
14Not enough storage is available to complete this operation. ERROR_OUTOFMEMORY
15The system cannot find the drive specified. ERROR_INVALID_DRIVE
16The directory cannot be removed. ERROR_CURRENT_DIRECTORY
17The system cannot move the file to a different disk drive. ERROR_NOT_SAME_DEVICE
18There are no more files. ERROR_NO_MORE_FILES
19The media is write protected. ERROR_WRITE_PROTECT
20The system cannot find the device specified. ERROR_BAD_UNIT
21The device is not ready. ERROR_NOT_READY
22The device does not recognize the command. ERROR_BAD_COMMAND
23Data error (cyclic redundancy check). ERROR_CRC
24The program issued a command but the command length is incorrect. ERROR_BAD_LENGTH
25The drive cannot locate a specific area or track on the disk. ERROR_SEEK
26The specified disk or diskette cannot be accessed. ERROR_NOT_DOS_DISK
27The drive cannot find the sector requested. ERROR_SECTOR_NOT_FOUND
28The printer is out of paper. ERROR_OUT_OF_PAPER
29The system cannot write to the specified device. ERROR_WRITE_FAULT
30The system cannot read from the specified device. ERROR_READ_FAULT
31A device attached to the system is not functioning. ERROR_GEN_FAILURE
32The process cannot access the file because it is being used by another process. ERROR_SHARING_VIOLATION
33The process cannot access the file because another process has locked a portion of the file. ERROR_LOCK_VIOLATION
34The wrong diskette is in the drive. Insert %2 (Volume Serial Number: %3) into drive %1. ERROR_WRONG_DISK
36Too many files opened for sharing. ERROR_SHARING_BUFFER_EXCEEDED
38Reached the end of the file. ERROR_HANDLE_EOF
39

If you need more or all codes I can send to you ...

Just tell me.

Good luck !

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам