Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в эту темуОткрыть новую тему
> showwindow() win10 problem
neves
сообщение 15.3.2020, 15:57
Сообщение #1


***

Novice
Сообщений: 64
Регистрация: 4.10.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.419
Возраст: 19



Hello everyone. I have a problem with showwindow() state commands.
In the wiki page are given only these states:
Код
HIDE: спрятать окно
MAXIMIZE: развернуть во весь экран
MINIMIZE: свернуть
RESTORE: развернуть
SHOW: показать
TOP: вытащить на поверхность.

My question is: Are there any other states which I can use, because none of these worked for my problem?
I am trying to minimize and restore given window in windows 10 virtual desktops, without switching between the desktops automatically. I need more like a popup state. When I use RESTORE or MAXIMIZE state, it switches to the virtual desktop where the window is located automatically.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.3.2020, 17:09
Сообщение #2


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26744
Пользователь №: 16.971
Возраст: 29



Extract the archive to the exe folder.
Прикрепленный файл  LuaPlugins.zip ( 321,26 килобайт ) Кол-во скачиваний: 200

Код
--lua
package.path = "LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "LuaPlugins\\glue\\?.lua;" .. package.path
setfenv(1, require'winapi')
require[[winapi.winuser]]

local ffi = require("ffi")
ffi.cdef[[
BOOL ShowWindow(int hWnd, int nCmdShow);
]]

local SW_SHOWNOACTIVATE =  4
local SW_MINIMIZE = 6



C.ShowWindow(workwindow(), SW_MINIMIZE)
wait (3000)
C.ShowWindow(workwindow(), SW_SHOWNOACTIVATE)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
neves
сообщение 15.3.2020, 18:26
Сообщение #3


***

Novice
Сообщений: 64
Регистрация: 4.10.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.419
Возраст: 19



Amazing! It works exact how I wanted.
I understand the use of winapi here, but why glue package is needed in this example?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
steq
сообщение 15.3.2020, 18:53
Сообщение #4


*

Registred
Сообщений: 5
Регистрация: 15.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.579



Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 15.3.2020, 19:06
Сообщение #5


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26744
Пользователь №: 16.971
Возраст: 29



steq, если версия пилота 2.41, то удалите lua5.1.dll и перезапустите пилот. Скорее всего не та длл.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
steq
сообщение 15.3.2020, 20:59
Сообщение #6


*

Registred
Сообщений: 5
Регистрация: 15.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.579



Цитата(cirus @ 15.3.2020, 19:06) *

steq, если версия пилота 2.41, то удалите lua5.1.dll и перезапустите пилот. Скорее всего не та длл.

Помогло
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
neves
сообщение 16.3.2020, 17:56
Сообщение #7


***

Novice
Сообщений: 64
Регистрация: 4.10.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.419
Возраст: 19



Цитата(cirus @ 15.3.2020, 16:09) *

Код
--lua
package.path = "LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "LuaPlugins\\glue\\?.lua;" .. package.path
setfenv(1, require'winapi')
require[[winapi.winuser]]

local ffi = require("ffi")
ffi.cdef[[
BOOL ShowWindow(int hWnd, int nCmdShow);
]]

local SW_SHOWNOACTIVATE =  4
local SW_MINIMIZE = 6
C.ShowWindow(workwindow(), SW_MINIMIZE)
wait (3000)
C.ShowWindow(workwindow(), SW_SHOWNOACTIVATE)


Why when I add new function at the bottom of this script, I can't reach it from other script.

Example:
test.lua
Код
--lua 
package.path = "LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "LuaPlugins\\glue\\?.lua;" .. package.path
setfenv (1, require'winapi')
require [[winapi.winuser]]

local ffi = require ("ffi")
ffi.cdef [[
BOOL ShowWindow (int hWnd, int nCmdShow);
]]

local SW_SHOWNOACTIVATE = 4
local SW_MINIMIZE = 6

C.ShowWindow (workwindow (), SW_MINIMIZE)
wait (3000)
C.ShowWindow (workwindow (), SW_SHOWNOACTIVATE)

function test()
    log('yes')
end


script0.txt
Код
--lua
require("test")

test()


returns
(IMG:https://i.ibb.co/R34PBFd/result.png)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 1:35
Сообщение #8


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26744
Пользователь №: 16.971
Возраст: 29



Код
-- the function first
function test()
    log('yes')
end
setfenv (1, require'winapi')
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
neves
сообщение 17.3.2020, 2:01
Сообщение #9


***

Novice
Сообщений: 64
Регистрация: 4.10.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.419
Возраст: 19



Gives error.
Цитата(cirus @ 17.3.2020, 0:35) *

Код
-- the function first
function test()
    log('yes')
end
setfenv (1, require'winapi')

(IMG:https://i.ibb.co/N9T3xnM/result.png)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 2:33
Сообщение #10


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26744
Пользователь №: 16.971
Возраст: 29



Код
--lua 
package.path = "LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "LuaPlugins\\glue\\?.lua;" .. package.path

function test()
    log('yes')
end
setfenv (1, require'winapi')
require [[winapi.winuser]]

local ffi = require ("ffi")
ffi.cdef [[
BOOL ShowWindow (int hWnd, int nCmdShow);
]]

local SW_SHOWNOACTIVATE = 4
local SW_MINIMIZE = 6

C.ShowWindow (workwindow (), SW_MINIMIZE)
wait (3000)
C.ShowWindow (workwindow (), SW_SHOWNOACTIVATE)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
neves
сообщение 17.3.2020, 2:50
Сообщение #11


***

Novice
Сообщений: 64
Регистрация: 4.10.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.419
Возраст: 19



Is it possible to remove setfenv (1, require'winapi') or to replace it with something else, because it cause some problems.
Example: If I wanna use ShowWindow() inside test() again it cause problems.
Код
--lua 
package.path = "E:\\pilot_packages\\LuaPlugins\\winapi\\?.lua;" .. package.path
package.path = "E:\\pilot_packages\\LuaPlugins\\glue\\?.lua;" .. package.path
function test()
C.ShowWindow (workwindow (), SW_MINIMIZE)
wait (3000)
C.ShowWindow (workwindow (), SW_SHOWNOACTIVATE)
end
setfenv (1, require'winapi')
require [[winapi.winuser]]

local ffi = require ("ffi")
ffi.cdef [[
BOOL ShowWindow (int hWnd, int nCmdShow);
]]

local SW_SHOWNOACTIVATE = 4
local SW_MINIMIZE = 6

(IMG:https://i.ibb.co/qBxrPHX/result.png)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 3:48
Сообщение #12


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26744
Пользователь №: 16.971
Возраст: 29



Цитата
Is it possible to remove setfenv (1, require'winapi') or to replace it with something

Don't know.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 26.4.2024, 4:34
Designed by Nickostyle