home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Dr. CD ROM (Annual Premium Edition)
/
premium.zip
/
premium
/
WINUTIL2
/
WB_41E.ZIP
/
DDEGROUP.WB_
< prev
next >
Wrap
Text File
|
1992-12-18
|
4KB
|
143 lines
; Set up useful variables
crlf = StrCat(Num2Char(13), Num2Char(10))
tab = Num2Char(9)
; Define dialog box format
AddItemFormat=`WWWDLGED,4.0`
AddItemCaption=`Add Item`
AddItemX=86
AddItemY=30
AddItemWidth=158
AddItemHeight=211
AddItemNumControls=7
AddItem01=`4,6,40,DEFAULT,STATICTEXT,DEFAULT,"&Program:"`
AddItem02=`48,6,74,140,FILELISTBOX,prog,DEFAULT`
AddItem03=`4,150,40,DEFAULT,STATICTEXT,DEFAULT,"&Description:"`
AddItem04=`48,150,94,DEFAULT,EDITBOX,desc,""`
AddItem05=`8,170,66,DEFAULT,CHECKBOX,runmin,"&Run minimized",1`
AddItem06=`8,190,66,DEFAULT,PUSHBUTTON,DEFAULT,"&OK",1`
AddItem07=`84,190,66,DEFAULT,PUSHBUTTON,DEFAULT,"&Cancel",0`
; See if anyone respondes to a "Progman" DDE request
channel = DDEInitiate("Progman", "Progman")
if channel !=0 then goto top ; Somebody did. Goody.
; Nobody home at Progman DDE request, so start program manager
Run("progman.exe", "")
channel = DDEInitiate("Progman", "Progman")
If channel == 0 Then Message("DDE Error","Could not start Progman DDE")
then exit
:top
attop = @TRUE
action = TextSelect("DDE", "Show Groups/Items|Add Group|Delete Group|Add Item|Delete Item", "|")
If action == "" Then Goto top
attop = @FALSE
If action == "Add Group" Then Goto addgroup
If action == "Delete Group" Then Goto delgroup
groups = DDERequest(channel, "Groups")
groups = StrReplace(groups, crlf, tab)
:selgroup
group = StrUpper(ItemSelect("Select a program group", groups, tab))
If group == "" Then Goto selgroup
rc = DDEExecute(channel, "[CreateGroup(%group%)]")
If rc == "" Then errmsg="ShowGroup? DDE"
then Goto error
If action == "Add Item" Then Goto additem
If action == "Delete Item" Then delflag=1
Then Goto showdelitem
if action == "Show Groups/Items" then delflag=0
then goto showdelitem
Goto top
:addgroup
group = AskLine("Add group", "Enter name of new group", "")
If group == "" Then Goto addgroup
rc = DDEExecute(channel, "[CreateGroup(%group%)]")
If rc == "" Then errmsg="CreateGroup"
then Goto error
Goto addgroup
:delgroup
groups = DDERequest(channel, "Groups")
groups = StrReplace(groups, crlf, tab)
group = StrUpper(ItemSelect("Select a group to delete", groups, tab))
If group == "" Then Goto delgroup
ok = AskYesNo("Delete Group", "Really delete '%group%'?")
If !(ok) Then Goto delgroup
rc = DDEExecute(channel, "[DeleteGroup(%group%)]")
If rc == "" Then errmsg="DeleteGroup"
then Goto error
Goto delgroup
:additem
prog = "*.*"
desc = ""
runmin = 0
AddItemCaption = `Add Item to '%group%'`
Dialog("AddItem")
If !(FileExist(prog)) Then Goto additem
prog = StrUpper(StrCat(DirGet(), prog))
rc = DDEExecute(channel, "[AddItem(%prog%,%desc%,,,-1,-1,,,%runmin%)]")
If rc == "" Then errmsg="AddItem"
then Goto error
Goto additem
:showdelitem
entries = DDERequest(channel, group)
If (entries == "***NACK***" || entries=="") Then Message(group, "Empty Group")
then Goto top
entries = StrReplace(entries, crlf, tab)
entries = ItemRemove(1, entries, tab)
n = ItemCount(entries, tab)
If n == 0 Then Message(group, "Empty group")
Then Goto top
items = ""
i = 0
:dnextitem
i = i + 1
item = ItemExtract(i, entries, tab)
comma = StrIndex(item, ",", 1, @FWDSCAN)
item = StrSub(item, 2, comma - 3)
items = StrCat(items, item, tab)
If i < n Then Goto dnextitem
:delitem2
if delflag==1 then delmsg="Select an item to delete from %group%"
else delmsg="Items in %group%"
item = ItemSelect(delmsg, items, tab)
if delflag==0 then goto selgroup
If item == "" Then Goto delitem2
ok = AskYesNo(item, "Really delete this item from %group%?")
If !(ok) Then Goto delitem2
DDEExecute(channel, "[DeleteItem(%item%)]")
i = ItemLocate(item, items, tab)
items = ItemRemove(i, items, tab)
If ItemCount(items, tab) == 0 Then Message(group, "Empty group")
Then Goto top
Goto delitem2
:error
if !IsDefined(errmsg) then errmsg="Unknown DDE"
Message("DDE Error", "%errmsg% operation unsuccessful")
:cancel
If attop == @FALSE Then Goto top
If IsDefined(channel) Then DDETerminate(channel)