Что нового

В редакторе скрипт выполняется, в exe нет

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
В SciTE скрипт нормально отрабатывает, компилирую (Aut2Exe) в exe, запускаю и абсолютно никаких действий. Почему?

Код:
If Not ProcessExists('pastebin.exe')Then
	Run('d:\Programs\TotalCommander\Launching\Soft\Internet\PasteBin\pastebin.exe', '', @SW_MINIMIZE)
ElseIf ProcessExists('pastebin.exe')Then
	Exit
EndIf
 

xlgrgrc

Знающий
Сообщения
91
Репутация
7
Я конечно сам новичек, могу предположить, что стоит виндовс x64, а скрипт 86. Хотя была бы ошибка в пол экрана.
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
xlgrgrc, нет, потому как соответствующую галочку в Aut2Exe ставил. Хотя пробовал и x64 и x86.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
возможно ошибка в путях. проверь так
Код:
If Not ProcessExists('notepad.exe')Then
    Run('notepad.exe', '', @SW_MINIMIZE)
ElseIf ProcessExists('notepad.exe')Then
    Exit
EndIf
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
joiner
Ошибки в пути нет, потому как я писал, что в редакторе нормально всё.
Проверил notepad (не сворачивается, но это такое), но работает.
Что-то то ли с длинной пути не так, то ли ещё с чем.
Скопировал папку в корень диска, скомпилировал, работает.
Хотя в таком варианте тоже нормально

Код:
Run('d:\Programs\TotalCommander\Launching\Soft\Internet\PasteBin\pastebin.exe', '', @SW_MINIMIZE)


Почему так не хочет не понятно.
 

---Zak---

Скриптер
Сообщения
455
Репутация
120
2 Mancoffee

Попробуй запустить без "@SW_MINIMIZE".
Возможна причина в том, что сам скрипт из редактора запускается нормально. А вот когда скрипт запускается через exe срабатывает UAC
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
---Zak---
UAC отключен.

Сработал так
Код:
$UserName = "User"
$Password = "****"
If Not ProcessExists('pastebin.exe')Then
	RunAs($UserName, "Comp", $Password, 0, "d:\Programs\TotalCommander\Launching\Soft\Internet\PasteBin\pastebin.exe", '', @SW_MINIMIZE)
ElseIf ProcessExists('pastebin.exe')Then
	Exit
EndIf

Интересно почему нужны администраторские права? :blink:
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
скачал эту программку.установил по такому же пути.
скрипт из первого поста запускает ее. только что не сворачивает. даже при принудительном сворачивании окна программы (через скрипт) оно тут же разворачивается.
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
joiner
Странно.
Наверное дело ещё и в самой ОС или антивирусе или ещё в чём ...
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в программе два окна. только сворачивая основное можно свернуть программу. а его window info не видит.
использовал такую связку.
Код:
#include <winapiex.au3>
If Not ProcessExists('pastebin.exe') Then
	Run('C:\Program Files\PasteBin\PasteBin.exe')
	WinWaitActive('PasteBin')
	$aWnd = _WinAPI_EnumProcessWindows(ProcessExists('PasteBin.exe'));получаем дескрипторы окон процесса
WinSetState($aWnd[2][0], '', @SW_MINIMIZE)
ElseIf ProcessExists('pastebin.exe') Then
	Exit
EndIf

правда, окно программы на мгновение мелькает и сворачивается
система Win 7 x32
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
joiner
А как ты обнаружил второе окно?
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
Код:
_WinAPI_EnumProcessWindows

эта функция выводит в массив дескрипторы всех окон процесса. оказалось в процессе данной программы два окна. недавно была подобная тема http://autoit-script.ru/index.php/topic,13000.msg83446.html#msg83446
 
Автор
Mancoffee

Mancoffee

Свет проталкивает тьму ...
Сообщения
86
Репутация
1
joiner
Спасибо :smile:.
Как вывести список окон (то есть, чтобы увидеть их), которые находит данная функция?
 
Верх