APPS
This commit is contained in:
parent
5ca6bd7979
commit
3332a0f135
3
.vscode/settings.json
vendored
Normal file
3
.vscode/settings.json
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
{
|
||||||
|
"makefile.configureOnOpen": false
|
||||||
|
}
|
||||||
12
README.md
12
README.md
@ -21,4 +21,16 @@ wincmd
|
|||||||
# Передача команды через параметр
|
# Передача команды через параметр
|
||||||
wincmd --command КОМАНДА
|
wincmd --command КОМАНДА
|
||||||
wincmd -c КОМАНДА
|
wincmd -c КОМАНДА
|
||||||
|
# Запуск скрипта
|
||||||
|
wincmd ИМЯ_СКРИПТА.bat
|
||||||
|
wincmd -c "call ИМЯ_СКРИПТА.bat"
|
||||||
```
|
```
|
||||||
|
## Скрипты
|
||||||
|
Можно использовать для запуска файлов [**WIN_BATCH**](https://w.wiki/HgPq "Batch скрипты").
|
||||||
|
Пример:
|
||||||
|
```bash
|
||||||
|
touch hello.bat
|
||||||
|
echo -e "@echo off\necho Hello, world!" > hello.bat
|
||||||
|
wincmd hello.bat
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
19
wincmd.h
19
wincmd.h
@ -45,6 +45,7 @@ static void __help(void) {
|
|||||||
"Console wincmd on Wine API V" VERSION "\n"
|
"Console wincmd on Wine API V" VERSION "\n"
|
||||||
" " "Run Windows command on the Linux" "\n"
|
" " "Run Windows command on the Linux" "\n"
|
||||||
"Using:" "\n"
|
"Using:" "\n"
|
||||||
|
" " "wincmd SCRIPT_NAME" "\n"
|
||||||
" " "wincmd [--help/--version]" "\n"
|
" " "wincmd [--help/--version]" "\n"
|
||||||
" " "wincmd --command WINDOWS_COMMAND"
|
" " "wincmd --command WINDOWS_COMMAND"
|
||||||
);
|
);
|
||||||
@ -55,6 +56,7 @@ int _lib_wincmd_main(int argc, char** argv) {
|
|||||||
char command_buffer[BUFFER_SIZE] = "wine cmd.exe /C ";
|
char command_buffer[BUFFER_SIZE] = "wine cmd.exe /C ";
|
||||||
long add_count = BUFFER_SIZE - strlen(command_buffer) - 1;
|
long add_count = BUFFER_SIZE - strlen(command_buffer) - 1;
|
||||||
bool get_command = false;
|
bool get_command = false;
|
||||||
|
char* file_name = NULL;
|
||||||
while (pos != (size_t)argc) {
|
while (pos != (size_t)argc) {
|
||||||
char* str = argv[pos];
|
char* str = argv[pos];
|
||||||
if (get_command == true) {
|
if (get_command == true) {
|
||||||
@ -75,7 +77,7 @@ int _lib_wincmd_main(int argc, char** argv) {
|
|||||||
switch (str[1 + loc]) {
|
switch (str[1 + loc]) {
|
||||||
default:
|
default:
|
||||||
if (get_command == true) break;
|
if (get_command == true) break;
|
||||||
wincmd_error("Cannot find option!");
|
printf("\033[1mwincmd: \033[91mCannot find option \"%s\"!\033[0m\n", str);
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
break;
|
break;
|
||||||
case 'c':
|
case 'c':
|
||||||
@ -89,8 +91,8 @@ int _lib_wincmd_main(int argc, char** argv) {
|
|||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
wincmd_error("Cannot find option!");
|
file_name = str;
|
||||||
return EXIT_FAILURE;
|
break;
|
||||||
}
|
}
|
||||||
pos ++;
|
pos ++;
|
||||||
}
|
}
|
||||||
@ -99,6 +101,17 @@ int _lib_wincmd_main(int argc, char** argv) {
|
|||||||
wincmd_error("Unable to find critical dependencies for running the CMD.EXE shell!");
|
wincmd_error("Unable to find critical dependencies for running the CMD.EXE shell!");
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
if (file_name != NULL) {
|
||||||
|
strcpy(command_buffer, "wine cmd.exe /C call ");
|
||||||
|
strncat(command_buffer, file_name, BUFFER_SIZE - 10);
|
||||||
|
command_buffer[BUFFER_SIZE - 1] = '\0';
|
||||||
|
stat = system(command_buffer);
|
||||||
|
if (stat != EXIT_SUCCESS) {
|
||||||
|
printf("\033[1mwincmd: \033[91mThe program terminates with status %d!\033[0m\n", stat);
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
if (get_command == true) {
|
if (get_command == true) {
|
||||||
stat = system(command_buffer);
|
stat = system(command_buffer);
|
||||||
if (stat != EXIT_SUCCESS) {
|
if (stat != EXIT_SUCCESS) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user