Как запустить программу в моей программе...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Как запустить программу в моей программе...

Сообщение sQx » 15.02.2005 (Вт) 15:49

Мне нужно что бы окно программы допустим Photoshop было разположено в окне моей программы, это возможно сделать? если да, то как :)

Заранее благодарен...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 15.02.2005 (Вт) 15:55

Photoshop он ведь MDI, думаю это невозможно. А если возможно, то зацени API SetParent.
Lasciate ogni speranza, voi ch'entrate.

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 15.02.2005 (Вт) 16:20

CjVirys - ну у тебя и прикольный подход :lol:
давай теперь все проги к себе понасуй в оболочку и выдавай их за свои :lol:

ты хоть бы спросил у Adobe разрешение на такое издевательство над из фотошопом :twisted:

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 15.02.2005 (Вт) 19:47

Как это прогу которую я вселил в свою, можна выдавать за свою? :evil:

Как можно убрать копирайт и т.п.?

Мне это нужно совсем для других целей...

Прошу писать по теме, был поставлен конкретный вопрос... и мне нужен ответ, возможно ли такое сделать или нет...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 15.02.2005 (Вт) 19:55

SetParent, alibek же сказал...

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 1:41

Спасибо большое все работает...
То что нужно :!:
Я просто не обратил не внимание... :?
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 2:03

Сорри... у меня возник еще такой вопрос...
Как можно теперь управлять этим окном, ну например изменить его размеры, заблокировать и т.п...
Если это возможно прошу помочь..
Спасибо...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.02.2005 (Ср) 8:48

SendMessage/PostMessage
Lasciate ogni speranza, voi ch'entrate.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 13:56

Прошу извинения...
Я не разобрался как работать с этими ф-ми, может поможете? мне нужно именно изменить размеры окна....
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 16.02.2005 (Ср) 14:01

Код: Выделить всё
Private Const SW_MINIMIZE = 6
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Type WINDOWPLACEMENT
        Length As Long
        flags As Long
        showCmd As Long
        ptMinPosition As POINTAPI
        ptMaxPosition As POINTAPI
        rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Dim Rectan As RECT
Private Sub Form_Load()
    'Tip submitted by pyp99 (pyp99@hotmail.com)
    Dim WinEst As WINDOWPLACEMENT
    Dim rtn As Long
    WinEst.Length = Len(WinEst)
    'get the current window placement
    rtn = GetWindowPlacement(Me.hwnd, WinEst)
    Rectan = WinEst.rcNormalPosition
End Sub
Private Sub Command1_Click()
    Dim WinEst As WINDOWPLACEMENT
    Dim Punto As POINTAPI
    Dim rtn As Long
    'set the new min/max positions
    Punto.x = 100
    Punto.y = 100
    'initialize the structure
    WinEst.Length = Len(WinEst)
    WinEst.showCmd = SW_MINIMIZE
    WinEst.ptMinPosition = Punto
    WinEst.ptMaxPosition = Punto
    WinEst.rcNormalPosition = Rectan
    'set the new window placement (minimized)
    rtn = SetWindowPlacement(Me.hwnd, WinEst)
End Sub
Lasciate ogni speranza, voi ch'entrate.

Sebas
Неуловимый Джо
Неуловимый Джо
Аватара пользователя
 
Сообщения: 3626
Зарегистрирован: 12.02.2002 (Вт) 17:25
Откуда: столько наглости такие вопросы задавать

Сообщение Sebas » 16.02.2005 (Ср) 14:10

а не проще пихнуть его как OLE контейнер?
- Я никогда не понимал, почему они приходят ко мне чтобы умирать?

sebas<-@->mail.ru

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 14:24

Sebas писал(а):а не проще пихнуть его как OLE контейнер?


Не.. я проверял... через ОЛЕ у меня не работает с Фотошопом...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 14:38

alibek писал(а):
Код: Выделить всё
Private Const SW_MINIMIZE = 6
Private Type POINTAPI
        x As Long
        y As Long
End Type
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Private Type WINDOWPLACEMENT
        Length As Long
        flags As Long
        showCmd As Long
        ptMinPosition As POINTAPI
        ptMaxPosition As POINTAPI
        rcNormalPosition As RECT
End Type
Private Declare Function ClientToScreen Lib "user32" (ByVal hwnd As Long, lpPoint As POINTAPI) As Long
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hwnd As Long, lpwndpl As WINDOWPLACEMENT) As Long
Dim Rectan As RECT
Private Sub Form_Load()
    'Tip submitted by pyp99 (pyp99@hotmail.com)
    Dim WinEst As WINDOWPLACEMENT
    Dim rtn As Long
    WinEst.Length = Len(WinEst)
    'get the current window placement
    rtn = GetWindowPlacement(Me.hwnd, WinEst)
    Rectan = WinEst.rcNormalPosition
End Sub
Private Sub Command1_Click()
    Dim WinEst As WINDOWPLACEMENT
    Dim Punto As POINTAPI
    Dim rtn As Long
    'set the new min/max positions
    Punto.x = 100
    Punto.y = 100
    'initialize the structure
    WinEst.Length = Len(WinEst)
    WinEst.showCmd = SW_MINIMIZE
    WinEst.ptMinPosition = Punto
    WinEst.ptMaxPosition = Punto
    WinEst.rcNormalPosition = Rectan
    'set the new window placement (minimized)
    rtn = SetWindowPlacement(Me.hwnd, WinEst)
End Sub


Спасибо за функцию SetWindowPlacement
То чно нужно :!: [/b]
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 15:32

Следующая проблема по этой теме....
Как убрать строку там где расположеные кнопки закрыть, развернуть, свернуть?
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 16.02.2005 (Ср) 17:59

Код: Выделить всё
SetWindowLong hWnd, GWL_STYLE, Not WS_CAPTION And GetWindowLong (hWnd, GWL_STYLE)
Изображение

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 18:32

Ага, спасибо разобрался...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 16.02.2005 (Ср) 18:40

У меня возникла еще одна проблема... при использовании этой функции фотошоп зависает? что это может быть?
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 17.02.2005 (Чт) 4:37

У меня просто проблема вот в чем....
Строка с названием программы и кнопками закрыть, свернуть и т.п. в разных версия Вин ОС может быть разного размера... даже в ОС одной версии размеры могут быть разными..
Поэтому мне нужно ее уубрать... никаких копирайтов я нарушать не собираюсь - это все в научных целях... но когда я пытаюсь убрать строку, фотошоп зависает.. почему?
Спасибо...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 17.02.2005 (Чт) 4:42

Или может кто подскажет как получить ширину этой полоски?
Немогу разобраться с ф-й GetWindowLong, может есть примеры?
Но желатльно ее вообще убрать...

Зарание благодарен...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 17.02.2005 (Чт) 21:27

"Ширина" - это высота, что ли?
Можно через AdjustWindowRect, можно через GetSystemMetrics(SM_CYCAPTION)
Изображение

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 18.02.2005 (Пт) 13:30

GetSystemMetrics(SM_CYCAPTION)
эта ф-я выводит только одно число....
С другой не разобрался...

У меня фотошоп не зависает.. проверил.. просто он стает недоступным.. типа как Enabled его стал False...
Вот что я использую...
SetWindowLong(pWnd, GWL_STYLE, Not WS_CAPTION)

Может есть ф-я айпи, что бы присвоить окну pWnd Енаблед Труе?
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 18.02.2005 (Пт) 13:34

оно все таки зависает наверное... :(
хотя не понятно... я попробывал ф-ю EnableWindow, не помогло...
Может кто знает как другим способом удалить строку с названием программы?
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 18.02.2005 (Пт) 13:42

Еще забыл сказать.. когда нажимаю правую кнопку на окне проги которую открыл в моей проге... выскакивает меню типа закрыть, свернуть и т.п., ну обычное меню виндовское...

Спасибо...
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 18.02.2005 (Пт) 14:39

CjVirys, вместо "SetWindowLong(pWnd, GWL_STYLE, Not WS_CAPTION)" пиши так, как я показал:
Код: Выделить всё
SetWindowLong hWnd, GWL_STYLE, (Not WS_CAPTION) And GetWindowLong (hWnd, GWL_STYLE)

;-)
Иначе ты устанавливаешь ещё и все левые флаги, которых у окна быть не должно.

ЗЫ про "только одно число": а тебе сколько нужно? Высота у рамки только одна...
Изображение

sQx
Философ
Философ
 
Сообщения: 365
Зарегистрирован: 08.08.2002 (Чт) 19:23

Сообщение sQx » 19.02.2005 (Сб) 2:57

tyomitch писал(а):CjVirys, вместо "SetWindowLong(pWnd, GWL_STYLE, Not WS_CAPTION)" пиши так, как я показал:
Код: Выделить всё
SetWindowLong hWnd, GWL_STYLE, (Not WS_CAPTION) And GetWindowLong (hWnd, GWL_STYLE)

Спасибо большое... все отлично работает... :wink:
;-)
Иначе ты устанавливаешь ещё и все левые флаги, которых у окна быть не должно.

ЗЫ про "только одно число": а тебе сколько нужно? Высота у рамки только одна...

Нет.... в том то и проблема что разная... например ХР одна, у 98 другая.. даже у ХР может быть разная.. смотря какой стиль выберешь...

Еще раз спасибо выручил... :thumleft: :salut:
Высшая мудрость - знать самого себя.
Ученый человек - сосуд, мудрец - источник.
Что разумно, то действительно, и что действительно, то разумно.
Знание - сила, всезнание - слабость.
Я знаю только то, что ничего не знаю.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 161

    TopList